am 17fbe404: am 35543f45: am 5468f545: am d5941978: Allow system app to take ownership of built-in permissions

* commit '17fbe404bf28fe1e0d2a01bd5c81c447adbf3715':
  Allow system app to take ownership of built-in permissions
This commit is contained in:
Jing Ji
2014-10-02 21:01:21 +00:00
committed by Android Git Automerger

View File

@@ -5960,11 +5960,19 @@ public class PackageManagerService extends IPackageManager.Stub {
if (bp != null && !Objects.equals(bp.sourcePackage, p.info.packageName)) { if (bp != null && !Objects.equals(bp.sourcePackage, p.info.packageName)) {
final boolean currentOwnerIsSystem = (bp.perm != null final boolean currentOwnerIsSystem = (bp.perm != null
&& isSystemApp(bp.perm.owner)); && isSystemApp(bp.perm.owner));
if (isSystemApp(p.owner) && !currentOwnerIsSystem) { if (isSystemApp(p.owner)) {
String msg = "New decl " + p.owner + " of permission " if (bp.type == BasePermission.TYPE_BUILTIN && bp.perm == null) {
+ p.info.name + " is system; overriding " + bp.sourcePackage; // It's a built-in permission and no owner, take ownership now
reportSettingsProblem(Log.WARN, msg); bp.packageSetting = pkgSetting;
bp = null; bp.perm = p;
bp.uid = pkg.applicationInfo.uid;
bp.sourcePackage = p.info.packageName;
} else if (!currentOwnerIsSystem) {
String msg = "New decl " + p.owner + " of permission "
+ p.info.name + " is system; overriding " + bp.sourcePackage;
reportSettingsProblem(Log.WARN, msg);
bp = null;
}
} }
} }