From 6ad772597d13fa8ec9df92e26e3c3f9320abc11b Mon Sep 17 00:00:00 2001 From: Sasha Smundak Date: Wed, 1 May 2019 13:16:22 -0700 Subject: [PATCH] Fix use_embedded_native_libs handling for android_test `use_embedded_native_libs: true` should cause `--extract-native-libs=false` be added to the manifest_fixer invocation, and it was not happening. There are also minor naming improvements. Bug: 117618214 Test: treehugger and 'atest CtsDynamicLinkerTestCases' after cts/tests/tests/dynamic_linker has been converted to Android.bp. Change-Id: I93ec2aed3f3b185d320e56b1b4eebb71339b81ee --- java/aar.go | 4 ++-- java/android_manifest.go | 6 +++--- java/app.go | 10 ++++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/java/aar.go b/java/aar.go index 6d40a8a0c..5e1f88e71 100644 --- a/java/aar.go +++ b/java/aar.go @@ -81,7 +81,7 @@ type aapt struct { extraAaptPackagesFile android.Path mergedManifestFile android.Path isLibrary bool - uncompressedJNI bool + useEmbeddedNativeLibs bool useEmbeddedDex bool usesNonSdkApis bool @@ -201,7 +201,7 @@ func (a *aapt) buildActions(ctx android.ModuleContext, sdkContext sdkContext, ex manifestSrcPath := android.PathForModuleSrc(ctx, manifestFile) manifestPath := manifestFixer(ctx, manifestSrcPath, sdkContext, - a.isLibrary, a.uncompressedJNI, a.usesNonSdkApis, a.useEmbeddedDex) + a.isLibrary, a.useEmbeddedNativeLibs, a.usesNonSdkApis, a.useEmbeddedDex) a.transitiveManifestPaths = append(android.Paths{manifestPath}, transitiveStaticLibManifests...) diff --git a/java/android_manifest.go b/java/android_manifest.go index ea7c2dd4e..7b378cdf9 100644 --- a/java/android_manifest.go +++ b/java/android_manifest.go @@ -43,7 +43,7 @@ var manifestMergerRule = pctx.AndroidStaticRule("manifestMerger", // Uses manifest_fixer.py to inject minSdkVersion, etc. into an AndroidManifest.xml func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext sdkContext, - isLibrary, uncompressedJNI, usesNonSdkApis, useEmbeddedDex bool) android.Path { + isLibrary, useEmbeddedNativeLibs, usesNonSdkApis, useEmbeddedDex bool) android.Path { var args []string if isLibrary { @@ -54,8 +54,8 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext ctx.ModuleErrorf("invalid minSdkVersion: %s", err) } if minSdkVersion >= 23 { - args = append(args, fmt.Sprintf("--extract-native-libs=%v", !uncompressedJNI)) - } else if uncompressedJNI { + args = append(args, fmt.Sprintf("--extract-native-libs=%v", !useEmbeddedNativeLibs)) + } else if useEmbeddedNativeLibs { ctx.ModuleErrorf("module attempted to store uncompressed native libraries, but minSdkVersion=%d doesn't support it", minSdkVersion) } diff --git a/java/app.go b/java/app.go index da8024fd2..e897dca42 100644 --- a/java/app.go +++ b/java/app.go @@ -161,14 +161,14 @@ func (a *AndroidApp) DepsMutator(ctx android.BottomUpMutatorContext) { } func (a *AndroidApp) GenerateAndroidBuildActions(ctx android.ModuleContext) { - a.aapt.uncompressedJNI = a.shouldUncompressJNI(ctx) + a.aapt.useEmbeddedNativeLibs = a.useEmbeddedNativeLibs(ctx) a.aapt.useEmbeddedDex = Bool(a.appProperties.Use_embedded_dex) a.generateAndroidBuildActions(ctx) } -// shouldUncompressJNI returns true if the native libraries should be stored in the APK uncompressed and the +// Returns true if the native libraries should be stored in the APK uncompressed and the // extractNativeLibs application flag should be set to false in the manifest. -func (a *AndroidApp) shouldUncompressJNI(ctx android.ModuleContext) bool { +func (a *AndroidApp) useEmbeddedNativeLibs(ctx android.ModuleContext) bool { minSdkVersion, err := sdkVersionToNumber(ctx, a.minSdkVersion()) if err != nil { ctx.PropertyErrorf("min_sdk_version", "invalid value %q: %s", a.minSdkVersion(), err) @@ -294,7 +294,7 @@ func (a *AndroidApp) jniBuildActions(jniLibs []jniLib, ctx android.ModuleContext a.appProperties.AlwaysPackageNativeLibs if embedJni { jniJarFile = android.PathForModuleOut(ctx, "jnilibs.zip") - TransformJniLibsToJar(ctx, jniJarFile, jniLibs, a.shouldUncompressJNI(ctx)) + TransformJniLibsToJar(ctx, jniJarFile, jniLibs, a.useEmbeddedNativeLibs(ctx)) } else { a.installJniLibs = jniLibs } @@ -487,6 +487,8 @@ func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) { a.additionalAaptFlags = append(a.additionalAaptFlags, "--rename-instrumentation-target-package "+manifestPackageName) } } + a.aapt.useEmbeddedNativeLibs = a.useEmbeddedNativeLibs(ctx) + a.aapt.useEmbeddedDex = Bool(a.appProperties.Use_embedded_dex) a.generateAndroidBuildActions(ctx) a.testConfig = tradefed.AutoGenInstrumentationTestConfig(ctx, a.testProperties.Test_config, a.testProperties.Test_config_template, a.manifestPath, a.testProperties.Test_suites)