Make 'Compressible' an overridable property
This is needed to allow the Android Go versions of modules
(com.google.android.go.*) to select a different compression toggle than
their non-Go (com.google.android.*) conterparts. go/go-updatability
Bug: 203024418
Test: Preloaded go variants on wembley, booted Android.
Change-Id: Ic96aff5fafb65fbd08e8a69d47c994532e27819e
diff --git a/apex/apex.go b/apex/apex.go
index eb75eb3..09fb096 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -135,12 +135,6 @@
// Default: true.
Installable *bool
- // Whether this APEX can be compressed or not. Setting this property to false means this
- // APEX will never be compressed. When set to true, APEX will be compressed if other
- // conditions, e.g, target device needs to support APEX compression, are also fulfilled.
- // Default: true.
- Compressible *bool
-
// If set true, VNDK libs are considered as stable libs and are not included in this APEX.
// Should be only used in non-system apexes (e.g. vendor: true). Default is false.
Use_vndk_as_stable *bool
@@ -321,6 +315,12 @@
// certificate and the private key are provided from the android_app_certificate module
// named "module".
Certificate *string
+
+ // Whether this APEX can be compressed or not. Setting this property to false means this
+ // APEX will never be compressed. When set to true, APEX will be compressed if other
+ // conditions, e.g., target device needs to support APEX compression, are also fulfilled.
+ // Default: false.
+ Compressible *bool
}
type apexBundle struct {
@@ -1279,7 +1279,7 @@
var _ android.ApexBundleDepsInfoIntf = (*apexBundle)(nil)
-// Implements android.ApexBudleDepsInfoIntf
+// Implements android.ApexBundleDepsInfoIntf
func (a *apexBundle) Updatable() bool {
return proptools.BoolDefault(a.properties.Updatable, true)
}
diff --git a/apex/builder.go b/apex/builder.go
index 2e21ddf..6ada6ff 100644
--- a/apex/builder.go
+++ b/apex/builder.go
@@ -528,8 +528,8 @@
outHostBinDir := ctx.Config().HostToolPath(ctx, "").String()
prebuiltSdkToolsBinDir := filepath.Join("prebuilts", "sdk", "tools", runtime.GOOS, "bin")
- // Figure out if need to compress apex.
- compressionEnabled := ctx.Config().CompressedApex() && proptools.BoolDefault(a.properties.Compressible, false) && !a.testApex && !ctx.Config().UnbundledBuildApps()
+ // Figure out if we need to compress the apex.
+ compressionEnabled := ctx.Config().CompressedApex() && proptools.BoolDefault(a.overridableProperties.Compressible, false) && !a.testApex && !ctx.Config().UnbundledBuildApps()
if apexType == imageApex {
////////////////////////////////////////////////////////////////////////////////////
// Step 2: create canned_fs_config which encodes filemode,uid,gid of each files