From c87a89846bfd2738a950cca8099a6445b9a9730d Mon Sep 17 00:00:00 2001 From: Dario Freni Date: Thu, 11 Nov 2021 22:09:41 +0000 Subject: [PATCH] Fix the scanning on non-APEX devices. On devices not supporting APEX the preInstalledApexPath is always equals to "/system" with no trailing slash. Test: atest ApkInApexTests; made non-APEX device boot Merged-In: I238e88684f48981c44e7152f97b4ca16bed6d166 Change-Id: I238e88684f48981c44e7152f97b4ca16bed6d166 --- .../java/com/android/server/pm/PackageManagerService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 1a0a885d88b4c..20bcc5e396eb0 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -21917,8 +21917,10 @@ public class PackageManagerService extends IPackageManager.Stub ApexManager.ActiveApexInfo apexInfo) { 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() + File.separator)) { + if (apexInfo.preInstalledApexPath.getAbsolutePath().equals( + sp.getFolder().getAbsolutePath()) + || apexInfo.preInstalledApexPath.getAbsolutePath().startsWith( + sp.getFolder().getAbsolutePath() + File.separator)) { return new ScanPartition(apexInfo.apexDirectory, sp, SCAN_AS_APK_IN_APEX); } }