From 11ad4e940b342fb0bdf700276f9a7b513c3656b0 Mon Sep 17 00:00:00 2001 From: Kiyoung Kim Date: Wed, 4 Sep 2024 14:16:47 +0900 Subject: Install VINTF fragment modules in the APEX Currently APEX ignores vintf_fragments modules within the APEX, and all VINTF fragments are installed with prebuilt_etc modules. This change installs vintf_fragment modules in the APEX, so any additional prebuilt_etc modules are not required as long as binaries define vintf_fragment_modules references. Bug: 363105686 Test: AOSP CF x86_64 build succeeded Change-Id: I33b58178cd51dc2c4bb9226fdd68e7990dccd6a2 Merged-In: I33b58178cd51dc2c4bb9226fdd68e7990dccd6a2 --- apex/apex_test.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'apex/apex_test.go') diff --git a/apex/apex_test.go b/apex/apex_test.go index 987cb6905..851579287 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -12208,3 +12208,35 @@ func TestFilesystemWithApexDeps(t *testing.T) { fileList := android.ContentFromFileRuleForTests(t, result, partition.Output("fileList")) android.AssertDeepEquals(t, "filesystem with apex", "apex/myapex.apex\n", fileList) } + +func TestVintfFragmentInApex(t *testing.T) { + t.Parallel() + ctx := testApex(t, apex_default_bp+` + apex { + name: "myapex", + manifest: ":myapex.manifest", + androidManifest: ":myapex.androidmanifest", + key: "myapex.key", + binaries: [ "mybin" ], + updatable: false, + } + + cc_binary { + name: "mybin", + srcs: ["mybin.cpp"], + vintf_fragment_modules: ["my_vintf_fragment.xml"], + apex_available: [ "myapex" ], + } + + vintf_fragment { + name: "my_vintf_fragment.xml", + src: "my_vintf_fragment.xml", + } + `) + + generateFsRule := ctx.ModuleForTests("myapex", "android_common_myapex").Rule("generateFsConfig") + cmd := generateFsRule.RuleParams.Command + + // Ensure that vintf fragment file is being installed + ensureContains(t, cmd, "/etc/vintf/my_vintf_fragment.xml ") +} -- cgit v1.2.3-59-g8ed1b