Loading services/core/java/com/android/server/pm/PackageManagerService.java +35 −41 Original line number Diff line number Diff line Loading @@ -5104,23 +5104,12 @@ public class PackageManagerService extends IPackageManager.Stub InstallArgs args = data.args; PackageInstalledInfo parentRes = data.res; final boolean grantPermissions = (args.installFlags & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0; final boolean killApp = (args.installFlags & PackageManager.INSTALL_DONT_KILL_APP) == 0; final boolean virtualPreload = ((args.installFlags & PackageManager.INSTALL_VIRTUAL_PRELOAD) != 0); final String[] grantedPermissions = args.installGrantPermissions; final List<String> whitelistedRestrictedPermissions = ((args.installFlags & PackageManager.INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS) != 0 && parentRes.pkg != null) ? parentRes.pkg.getRequestedPermissions() : args.whitelistedRestrictedPermissions; int autoRevokePermissionsMode = args.autoRevokePermissionsMode; handlePackagePostInstall(parentRes, grantPermissions, killApp, virtualPreload, grantedPermissions, whitelistedRestrictedPermissions, autoRevokePermissionsMode, handlePackagePostInstall(parentRes, killApp, virtualPreload, didRestore, args.installSource.installerPackageName, args.observer, args.mDataLoaderType); Loading Loading @@ -5399,11 +5388,8 @@ public class PackageManagerService extends IPackageManager.Stub } } private void handlePackagePostInstall(PackageInstalledInfo res, boolean grantPermissions, boolean killApp, boolean virtualPreload, String[] grantedPermissions, List<String> allowlistedRestrictedPermissions, int autoRevokePermissionsMode, boolean launchedForRestore, String installerPackage, private void handlePackagePostInstall(PackageInstalledInfo res, boolean killApp, boolean virtualPreload, boolean launchedForRestore, String installerPackage, IPackageInstallObserver2 installObserver, int dataLoaderType) { boolean succeeded = res.returnCode == PackageManager.INSTALL_SUCCEEDED; final boolean update = res.removedInfo != null && res.removedInfo.removedPackage != null; Loading Loading @@ -5434,29 +5420,6 @@ public class PackageManagerService extends IPackageManager.Stub res.removedInfo.sendPackageRemovedBroadcasts(killApp, false /*removedBySystem*/); } final PermissionManagerServiceInternal.PackageInstalledParams.Builder permissionParamsBuilder = new PermissionManagerServiceInternal.PackageInstalledParams.Builder(); final List<String> grantedPermissionsList; if (grantPermissions) { if (grantedPermissions != null) { permissionParamsBuilder.setGrantedPermissions(Arrays.asList( grantedPermissions)); } else { permissionParamsBuilder.setGrantedPermissions( res.pkg.getRequestedPermissions()); } } if (allowlistedRestrictedPermissions != null) { permissionParamsBuilder.setAllowlistedRestrictedPermissions( allowlistedRestrictedPermissions); } permissionParamsBuilder.setAutoRevokePermissionsMode(autoRevokePermissionsMode); for (final int userId : res.newUsers) { mPermissionManager.onPackageInstalled(res.pkg, permissionParamsBuilder.build(), userId); } final String installerPackageName = res.installerPackageName != null ? res.installerPackageName Loading Loading @@ -18457,6 +18420,37 @@ public class PackageManagerService extends IPackageManager.Stub } mSettings.writeKernelMappingLPr(ps); final PermissionManagerServiceInternal.PackageInstalledParams.Builder permissionParamsBuilder = new PermissionManagerServiceInternal.PackageInstalledParams.Builder(); final boolean grantPermissions = (installArgs.installFlags & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0; if (grantPermissions) { final List<String> grantedPermissions = installArgs.installGrantPermissions != null ? Arrays.asList(installArgs.installGrantPermissions) : pkg.getRequestedPermissions(); permissionParamsBuilder.setGrantedPermissions(grantedPermissions); } final boolean allowlistAllRestrictedPermissions = (installArgs.installFlags & PackageManager.INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS) != 0; final List<String> allowlistedRestrictedPermissions = allowlistAllRestrictedPermissions ? pkg.getRequestedPermissions() : installArgs.whitelistedRestrictedPermissions; if (allowlistedRestrictedPermissions != null) { permissionParamsBuilder.setAllowlistedRestrictedPermissions( allowlistedRestrictedPermissions); } final int autoRevokePermissionsMode = installArgs.autoRevokePermissionsMode; permissionParamsBuilder.setAutoRevokePermissionsMode(autoRevokePermissionsMode); for (int currentUserId : allUsersList) { if (ps.getInstalled(currentUserId)) { mPermissionManager.onPackageInstalled(pkg, permissionParamsBuilder.build(), currentUserId); } } } res.name = pkgName; res.uid = pkg.getUid(); Loading
services/core/java/com/android/server/pm/PackageManagerService.java +35 −41 Original line number Diff line number Diff line Loading @@ -5104,23 +5104,12 @@ public class PackageManagerService extends IPackageManager.Stub InstallArgs args = data.args; PackageInstalledInfo parentRes = data.res; final boolean grantPermissions = (args.installFlags & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0; final boolean killApp = (args.installFlags & PackageManager.INSTALL_DONT_KILL_APP) == 0; final boolean virtualPreload = ((args.installFlags & PackageManager.INSTALL_VIRTUAL_PRELOAD) != 0); final String[] grantedPermissions = args.installGrantPermissions; final List<String> whitelistedRestrictedPermissions = ((args.installFlags & PackageManager.INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS) != 0 && parentRes.pkg != null) ? parentRes.pkg.getRequestedPermissions() : args.whitelistedRestrictedPermissions; int autoRevokePermissionsMode = args.autoRevokePermissionsMode; handlePackagePostInstall(parentRes, grantPermissions, killApp, virtualPreload, grantedPermissions, whitelistedRestrictedPermissions, autoRevokePermissionsMode, handlePackagePostInstall(parentRes, killApp, virtualPreload, didRestore, args.installSource.installerPackageName, args.observer, args.mDataLoaderType); Loading Loading @@ -5399,11 +5388,8 @@ public class PackageManagerService extends IPackageManager.Stub } } private void handlePackagePostInstall(PackageInstalledInfo res, boolean grantPermissions, boolean killApp, boolean virtualPreload, String[] grantedPermissions, List<String> allowlistedRestrictedPermissions, int autoRevokePermissionsMode, boolean launchedForRestore, String installerPackage, private void handlePackagePostInstall(PackageInstalledInfo res, boolean killApp, boolean virtualPreload, boolean launchedForRestore, String installerPackage, IPackageInstallObserver2 installObserver, int dataLoaderType) { boolean succeeded = res.returnCode == PackageManager.INSTALL_SUCCEEDED; final boolean update = res.removedInfo != null && res.removedInfo.removedPackage != null; Loading Loading @@ -5434,29 +5420,6 @@ public class PackageManagerService extends IPackageManager.Stub res.removedInfo.sendPackageRemovedBroadcasts(killApp, false /*removedBySystem*/); } final PermissionManagerServiceInternal.PackageInstalledParams.Builder permissionParamsBuilder = new PermissionManagerServiceInternal.PackageInstalledParams.Builder(); final List<String> grantedPermissionsList; if (grantPermissions) { if (grantedPermissions != null) { permissionParamsBuilder.setGrantedPermissions(Arrays.asList( grantedPermissions)); } else { permissionParamsBuilder.setGrantedPermissions( res.pkg.getRequestedPermissions()); } } if (allowlistedRestrictedPermissions != null) { permissionParamsBuilder.setAllowlistedRestrictedPermissions( allowlistedRestrictedPermissions); } permissionParamsBuilder.setAutoRevokePermissionsMode(autoRevokePermissionsMode); for (final int userId : res.newUsers) { mPermissionManager.onPackageInstalled(res.pkg, permissionParamsBuilder.build(), userId); } final String installerPackageName = res.installerPackageName != null ? res.installerPackageName Loading Loading @@ -18457,6 +18420,37 @@ public class PackageManagerService extends IPackageManager.Stub } mSettings.writeKernelMappingLPr(ps); final PermissionManagerServiceInternal.PackageInstalledParams.Builder permissionParamsBuilder = new PermissionManagerServiceInternal.PackageInstalledParams.Builder(); final boolean grantPermissions = (installArgs.installFlags & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0; if (grantPermissions) { final List<String> grantedPermissions = installArgs.installGrantPermissions != null ? Arrays.asList(installArgs.installGrantPermissions) : pkg.getRequestedPermissions(); permissionParamsBuilder.setGrantedPermissions(grantedPermissions); } final boolean allowlistAllRestrictedPermissions = (installArgs.installFlags & PackageManager.INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS) != 0; final List<String> allowlistedRestrictedPermissions = allowlistAllRestrictedPermissions ? pkg.getRequestedPermissions() : installArgs.whitelistedRestrictedPermissions; if (allowlistedRestrictedPermissions != null) { permissionParamsBuilder.setAllowlistedRestrictedPermissions( allowlistedRestrictedPermissions); } final int autoRevokePermissionsMode = installArgs.autoRevokePermissionsMode; permissionParamsBuilder.setAutoRevokePermissionsMode(autoRevokePermissionsMode); for (int currentUserId : allUsersList) { if (ps.getInstalled(currentUserId)) { mPermissionManager.onPackageInstalled(pkg, permissionParamsBuilder.build(), currentUserId); } } } res.name = pkgName; res.uid = pkg.getUid();