diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 2a8569480bb8a..12917b4a032ad 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2448,8 +2448,14 @@ public class PackageManagerService extends IPackageManager.Stub { | 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) { @@ -15813,7 +15819,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); }