Allow system app to take ownership of built-in permissions
Previous commit bfed9f34c makes the preloaded system app take
precedence over third-party apps when defining permissions, but
it also makes it be able to override android built-in permissions.
Now allow preloaded system app to take the ownership of built-in
permissions instead of overriding it.
Change-Id: I10d588d0284e4316ea4be552fd6191f33e3c725b
This commit is contained in:
committed by
Vineeta Srivastava
parent
9dfad8c7f0
commit
d594197868
@@ -5960,11 +5960,19 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
if (bp != null && !Objects.equals(bp.sourcePackage, p.info.packageName)) {
|
||||
final boolean currentOwnerIsSystem = (bp.perm != null
|
||||
&& isSystemApp(bp.perm.owner));
|
||||
if (isSystemApp(p.owner) && !currentOwnerIsSystem) {
|
||||
String msg = "New decl " + p.owner + " of permission "
|
||||
+ p.info.name + " is system; overriding " + bp.sourcePackage;
|
||||
reportSettingsProblem(Log.WARN, msg);
|
||||
bp = null;
|
||||
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 "
|
||||
+ p.info.name + " is system; overriding " + bp.sourcePackage;
|
||||
reportSettingsProblem(Log.WARN, msg);
|
||||
bp = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user