diff options
author | 2021-11-12 12:19:42 -0800 | |
---|---|---|
committer | 2021-11-17 19:55:33 -0800 | |
commit | ffbcd1d8a086c581a14a42e54fa0019c637f56e6 (patch) | |
tree | d4651575c734aa5fd9fd0d9b0bd20ca95ab22d0a /java/app_set.go | |
parent | 6cfb37af5672c419af04131c48accbea2168f9bd (diff) |
Extract primary apk from apk set zip
Extract and install the primary apk normally, and then unzip the rest
of them as a post install command.
Bug: 204136549
Test: app_set_test.go
Change-Id: I17437ff27f49df6bc91bdbbea6173b46c7d3ec4e
Diffstat (limited to 'java/app_set.go')
-rw-r--r-- | java/app_set.go | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/java/app_set.go b/java/app_set.go index 6b25638da..2e9a4abdc 100644 --- a/java/app_set.go +++ b/java/app_set.go @@ -55,10 +55,10 @@ type AndroidAppSet struct { android.DefaultableModuleBase prebuilt android.Prebuilt - properties AndroidAppSetProperties - packedOutput android.WritablePath - installFile string - apkcertsFile android.ModuleOutPath + properties AndroidAppSetProperties + packedOutput android.WritablePath + primaryOutput android.WritablePath + apkcertsFile android.ModuleOutPath } func (as *AndroidAppSet) Name() string { @@ -78,11 +78,11 @@ func (as *AndroidAppSet) Privileged() bool { } func (as *AndroidAppSet) OutputFile() android.Path { - return as.packedOutput + return as.primaryOutput } -func (as *AndroidAppSet) InstallFile() string { - return as.installFile +func (as *AndroidAppSet) PackedAdditionalOutputs() android.Path { + return as.packedOutput } func (as *AndroidAppSet) APKCertsFile() android.Path { @@ -114,11 +114,11 @@ func SupportedAbis(ctx android.ModuleContext) []string { func (as *AndroidAppSet) GenerateAndroidBuildActions(ctx android.ModuleContext) { as.packedOutput = android.PathForModuleOut(ctx, ctx.ModuleName()+".zip") + as.primaryOutput = android.PathForModuleOut(ctx, as.BaseModuleName()+".apk") as.apkcertsFile = android.PathForModuleOut(ctx, "apkcerts.txt") // We are assuming here that the install file in the APK // set has `.apk` suffix. If it doesn't the build will fail. // APK sets containing APEX files are handled elsewhere. - as.installFile = as.BaseModuleName() + ".apk" screenDensities := "all" if dpis := ctx.Config().ProductAAPTPrebuiltDPI(); len(dpis) > 0 { screenDensities = strings.ToUpper(strings.Join(dpis, ",")) @@ -127,11 +127,11 @@ func (as *AndroidAppSet) GenerateAndroidBuildActions(ctx android.ModuleContext) // TODO(asmundak): do we support device features ctx.Build(pctx, android.BuildParams{ - Rule: extractMatchingApks, - Description: "Extract APKs from APK set", - Output: as.packedOutput, - ImplicitOutput: as.apkcertsFile, - Inputs: android.Paths{as.prebuilt.SingleSourcePath(ctx)}, + Rule: extractMatchingApks, + Description: "Extract APKs from APK set", + Output: as.primaryOutput, + ImplicitOutputs: android.WritablePaths{as.packedOutput, as.apkcertsFile}, + Inputs: android.Paths{as.prebuilt.SingleSourcePath(ctx)}, Args: map[string]string{ "abis": strings.Join(SupportedAbis(ctx), ","), "allow-prereleased": strconv.FormatBool(proptools.Bool(as.properties.Prerelease)), @@ -140,6 +140,7 @@ func (as *AndroidAppSet) GenerateAndroidBuildActions(ctx android.ModuleContext) "stem": as.BaseModuleName(), "apkcerts": as.apkcertsFile.String(), "partition": as.PartitionTag(ctx.DeviceConfig()), + "zip": as.packedOutput.String(), }, }) } |