Merge "Parse "vendor/priv-app" to find privileged applications"
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 7bcb48f..ef79eb8 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 @@
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 @@
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);
}