From 5f7fa509484a53b45c564a4068f67c89a5cc1bb5 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Tue, 14 Jan 2025 16:52:14 +0900 Subject: apex: use proper partition tag for validations module.PartitionTag(DeviceConfig) doesn't work for validations because it tells the physical partition where the apex is installed. It returns "system" even for vendor APEXes when "VendorPath" is set to "system/vendor". For validations, we need logical partition tag. So, "vendor:true" apexes should be "vendor" even when it's installed in /system/vendor. Bug: 384988749 Test: m --no-skip-soong-tests Change-Id: Ib478caa62c98808bc94fe350a2f182f1d2b42a46 --- apex/apex_test.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'apex/apex_test.go') diff --git a/apex/apex_test.go b/apex/apex_test.go index e1a958268..c123d0300 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -7090,6 +7090,34 @@ func TestApexAvailable_PrefixMatch(t *testing.T) { `) } +func TestApexValidation_UsesProperPartitionTag(t *testing.T) { + t.Parallel() + ctx := testApex(t, ` + apex { + name: "myapex", + key: "myapex.key", + updatable: false, + vendor: true, + } + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } + `, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + // vendor path should not affect "partition tag" + variables.VendorPath = proptools.StringPtr("system/vendor") + })) + + module := ctx.ModuleForTests("myapex", "android_common_myapex") + android.AssertStringEquals(t, "partition tag for host_apex_verifier", + "vendor", + module.Output("host_apex_verifier.timestamp").Args["partition_tag"]) + android.AssertStringEquals(t, "partition tag for apex_sepolicy_tests", + "vendor", + module.Output("apex_sepolicy_tests.timestamp").Args["partition_tag"]) +} + func TestApexValidation_TestApexCanSkipInitRcCheck(t *testing.T) { t.Parallel() ctx := testApex(t, ` -- cgit v1.2.3-59-g8ed1b