From da6dc313892bab29ea919e3937dc48e805d5913f Mon Sep 17 00:00:00 2001 From: Nikita Ioffe Date: Wed, 9 Jun 2021 19:43:46 +0100 Subject: [PATCH] Rename test_only_no_hashtree to generate_hashtree In order not to introduce any changes in the system image default value of generate_hashtree is currently set to false. Once all the APEXes that shouldn't have hashtree enable (i.e. non-updatable ones) explicitly set `generate_hashtree: false` default value will be switched to true. Test: checked that are no diffs between ${OUT}/system/apex without this change and with this change. Test: m Bug: 190621617 Change-Id: I5a3144f8f6ea7dee25678af43e2b07a8c85daa9e --- apex/apex.go | 13 +++++++------ apex/builder.go | 6 +----- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/apex/apex.go b/apex/apex.go index c6c10164d..0c127b281 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -165,9 +165,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. @@ -1268,9 +1269,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 da8841ce7..d2e6ad8d5 100644 --- a/apex/builder.go +++ b/apex/builder.go @@ -629,11 +629,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.