Loading services/core/java/com/android/server/pm/Settings.java +16 −9 Original line number Original line Diff line number Diff line Loading @@ -32,6 +32,7 @@ import static com.android.server.pm.PackageManagerService.PLATFORM_PACKAGE_NAME; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.content.ComponentName; import android.content.ComponentName; import android.content.Intent; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentFilter; Loading Loading @@ -916,13 +917,13 @@ public final class Settings { } } /* /* * Update the shared user setting when a package using * Update the shared user setting when a package with a shared user id is removed. The gids * specifying the shared user id is removed. The gids * associated with each permission of the deleted package are removed from the shared user' * associated with each permission of the deleted package * gid list only if its not in use by other permissions of packages in the shared user setting. * are removed from the shared user's gid list only if its * * not in use by other permissions of packages in the * @return the affected user id * shared user setting. */ */ @UserIdInt int updateSharedUserPermsLPw(PackageSetting deletedPs, int userId) { int updateSharedUserPermsLPw(PackageSetting deletedPs, int userId) { if ((deletedPs == null) || (deletedPs.pkg == null)) { if ((deletedPs == null) || (deletedPs.pkg == null)) { Slog.i(PackageManagerService.TAG, Slog.i(PackageManagerService.TAG, Loading @@ -937,6 +938,7 @@ public final class Settings { SharedUserSetting sus = deletedPs.sharedUser; SharedUserSetting sus = deletedPs.sharedUser; int affectedUserId = UserHandle.USER_NULL; // Update permissions // Update permissions for (String eachPerm : deletedPs.pkg.requestedPermissions) { for (String eachPerm : deletedPs.pkg.requestedPermissions) { BasePermission bp = mPermissions.getPermission(eachPerm); BasePermission bp = mPermissions.getPermission(eachPerm); Loading Loading @@ -983,17 +985,22 @@ public final class Settings { if (permissionsState.revokeInstallPermission(bp) == if (permissionsState.revokeInstallPermission(bp) == PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED) { PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED) { return UserHandle.USER_ALL; affectedUserId = UserHandle.USER_ALL; } } // Try to revoke as an install permission which is per user. // Try to revoke as an install permission which is per user. if (permissionsState.revokeRuntimePermission(bp, userId) == if (permissionsState.revokeRuntimePermission(bp, userId) == PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED) { PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED) { return userId; if (affectedUserId == UserHandle.USER_NULL) { affectedUserId = userId; } else if (affectedUserId != userId) { // Multiple users affected. affectedUserId = UserHandle.USER_ALL; } } } } } return UserHandle.USER_NULL; return affectedUserId; } } int removePackageLPw(String name) { int removePackageLPw(String name) { Loading Loading
services/core/java/com/android/server/pm/Settings.java +16 −9 Original line number Original line Diff line number Diff line Loading @@ -32,6 +32,7 @@ import static com.android.server.pm.PackageManagerService.PLATFORM_PACKAGE_NAME; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.content.ComponentName; import android.content.ComponentName; import android.content.Intent; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentFilter; Loading Loading @@ -916,13 +917,13 @@ public final class Settings { } } /* /* * Update the shared user setting when a package using * Update the shared user setting when a package with a shared user id is removed. The gids * specifying the shared user id is removed. The gids * associated with each permission of the deleted package are removed from the shared user' * associated with each permission of the deleted package * gid list only if its not in use by other permissions of packages in the shared user setting. * are removed from the shared user's gid list only if its * * not in use by other permissions of packages in the * @return the affected user id * shared user setting. */ */ @UserIdInt int updateSharedUserPermsLPw(PackageSetting deletedPs, int userId) { int updateSharedUserPermsLPw(PackageSetting deletedPs, int userId) { if ((deletedPs == null) || (deletedPs.pkg == null)) { if ((deletedPs == null) || (deletedPs.pkg == null)) { Slog.i(PackageManagerService.TAG, Slog.i(PackageManagerService.TAG, Loading @@ -937,6 +938,7 @@ public final class Settings { SharedUserSetting sus = deletedPs.sharedUser; SharedUserSetting sus = deletedPs.sharedUser; int affectedUserId = UserHandle.USER_NULL; // Update permissions // Update permissions for (String eachPerm : deletedPs.pkg.requestedPermissions) { for (String eachPerm : deletedPs.pkg.requestedPermissions) { BasePermission bp = mPermissions.getPermission(eachPerm); BasePermission bp = mPermissions.getPermission(eachPerm); Loading Loading @@ -983,17 +985,22 @@ public final class Settings { if (permissionsState.revokeInstallPermission(bp) == if (permissionsState.revokeInstallPermission(bp) == PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED) { PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED) { return UserHandle.USER_ALL; affectedUserId = UserHandle.USER_ALL; } } // Try to revoke as an install permission which is per user. // Try to revoke as an install permission which is per user. if (permissionsState.revokeRuntimePermission(bp, userId) == if (permissionsState.revokeRuntimePermission(bp, userId) == PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED) { PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED) { return userId; if (affectedUserId == UserHandle.USER_NULL) { affectedUserId = userId; } else if (affectedUserId != userId) { // Multiple users affected. affectedUserId = UserHandle.USER_ALL; } } } } } return UserHandle.USER_NULL; return affectedUserId; } } int removePackageLPw(String name) { int removePackageLPw(String name) { Loading