Revert "Revert "Collect transitve deps of jni libs only for bund..."

Revert submission 3078746-revert-3075263-MMTOVXSVUO

Reason for revert: relanding with forward fix: aosp/3078748

Reverted changes: /q/submissionid:3078746-revert-3075263-MMTOVXSVUO

Change-Id: I207f6fd83190e258eba8b22c0d6a6f0feea9f87f
This commit is contained in:
Jiyong Park 2024-05-08 09:54:22 +00:00
parent 20df11ef2b
commit ef5511ff77

View file

@ -440,6 +440,21 @@ func (a *AndroidApp) shouldEmbedJnis(ctx android.BaseModuleContext) bool {
return true return true
} }
func (a *AndroidApp) shouldCollectRecursiveNativeDeps(ctx android.ModuleContext) bool {
// JNI libs are always embedded, but whether to embed their transitive dependencies as well
// or not is determined here. For most of the apps built here (using the platform build
// system), we don't need to collect the transitive deps because they will anyway be
// available in the partition image where the app will be installed to.
//
// Collecting transitive dependencies is required only for unbundled apps.
apexInfo, _ := android.ModuleProvider(ctx, android.ApexInfoProvider)
apkInApex := !apexInfo.IsForPlatform()
testApp := a.appProperties.AllowCompressingNativeLibs
unbundledApp := ctx.Config().UnbundledBuild() || apkInApex || testApp
return a.shouldEmbedJnis(ctx) && unbundledApp
}
func generateAaptRenamePackageFlags(packageName string, renameResourcesPackage bool) []string { func generateAaptRenamePackageFlags(packageName string, renameResourcesPackage bool) []string {
aaptFlags := []string{"--rename-manifest-package " + packageName} aaptFlags := []string{"--rename-manifest-package " + packageName}
if renameResourcesPackage { if renameResourcesPackage {
@ -831,7 +846,7 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
dexJarFile, packageResources := a.dexBuildActions(ctx) dexJarFile, packageResources := a.dexBuildActions(ctx)
jniLibs, prebuiltJniPackages, certificates := collectAppDeps(ctx, a, a.shouldEmbedJnis(ctx), !Bool(a.appProperties.Jni_uses_platform_apis)) jniLibs, prebuiltJniPackages, certificates := collectAppDeps(ctx, a, a.shouldCollectRecursiveNativeDeps(ctx), !Bool(a.appProperties.Jni_uses_platform_apis))
jniJarFile := a.jniBuildActions(jniLibs, prebuiltJniPackages, ctx) jniJarFile := a.jniBuildActions(jniLibs, prebuiltJniPackages, ctx)
if ctx.Failed() { if ctx.Failed() {