Loading services/core/java/com/android/server/pm/InstallPackageHelper.java +19 −21 Original line number Diff line number Diff line Loading @@ -2374,12 +2374,6 @@ final class InstallPackageHelper { permissionParamsBuilder.setAutoRevokePermissionsMode(autoRevokePermissionsMode); mPm.mPermissionManager.onPackageInstalled(pkg, installRequest.getPreviousAppId(), permissionParamsBuilder.build(), userId); // Apply restricted settings on potentially dangerous packages. if (installRequest.getPackageSource() == PackageInstaller.PACKAGE_SOURCE_LOCAL_FILE || installRequest.getPackageSource() == PackageInstaller.PACKAGE_SOURCE_DOWNLOADED_FILE) { enableRestrictedSettings(pkgName, pkg.getUid()); } } installRequest.setName(pkgName); installRequest.setAppId(pkg.getUid()); Loading @@ -2394,17 +2388,14 @@ final class InstallPackageHelper { Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); } private void enableRestrictedSettings(String pkgName, int appId) { private void enableRestrictedSettings(String pkgName, int appId, int userId) { final AppOpsManager appOpsManager = mPm.mContext.getSystemService(AppOpsManager.class); final int[] allUsersList = mPm.mUserManager.getUserIds(); for (int userId : allUsersList) { final int uid = UserHandle.getUid(userId, appId); appOpsManager.setMode(AppOpsManager.OP_ACCESS_RESTRICTED_SETTINGS, uid, pkgName, AppOpsManager.MODE_ERRORED); } } /** * On successful install, executes remaining steps after commit completes and the package lock Loading Loading @@ -2820,14 +2811,11 @@ final class InstallPackageHelper { mPm.mRequiredInstallerPackage, /* packageSender= */ mPm, launchedForRestore, killApp, update, archived); // Work that needs to happen on first install within each user if (firstUserIds.length > 0) { for (int userId : firstUserIds) { mPm.restorePermissionsAndUpdateRolesForNewUserInstall(packageName, userId); } } if (request.isAllNewUsers() && !update) { mPm.notifyPackageAdded(packageName, request.getAppId()); Loading @@ -2835,6 +2823,16 @@ final class InstallPackageHelper { mPm.notifyPackageChanged(packageName, request.getAppId()); } for (int userId : firstUserIds) { // Apply restricted settings on potentially dangerous packages. Needs to happen // after appOpsManager is notified of the new package if (request.getPackageSource() == PackageInstaller.PACKAGE_SOURCE_LOCAL_FILE || request.getPackageSource() == PackageInstaller.PACKAGE_SOURCE_DOWNLOADED_FILE) { enableRestrictedSettings(packageName, request.getAppId(), userId); } } // Log current value of "unknown sources" setting EventLog.writeEvent(EventLogTags.UNKNOWN_SOURCES_ENABLED, getUnknownSourcesSettings()); Loading Loading
services/core/java/com/android/server/pm/InstallPackageHelper.java +19 −21 Original line number Diff line number Diff line Loading @@ -2374,12 +2374,6 @@ final class InstallPackageHelper { permissionParamsBuilder.setAutoRevokePermissionsMode(autoRevokePermissionsMode); mPm.mPermissionManager.onPackageInstalled(pkg, installRequest.getPreviousAppId(), permissionParamsBuilder.build(), userId); // Apply restricted settings on potentially dangerous packages. if (installRequest.getPackageSource() == PackageInstaller.PACKAGE_SOURCE_LOCAL_FILE || installRequest.getPackageSource() == PackageInstaller.PACKAGE_SOURCE_DOWNLOADED_FILE) { enableRestrictedSettings(pkgName, pkg.getUid()); } } installRequest.setName(pkgName); installRequest.setAppId(pkg.getUid()); Loading @@ -2394,17 +2388,14 @@ final class InstallPackageHelper { Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); } private void enableRestrictedSettings(String pkgName, int appId) { private void enableRestrictedSettings(String pkgName, int appId, int userId) { final AppOpsManager appOpsManager = mPm.mContext.getSystemService(AppOpsManager.class); final int[] allUsersList = mPm.mUserManager.getUserIds(); for (int userId : allUsersList) { final int uid = UserHandle.getUid(userId, appId); appOpsManager.setMode(AppOpsManager.OP_ACCESS_RESTRICTED_SETTINGS, uid, pkgName, AppOpsManager.MODE_ERRORED); } } /** * On successful install, executes remaining steps after commit completes and the package lock Loading Loading @@ -2820,14 +2811,11 @@ final class InstallPackageHelper { mPm.mRequiredInstallerPackage, /* packageSender= */ mPm, launchedForRestore, killApp, update, archived); // Work that needs to happen on first install within each user if (firstUserIds.length > 0) { for (int userId : firstUserIds) { mPm.restorePermissionsAndUpdateRolesForNewUserInstall(packageName, userId); } } if (request.isAllNewUsers() && !update) { mPm.notifyPackageAdded(packageName, request.getAppId()); Loading @@ -2835,6 +2823,16 @@ final class InstallPackageHelper { mPm.notifyPackageChanged(packageName, request.getAppId()); } for (int userId : firstUserIds) { // Apply restricted settings on potentially dangerous packages. Needs to happen // after appOpsManager is notified of the new package if (request.getPackageSource() == PackageInstaller.PACKAGE_SOURCE_LOCAL_FILE || request.getPackageSource() == PackageInstaller.PACKAGE_SOURCE_DOWNLOADED_FILE) { enableRestrictedSettings(packageName, request.getAppId(), userId); } } // Log current value of "unknown sources" setting EventLog.writeEvent(EventLogTags.UNKNOWN_SOURCES_ENABLED, getUnknownSourcesSettings()); Loading