diff options
| author | 2013-11-08 12:51:56 -0800 | |
|---|---|---|
| committer | 2013-11-08 12:51:56 -0800 | |
| commit | fd70624629c42b0e0444a4d99ba64d58551fa6b0 (patch) | |
| tree | c10036aedf1ac06616074f78ad19197d3e3723c5 | |
| parent | 0fed12396a12fd69b22c1b4ee4e27a93517eb6e2 (diff) | |
| parent | 562fddce2f154f8adec91cc8a4c4ef1fb4eabcfe (diff) | |
am 562fddce: am 05e3f55f: am 1d8f592a: am ef12b1d4: am ea198841: am ef4694cb: am ae229d99: am 43253333: am 50cbfd55: System package permission decls take precedence over 3rd party apps\'
* commit '562fddce2f154f8adec91cc8a4c4ef1fb4eabcfe':
System package permission decls take precedence over 3rd party apps'
| -rw-r--r-- | services/java/com/android/server/pm/PackageManagerService.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 22ce2848884b..5b8edfe0f0fa 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -4757,6 +4757,18 @@ public class PackageManagerService extends IPackageManager.Stub { permissionMap.put(p.info.name, bp); } if (bp.perm == null) { + if (bp.sourcePackage != null + && !bp.sourcePackage.equals(p.info.packageName)) { + // If this is a permission that was formerly defined by a non-system + // app, but is now defined by a system app (following an upgrade), + // discard the previous declaration and consider the system's to be + // canonical. + if (isSystemApp(p.owner)) { + Slog.i(TAG, "New decl " + p.owner + " of permission " + + p.info.name + " is system"); + bp.sourcePackage = null; + } + } if (bp.sourcePackage == null || bp.sourcePackage.equals(p.info.packageName)) { BasePermission tree = findPermissionTreeLP(p.info.name); |