Allow holders of INSTALL_PACKAGE_UPDATES permission to update APEXes

Test: atest CtsStagedInstallHostTestCases
Bug: 190802380
Change-Id: I061a8d1dcec147b1479eb1ce62e2f60093880d7e
This commit is contained in:
Nikita Ioffe
2021-06-14 17:02:41 +01:00
parent 33fae67fae
commit 71ddb0099b

View File

@@ -626,7 +626,14 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
}
boolean isApex = (params.installFlags & PackageManager.INSTALL_APEX) != 0;
if (params.isStaged || isApex) {
if (isApex) {
if (mContext.checkCallingOrSelfPermission(Manifest.permission.INSTALL_PACKAGE_UPDATES)
== PackageManager.PERMISSION_DENIED
&& mContext.checkCallingOrSelfPermission(Manifest.permission.INSTALL_PACKAGES)
== PackageManager.PERMISSION_DENIED) {
throw new SecurityException("Not allowed to perform APEX updates");
}
} else if (params.isStaged) {
mContext.enforceCallingOrSelfPermission(Manifest.permission.INSTALL_PACKAGES, TAG);
}