diff --git a/apex/apex.go b/apex/apex.go index 926085b4c..33b83c0bc 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -170,9 +170,10 @@ type apexBundleProperties struct { // Default is false. Ignore_system_library_special_case *bool - // Whenever apex_payload.img of the APEX should include dm-verity hashtree. Should be only - // used in tests. - Test_only_no_hashtree *bool + // Whenever apex_payload.img of the APEX should include dm-verity hashtree. + // Default value is false. + // TODO(b/190621617): change default value to true. + Generate_hashtree *bool // Whenever apex_payload.img of the APEX should not be dm-verity signed. Should be only // used in tests. @@ -1317,9 +1318,9 @@ func (a *apexBundle) installable() bool { return !a.properties.PreventInstall && (a.properties.Installable == nil || proptools.Bool(a.properties.Installable)) } -// See the test_only_no_hashtree property -func (a *apexBundle) testOnlyShouldSkipHashtreeGeneration() bool { - return proptools.Bool(a.properties.Test_only_no_hashtree) +// See the generate_hashtree property +func (a *apexBundle) shouldGenerateHashtree() bool { + return proptools.BoolDefault(a.properties.Generate_hashtree, false) } // See the test_only_unsigned_payload property diff --git a/apex/builder.go b/apex/builder.go index 021e499ed..24c049bcd 100644 --- a/apex/builder.go +++ b/apex/builder.go @@ -630,11 +630,7 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) { optFlags = append(optFlags, "--assets_dir "+filepath.Dir(a.mergedNotices.HtmlGzOutput.String())) } - if ctx.ModuleDir() != "system/apex/apexd/apexd_testdata" && ctx.ModuleDir() != "system/apex/shim/build" && a.testOnlyShouldSkipHashtreeGeneration() { - ctx.PropertyErrorf("test_only_no_hashtree", "not available") - return - } - if (moduleMinSdkVersion.GreaterThan(android.SdkVersion_Android10) || a.testOnlyShouldSkipHashtreeGeneration()) && !compressionEnabled { + if (moduleMinSdkVersion.GreaterThan(android.SdkVersion_Android10) && !a.shouldGenerateHashtree()) && !compressionEnabled { // Apexes which are supposed to be installed in builtin dirs(/system, etc) // don't need hashtree for activation. Therefore, by removing hashtree from // apex bundle (filesystem image in it, to be specific), we can save storage.