From 904134c97d54ba9b3f43439d5a084e6634ccc301 Mon Sep 17 00:00:00 2001 From: Jeremie GARCIA Date: Thu, 5 Nov 2015 18:27:59 +0100 Subject: [PATCH] Parse "vendor/priv-app" to find privileged applications Change-Id: Icbbafba96b7880f51ca3afcee53d5f3dd5b86a45 Signed-off-by: Jeremie GARCIA Signed-off-by: Zhiquan Liu --- .../android/server/pm/PackageManagerService.java | 13 +++++++++++-- 1 file changed, 11 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 58e1b33ff35df..20230bea9704c 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2084,8 +2084,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) { @@ -12881,7 +12887,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); }