* commit '35543f45419772bca21b521d16aa4e8492703007': Allow system app to take ownership of built-in permissions
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user