From abf29541e5d132e7c8e45ac16343bffbfc558be8 Mon Sep 17 00:00:00 2001 From: Dario Freni Date: Mon, 8 Nov 2021 13:58:33 +0000 Subject: [PATCH] Detect system_ext provenance for APKs-in-APEX The previous code mistakenly attributes APKs contained in an APEX loaded to the system_ext partition as coming from the system partition. This affects, for example, where PackageManager expects the permission allowlist to be read from (e.g. /system_ext/etc/permissions/*.xml). Test: atest ApkInApexTests (in I4cec3fdf05f2ab1a3b5032870a74562aed53cb95) Change-Id: I690618727ebf9a61f07b3925b30e7631d33c4e8e --- .../java/com/android/server/pm/InitAndSystemPackageHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/InitAndSystemPackageHelper.java b/services/core/java/com/android/server/pm/InitAndSystemPackageHelper.java index 5ff0a6f7a59e1..ffa3e50fb88b4 100644 --- a/services/core/java/com/android/server/pm/InitAndSystemPackageHelper.java +++ b/services/core/java/com/android/server/pm/InitAndSystemPackageHelper.java @@ -152,7 +152,7 @@ final class InitAndSystemPackageHelper { for (int i = 0, size = SYSTEM_PARTITIONS.size(); i < size; i++) { ScanPartition sp = SYSTEM_PARTITIONS.get(i); if (apexInfo.preInstalledApexPath.getAbsolutePath().startsWith( - sp.getFolder().getAbsolutePath())) { + sp.getFolder().getAbsolutePath() + File.separator)) { return new ScanPartition(apexInfo.apexDirectory, sp, SCAN_AS_APK_IN_APEX); } }