Skip to content

Commit d594197

Browse files
Jing JiVineetas
authored andcommitted
Allow system app to take ownership of built-in permissions
Previous commit bfed9f3 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
1 parent 9dfad8c commit d594197

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

services/core/java/com/android/server/pm/PackageManagerService.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5960,11 +5960,19 @@ private PackageParser.Package scanPackageDirtyLI(PackageParser.Package pkg, int
59605960
if (bp != null && !Objects.equals(bp.sourcePackage, p.info.packageName)) {
59615961
final boolean currentOwnerIsSystem = (bp.perm != null
59625962
&& isSystemApp(bp.perm.owner));
5963-
if (isSystemApp(p.owner) && !currentOwnerIsSystem) {
5964-
String msg = "New decl " + p.owner + " of permission "
5965-
+ p.info.name + " is system; overriding " + bp.sourcePackage;
5966-
reportSettingsProblem(Log.WARN, msg);
5967-
bp = null;
5963+
if (isSystemApp(p.owner)) {
5964+
if (bp.type == BasePermission.TYPE_BUILTIN && bp.perm == null) {
5965+
// It's a built-in permission and no owner, take ownership now
5966+
bp.packageSetting = pkgSetting;
5967+
bp.perm = p;
5968+
bp.uid = pkg.applicationInfo.uid;
5969+
bp.sourcePackage = p.info.packageName;
5970+
} else if (!currentOwnerIsSystem) {
5971+
String msg = "New decl " + p.owner + " of permission "
5972+
+ p.info.name + " is system; overriding " + bp.sourcePackage;
5973+
reportSettingsProblem(Log.WARN, msg);
5974+
bp = null;
5975+
}
59685976
}
59695977
}
59705978

0 commit comments

Comments
 (0)