diff options
| -rw-r--r-- | apex/apex.go | 8 | ||||
| -rw-r--r-- | apex/apex_test.go | 27 |
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} { |