summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apex/apex.go8
-rw-r--r--apex/apex_test.go27
2 files changed, 34 insertions, 1 deletions
diff --git a/apex/apex.go b/apex/apex.go
index 381ff0f5e..5f9f31e99 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -1743,7 +1743,13 @@ func (a *apexBundle) setPayloadFsType(ctx android.ModuleContext) {
}
func (a *apexBundle) isCompressable() bool {
- return proptools.BoolDefault(a.overridableProperties.Compressible, false) && !a.testApex
+ if a.testApex {
+ return false
+ }
+ if a.payloadFsType == erofs {
+ return false
+ }
+ return proptools.Bool(a.overridableProperties.Compressible)
}
func (a *apexBundle) commonBuildActions(ctx android.ModuleContext) bool {
diff --git a/apex/apex_test.go b/apex/apex_test.go
index 348b3c52d..7fb9b67e8 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -9093,6 +9093,33 @@ func TestCompressedApex(t *testing.T) {
ensureContains(t, androidMk, "LOCAL_MODULE_STEM := myapex.capex\n")
}
+func TestCompressedApexIsDisabledWhenUsingErofs(t *testing.T) {
+ t.Parallel()
+ ctx := testApex(t, `
+ apex {
+ name: "myapex",
+ key: "myapex.key",
+ compressible: true,
+ updatable: false,
+ payload_fs_type: "erofs",
+ }
+ apex_key {
+ name: "myapex.key",
+ public_key: "testkey.avbpubkey",
+ private_key: "testkey.pem",
+ }
+ `,
+ android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
+ variables.CompressedApex = proptools.BoolPtr(true)
+ }),
+ )
+
+ compressRule := ctx.ModuleForTests("myapex", "android_common_myapex").MaybeRule("compressRule")
+ if compressRule.Rule != nil {
+ t.Error("erofs apex should not be compressed")
+ }
+}
+
func TestApexSet_ShouldRespectCompressedApexFlag(t *testing.T) {
t.Parallel()
for _, compressionEnabled := range []bool{true, false} {