From 9d677206d17b2b9aa4330e69fe9fe2e31f31f599 Mon Sep 17 00:00:00 2001 From: Jiyong Park Date: Wed, 19 Feb 2020 16:29:35 +0900 Subject: have a per-module switch to turn the symlinking optimizaiton off The optimization is confusing syshealth because the modules will use more memory when they are switched to the prebuilt (unbundled) or updated via Play. Let's have a per-module switch to control the behavior and turn it on only for non-updatable modules like ART. Bug: 149805758 Test: m Change-Id: Ieb842c47f31f3b06e403b1e1f9e463c3e5524107 --- apex/apex_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'apex/apex_test.go') diff --git a/apex/apex_test.go b/apex/apex_test.go index 0420586de..e41b6d565 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -223,6 +223,7 @@ func testApexContext(t *testing.T, bp string, handlers ...testCustomizer) (*andr "apex_manifest.json": nil, "AndroidManifest.xml": nil, "system/sepolicy/apex/myapex-file_contexts": nil, + "system/sepolicy/apex/myapex.updatable-file_contexts": nil, "system/sepolicy/apex/myapex2-file_contexts": nil, "system/sepolicy/apex/otherapex-file_contexts": nil, "system/sepolicy/apex/commonapex-file_contexts": nil, @@ -3598,6 +3599,14 @@ func TestSymlinksFromApexToSystem(t *testing.T) { java_libs: ["myjar"], } + apex { + name: "myapex.updatable", + key: "myapex.key", + native_shared_libs: ["mylib"], + java_libs: ["myjar"], + updatable: true, + } + apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", @@ -3612,6 +3621,7 @@ func TestSymlinksFromApexToSystem(t *testing.T) { stl: "none", apex_available: [ "myapex", + "myapex.updatable", "//apex_available:platform", ], } @@ -3623,6 +3633,7 @@ func TestSymlinksFromApexToSystem(t *testing.T) { stl: "none", apex_available: [ "myapex", + "myapex.updatable", "//apex_available:platform", ], } @@ -3635,6 +3646,7 @@ func TestSymlinksFromApexToSystem(t *testing.T) { libs: ["myotherjar"], apex_available: [ "myapex", + "myapex.updatable", "//apex_available:platform", ], } @@ -3646,6 +3658,7 @@ func TestSymlinksFromApexToSystem(t *testing.T) { system_modules: "none", apex_available: [ "myapex", + "myapex.updatable", "//apex_available:platform", ], } @@ -3675,17 +3688,30 @@ func TestSymlinksFromApexToSystem(t *testing.T) { t.Errorf("%q is not found", file) } + // For unbundled build, symlink shouldn't exist regardless of whether an APEX + // is updatable or not ctx, _ := testApex(t, bp, withUnbundledBuild) files := getFiles(t, ctx, "myapex", "android_common_myapex_image") ensureRealfileExists(t, files, "javalib/myjar.jar") ensureRealfileExists(t, files, "lib64/mylib.so") ensureRealfileExists(t, files, "lib64/myotherlib.so") + files = getFiles(t, ctx, "myapex.updatable", "android_common_myapex.updatable_image") + ensureRealfileExists(t, files, "javalib/myjar.jar") + ensureRealfileExists(t, files, "lib64/mylib.so") + ensureRealfileExists(t, files, "lib64/myotherlib.so") + + // For bundled build, symlink to the system for the non-updatable APEXes only ctx, _ = testApex(t, bp) files = getFiles(t, ctx, "myapex", "android_common_myapex_image") ensureRealfileExists(t, files, "javalib/myjar.jar") ensureRealfileExists(t, files, "lib64/mylib.so") ensureSymlinkExists(t, files, "lib64/myotherlib.so") // this is symlink + + files = getFiles(t, ctx, "myapex.updatable", "android_common_myapex.updatable_image") + ensureRealfileExists(t, files, "javalib/myjar.jar") + ensureRealfileExists(t, files, "lib64/mylib.so") + ensureRealfileExists(t, files, "lib64/myotherlib.so") // this is a real file } func TestMain(m *testing.M) { -- cgit v1.2.3-59-g8ed1b