diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 7bcb48f45ae46..ef79eb84f75d3 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2089,8 +2089,14 @@ public class PackageManagerService extends IPackageManager.Stub { scanDirLI(systemAppDir, PackageParser.PARSE_IS_SYSTEM | PackageParser.PARSE_IS_SYSTEM_DIR, scanFlags, 0); + // Collected privileged vendor packages. + final File privilegedVendorAppDir = new File(Environment.getVendorDirectory(), "priv-app"); + scanDirLI(privilegedVendorAppDir, PackageParser.PARSE_IS_SYSTEM + | PackageParser.PARSE_IS_SYSTEM_DIR + | PackageParser.PARSE_IS_PRIVILEGED, scanFlags, 0); + // Collect all vendor packages. - File vendorAppDir = new File("/vendor/app"); + File vendorAppDir = new File(Environment.getVendorDirectory(), "app"); try { vendorAppDir = vendorAppDir.getCanonicalFile(); } catch (IOException e) { @@ -12996,7 +13002,10 @@ public class PackageManagerService extends IPackageManager.Stub { try { final String privilegedAppDir = new File(Environment.getRootDirectory(), "priv-app") .getCanonicalPath(); - return path.getCanonicalPath().startsWith(privilegedAppDir); + final String privilegedAppVendorDir = new File(Environment.getVendorDirectory(), "priv-app") + .getCanonicalPath(); + return (path.getCanonicalPath().startsWith(privilegedAppDir) + || path.getCanonicalPath().startsWith(privilegedAppVendorDir)); } catch (IOException e) { Slog.e(TAG, "Unable to access code path " + path); }