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

* commit '5468f545ff66e8fe8db4fdb90dc387ace9756257':
  Allow system app to take ownership of built-in permissions
This commit is contained in:
Jing Ji
2014-10-02 20:50:46 +00:00
committed by Android Git Automerger

View File

@@ -5960,13 +5960,21 @@ 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)) {
if (bp.type == BasePermission.TYPE_BUILTIN && bp.perm == null) {
// It's a built-in permission and no owner, take ownership now
bp.packageSetting = pkgSetting;
bp.perm = p;
bp.uid = pkg.applicationInfo.uid;
bp.sourcePackage = p.info.packageName;
} else if (!currentOwnerIsSystem) {
String msg = "New decl " + p.owner + " of permission " String msg = "New decl " + p.owner + " of permission "
+ p.info.name + " is system; overriding " + bp.sourcePackage; + p.info.name + " is system; overriding " + bp.sourcePackage;
reportSettingsProblem(Log.WARN, msg); reportSettingsProblem(Log.WARN, msg);
bp = null; bp = null;
} }
} }
}
if (bp == null) { if (bp == null) {
bp = new BasePermission(p.info.name, p.info.packageName, bp = new BasePermission(p.info.name, p.info.packageName,