diff options
Diffstat (limited to 'java')
| -rwxr-xr-x | java/app.go | 10 | ||||
| -rw-r--r-- | java/dexpreopt.go | 8 |
2 files changed, 14 insertions, 4 deletions
diff --git a/java/app.go b/java/app.go index ce89e9bb6..518120717 100755 --- a/java/app.go +++ b/java/app.go @@ -1260,13 +1260,19 @@ func (u *usesLibrary) freezeEnforceUsesLibraries() { // in the uses_libs and optional_uses_libs properties. It returns the path to a copy of the manifest. func (u *usesLibrary) verifyUsesLibrariesManifest(ctx android.ModuleContext, manifest android.Path) android.Path { outputFile := android.PathForModuleOut(ctx, "manifest_check", "AndroidManifest.xml") + statusFile := dexpreopt.UsesLibrariesStatusFile(ctx) rule := android.NewRuleBuilder(pctx, ctx) cmd := rule.Command().BuiltTool("manifest_check"). Flag("--enforce-uses-libraries"). Input(manifest). + FlagWithOutput("--enforce-uses-libraries-status ", statusFile). FlagWithOutput("-o ", outputFile) + if dexpreopt.GetGlobalConfig(ctx).RelaxUsesLibraryCheck { + cmd.Flag("--enforce-uses-libraries-relax") + } + for _, lib := range u.usesLibraryProperties.Uses_libs { cmd.FlagWithArg("--uses-library ", lib) } @@ -1284,6 +1290,7 @@ func (u *usesLibrary) verifyUsesLibrariesManifest(ctx android.ModuleContext, man // in the uses_libs and optional_uses_libs properties. It returns the path to a copy of the APK. func (u *usesLibrary) verifyUsesLibrariesAPK(ctx android.ModuleContext, apk android.Path) android.Path { outputFile := android.PathForModuleOut(ctx, "verify_uses_libraries", apk.Base()) + statusFile := dexpreopt.UsesLibrariesStatusFile(ctx) rule := android.NewRuleBuilder(pctx, ctx) aapt := ctx.Config().HostToolPath(ctx, "aapt") @@ -1291,7 +1298,8 @@ func (u *usesLibrary) verifyUsesLibrariesAPK(ctx android.ModuleContext, apk andr Textf("aapt_binary=%s", aapt.String()).Implicit(aapt). Textf(`uses_library_names="%s"`, strings.Join(u.usesLibraryProperties.Uses_libs, " ")). Textf(`optional_uses_library_names="%s"`, strings.Join(u.usesLibraryProperties.Optional_uses_libs, " ")). - Tool(android.PathForSource(ctx, "build/make/core/verify_uses_libraries.sh")).Input(apk) + Textf(`relax_check="%b"`, dexpreopt.GetGlobalConfig(ctx).RelaxUsesLibraryCheck). + Tool(android.PathForSource(ctx, "build/make/core/verify_uses_libraries.sh")).Input(apk).Output(statusFile) rule.Command().Text("cp -f").Input(apk).Output(outputFile) rule.Build("verify_uses_libraries", "verify <uses-library>") diff --git a/java/dexpreopt.go b/java/dexpreopt.go index 29c73c11f..a2961c29e 100644 --- a/java/dexpreopt.go +++ b/java/dexpreopt.go @@ -35,6 +35,7 @@ type dexpreopter struct { isPresignedPrebuilt bool manifestFile android.Path + statusFile android.WritablePath enforceUsesLibs bool classLoaderContexts dexpreopt.ClassLoaderContextMap @@ -226,9 +227,10 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Wr ProfileIsTextListing: profileIsTextListing, ProfileBootListing: profileBootListing, - EnforceUsesLibraries: d.enforceUsesLibs, - ProvidesUsesLibrary: providesUsesLib, - ClassLoaderContexts: d.classLoaderContexts, + EnforceUsesLibrariesStatusFile: dexpreopt.UsesLibrariesStatusFile(ctx), + EnforceUsesLibraries: d.enforceUsesLibs, + ProvidesUsesLibrary: providesUsesLib, + ClassLoaderContexts: d.classLoaderContexts, Archs: archs, DexPreoptImages: images, |