diff options
16 files changed, 73 insertions, 45 deletions
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java index 6151b8e2ef0a..a12c0674998e 100644 --- a/core/java/android/app/ActivityManagerInternal.java +++ b/core/java/android/app/ActivityManagerInternal.java @@ -23,6 +23,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.PermissionMethod; import android.annotation.PermissionName; +import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.app.ActivityManager.ProcessCapability; import android.app.ActivityManager.RestrictionLevel; @@ -1365,8 +1366,8 @@ public abstract class ActivityManagerInternal { * watchdog reset. * @hide */ - public abstract void killApplicationSync(String pkgName, int appId, int userId, - String reason, int exitInfoReason); + public abstract void killApplicationSync(String pkgName, int appId, + @CanBeALL @UserIdInt int userId, String reason, int exitInfoReason); /** * Queries the offset data for a given method on a process. diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java index efcaa0ea6f07..a753cbf956c6 100644 --- a/core/java/android/content/ContentResolver.java +++ b/core/java/android/content/ContentResolver.java @@ -23,6 +23,8 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; +import android.annotation.SpecialUsers.CanBeALL; +import android.annotation.SpecialUsers.CanBeCURRENT; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.TestApi; @@ -2709,7 +2711,7 @@ public abstract class ContentResolver implements ContentInterface { public final void registerContentObserverAsUser(@NonNull Uri uri, boolean notifyForDescendants, @NonNull ContentObserver observer, - @NonNull UserHandle userHandle) { + @NonNull @CanBeALL @CanBeCURRENT UserHandle userHandle) { Objects.requireNonNull(uri, "uri"); Objects.requireNonNull(observer, "observer"); Objects.requireNonNull(userHandle, "userHandle"); @@ -2723,7 +2725,7 @@ public abstract class ContentResolver implements ContentInterface { /** @hide - designated user version */ @UnsupportedAppUsage public final void registerContentObserver(Uri uri, boolean notifyForDescendants, - ContentObserver observer, @UserIdInt int userHandle) { + ContentObserver observer, @CanBeALL @CanBeCURRENT @UserIdInt int userHandle) { try { getContentService().registerContentObserver(uri, notifyForDescendants, observer.getContentObserver(), userHandle, mTargetSdkVersion); diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 07a4d52f56ec..8b701f0e2069 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -198,6 +198,7 @@ import android.annotation.Nullable; import android.annotation.PermissionMethod; import android.annotation.PermissionName; import android.annotation.RequiresPermission; +import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.app.Activity; import android.app.ActivityClient; @@ -3921,8 +3922,8 @@ public class ActivityManagerService extends IActivityManager.Stub * The pkg name and app id have to be specified. */ @Override - public void killApplication(String pkg, int appId, int userId, String reason, - int exitInfoReason) { + public void killApplication(String pkg, int appId, @CanBeALL @UserIdInt int userId, + String reason, int exitInfoReason) { if (pkg == null) { return; } @@ -4307,7 +4308,7 @@ public class ActivityManagerService extends IActivityManager.Stub final boolean forceStopPackageLocked(String packageName, int appId, boolean callerWillRestart, boolean purgeCache, boolean doit, boolean evenPersistent, boolean uninstalling, boolean packageStateStopped, - int userId, String reasonString, int reason) { + @CanBeALL @UserIdInt int userId, String reasonString, int reason) { return forceStopPackageInternalLocked(packageName, appId, callerWillRestart, purgeCache, doit, evenPersistent, uninstalling, packageStateStopped, userId, reasonString, reason, ProcessList.INVALID_ADJ); @@ -4317,7 +4318,7 @@ public class ActivityManagerService extends IActivityManager.Stub private boolean forceStopPackageInternalLocked(String packageName, int appId, boolean callerWillRestart, boolean purgeCache, boolean doit, boolean evenPersistent, boolean uninstalling, boolean packageStateStopped, - int userId, String reasonString, int reason, int minOomAdj) { + @CanBeALL @UserIdInt int userId, String reasonString, int reason, int minOomAdj) { int i; if (userId == UserHandle.USER_ALL && packageName == null) { @@ -18093,7 +18094,7 @@ public class ActivityManagerService extends IActivityManager.Stub } @Override - public void killApplicationSync(String pkgName, int appId, int userId, + public void killApplicationSync(String pkgName, int appId, @CanBeALL @UserIdInt int userId, String reason, int exitInfoReason) { if (pkgName == null) { return; diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index b8babe69d5a7..a61368c4bc36 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -67,6 +67,8 @@ import static com.android.server.wm.WindowProcessController.STOPPED_STATE_FORCE_ import android.Manifest; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; +import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.ActivityManager.ProcessCapability; import android.app.ActivityThread; @@ -2961,8 +2963,8 @@ public final class ProcessList { } @GuardedBy({"mService", "mProcLock"}) - boolean killPackageProcessesLSP(String packageName, int appId, int userId, int minOomAdj, - int reasonCode, int subReason, String reason) { + boolean killPackageProcessesLSP(String packageName, int appId, @CanBeALL @UserIdInt int userId, + int minOomAdj, int reasonCode, int subReason, String reason) { return killPackageProcessesLSP(packageName, appId, userId, minOomAdj, false /* callerWillRestart */, true /* allowRestart */, true /* doit */, false /* evenPersistent */, false /* setRemoved */, false /* uninstalling */, @@ -2970,7 +2972,8 @@ public final class ProcessList { } @GuardedBy("mService") - void killAppZygotesLocked(String packageName, int appId, int userId, boolean force) { + void killAppZygotesLocked(String packageName, int appId, @CanBeALL @UserIdInt int userId, + boolean force) { // See if there are any app zygotes running for this packageName / UID combination, // and kill it if so. final ArrayList<AppZygote> zygotesToKill = new ArrayList<>(); @@ -3050,9 +3053,9 @@ public final class ProcessList { @GuardedBy({"mService", "mProcLock"}) boolean killPackageProcessesLSP(String packageName, int appId, - int userId, int minOomAdj, boolean callerWillRestart, boolean allowRestart, - boolean doit, boolean evenPersistent, boolean setRemoved, boolean uninstalling, - int reasonCode, int subReason, String reason) { + @CanBeALL @UserIdInt int userId, int minOomAdj, boolean callerWillRestart, + boolean allowRestart, boolean doit, boolean evenPersistent, boolean setRemoved, + boolean uninstalling, int reasonCode, int subReason, String reason) { final PackageManagerInternal pm = mService.getPackageManagerInternal(); final ArrayList<Pair<ProcessRecord, Boolean>> procs = new ArrayList<>(); @@ -5220,7 +5223,7 @@ public final class ProcessList { } @GuardedBy("mService") - void sendPackageBroadcastLocked(int cmd, String[] packages, int userId) { + void sendPackageBroadcastLocked(int cmd, String[] packages, @CanBeALL @UserIdInt int userId) { boolean foundProcess = false; for (int i = mLruProcesses.size() - 1; i >= 0; i--) { ProcessRecord r = mLruProcesses.get(i); diff --git a/services/core/java/com/android/server/content/ContentService.java b/services/core/java/com/android/server/content/ContentService.java index c393e921d957..79af6ed9d60b 100644 --- a/services/core/java/com/android/server/content/ContentService.java +++ b/services/core/java/com/android/server/content/ContentService.java @@ -24,6 +24,8 @@ import android.accounts.AccountManagerInternal; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; +import android.annotation.SpecialUsers.CanBeALL; +import android.annotation.SpecialUsers.CanBeCURRENT; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.ActivityManager.RestrictionLevel; @@ -361,7 +363,8 @@ public final class ContentService extends IContentService.Stub { */ @Override public void registerContentObserver(Uri uri, boolean notifyForDescendants, - IContentObserver observer, int userHandle, int targetSdkVersion) { + IContentObserver observer, @CanBeALL @CanBeCURRENT @UserIdInt int userHandle, + int targetSdkVersion) { if (observer == null || uri == null) { throw new IllegalArgumentException("You must pass a valid uri and observer"); } @@ -1398,8 +1401,8 @@ public final class ContentService extends IContentService.Stub { } } - private int handleIncomingUser(Uri uri, int pid, int uid, int modeFlags, boolean allowNonFull, - int userId) { + private @CanBeALL @UserIdInt int handleIncomingUser(Uri uri, int pid, int uid, int modeFlags, + boolean allowNonFull, @CanBeALL @CanBeCURRENT @UserIdInt int userId) { if (userId == UserHandle.USER_CURRENT) { userId = ActivityManager.getCurrentUser(); } diff --git a/services/core/java/com/android/server/pm/AppDataHelper.java b/services/core/java/com/android/server/pm/AppDataHelper.java index 29f8243cfe60..ae415196f15e 100644 --- a/services/core/java/com/android/server/pm/AppDataHelper.java +++ b/services/core/java/com/android/server/pm/AppDataHelper.java @@ -24,6 +24,7 @@ import static com.android.server.pm.PackageManagerServiceUtils.logCriticalInfo; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.content.pm.PackageManager; import android.os.CreateAppDataArgs; @@ -548,7 +549,7 @@ public class AppDataHelper { return prepareAppDataFuture; } - void clearAppDataLIF(AndroidPackage pkg, int userId, int flags) { + void clearAppDataLIF(AndroidPackage pkg, @CanBeALL @UserIdInt int userId, int flags) { if (pkg == null) { return; } @@ -559,7 +560,8 @@ public class AppDataHelper { } } - void clearAppDataLeafLIF(String packageName, String volumeUuid, int userId, int flags) { + void clearAppDataLeafLIF(String packageName, String volumeUuid, @CanBeALL @UserIdInt int userId, + int flags) { final Computer snapshot = mPm.snapshotComputer(); final PackageStateInternal packageStateInternal = snapshot.getPackageStateInternal(packageName); diff --git a/services/core/java/com/android/server/pm/DeletePackageHelper.java b/services/core/java/com/android/server/pm/DeletePackageHelper.java index 90adb6683496..6bec34ef7063 100644 --- a/services/core/java/com/android/server/pm/DeletePackageHelper.java +++ b/services/core/java/com/android/server/pm/DeletePackageHelper.java @@ -35,6 +35,8 @@ import static com.android.server.pm.PackageManagerService.TAG; import android.Manifest; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; +import android.annotation.UserIdInt; import android.app.ApplicationExitInfo; import android.app.ApplicationPackageManager; import android.content.Intent; @@ -562,7 +564,7 @@ final class DeletePackageHelper { } @GuardedBy("mPm.mInstallLock") - private void deleteInstalledPackageLIF(PackageSetting ps, int userId, + private void deleteInstalledPackageLIF(PackageSetting ps, @CanBeALL @UserIdInt int userId, boolean deleteCodeAndResources, int flags, @NonNull int[] allUserHandles, @NonNull PackageRemovedInfo outInfo, boolean writeSettings) { synchronized (mPm.mLock) { diff --git a/services/core/java/com/android/server/pm/PackageFreezer.java b/services/core/java/com/android/server/pm/PackageFreezer.java index 11f2059c4267..d66eb814ef66 100644 --- a/services/core/java/com/android/server/pm/PackageFreezer.java +++ b/services/core/java/com/android/server/pm/PackageFreezer.java @@ -18,6 +18,8 @@ package com.android.server.pm; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; +import android.annotation.UserIdInt; import android.content.pm.Flags; import android.content.pm.PackageManager; @@ -60,12 +62,12 @@ final class PackageFreezer implements AutoCloseable { } } - PackageFreezer(String packageName, int userId, String killReason, + PackageFreezer(String packageName, @CanBeALL @UserIdInt int userId, String killReason, PackageManagerService pm, int exitInfoReason, @Nullable InstallRequest request) { this(packageName, userId, killReason, pm, exitInfoReason, request, false); } - PackageFreezer(String packageName, int userId, String killReason, + PackageFreezer(String packageName, @CanBeALL @UserIdInt int userId, String killReason, PackageManagerService pm, int exitInfoReason, @Nullable InstallRequest request, boolean waitAppKilled) { mPm = pm; diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 2464a291b4dd..91a1c9c12cb8 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -50,6 +50,7 @@ import android.annotation.AppIdInt; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; import android.annotation.StringRes; import android.annotation.UserIdInt; import android.annotation.WorkerThread; @@ -1590,7 +1591,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService scheduleWritePackageRestrictions(userId); } - void scheduleWritePackageRestrictions(int userId) { + void scheduleWritePackageRestrictions(@CanBeALL @UserIdInt int userId) { invalidatePackageInfoCache(); if (userId == UserHandle.USER_ALL) { synchronized (mDirtyUsers) { @@ -3074,7 +3075,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService } @NonNull - int[] resolveUserIds(int userId) { + int[] resolveUserIds(@CanBeALL @UserIdInt int userId) { return (userId == UserHandle.USER_ALL) ? mUserManager.getUserIds() : new int[] { userId }; } @@ -3112,7 +3113,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService } void killApplication(String pkgName, @AppIdInt int appId, - @UserIdInt int userId, String reason, int exitInfoReason) { + @CanBeALL @UserIdInt int userId, String reason, int exitInfoReason) { // Request the ActivityManager to kill the process(only for existing packages) // so that we do not end up in a confused state while the user is still using the older // version of the application while the new one gets installed. @@ -3131,7 +3132,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService } void killApplicationSync(String pkgName, @AppIdInt int appId, - @UserIdInt int userId, String reason, int exitInfoReason) { + @CanBeALL @UserIdInt int userId, String reason, int exitInfoReason) { ActivityManagerInternal mAmi = LocalServices.getService(ActivityManagerInternal.class); if (Thread.holdsLock(mLock) || mAmi == null) { // holds PM's lock, go back killApplication to avoid it run into watchdog reset. @@ -3385,7 +3386,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService } // TODO(b/261957226): centralise this logic in DPM - boolean isPackageDeviceAdmin(String packageName, int userId) { + boolean isPackageDeviceAdmin(String packageName, @CanBeALL @UserIdInt int userId) { final IDevicePolicyManager dpm = getDevicePolicyManager(); final DevicePolicyManagerInternal dpmi = mInjector.getLocalService(DevicePolicyManagerInternal.class); @@ -3555,7 +3556,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService /** This method takes a specific user id as well as UserHandle.USER_ALL. */ @GuardedBy("mLock") void clearPackagePreferredActivitiesLPw(String packageName, - @NonNull SparseBooleanArray outUserChanged, int userId) { + @NonNull SparseBooleanArray outUserChanged, @CanBeALL @UserIdInt int userId) { mSettings.clearPackagePreferredActivities(packageName, outUserChanged, userId); } @@ -4388,14 +4389,14 @@ public class PackageManagerService implements PackageSender, TestUtilityService } } - public PackageFreezer freezePackage(String packageName, int userId, String killReason, - int exitInfoReason, InstallRequest request) { + public PackageFreezer freezePackage(String packageName, @CanBeALL @UserIdInt int userId, + String killReason, int exitInfoReason, InstallRequest request) { return freezePackage(packageName, userId, killReason, exitInfoReason, request, /* waitAppKilled= */ false); } - private PackageFreezer freezePackage(String packageName, int userId, String killReason, - int exitInfoReason, InstallRequest request, boolean waitAppKilled) { + private PackageFreezer freezePackage(String packageName, @CanBeALL @UserIdInt int userId, + String killReason, int exitInfoReason, InstallRequest request, boolean waitAppKilled) { return new PackageFreezer(packageName, userId, killReason, this, exitInfoReason, request, waitAppKilled); } diff --git a/services/core/java/com/android/server/pm/PreferredActivityHelper.java b/services/core/java/com/android/server/pm/PreferredActivityHelper.java index 41d2aeb9b168..fa56596bf62d 100644 --- a/services/core/java/com/android/server/pm/PreferredActivityHelper.java +++ b/services/core/java/com/android/server/pm/PreferredActivityHelper.java @@ -25,6 +25,7 @@ import static com.android.server.pm.PackageManagerService.DEBUG_PREFERRED; import static com.android.server.pm.PackageManagerService.TAG; import android.annotation.NonNull; +import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.content.ComponentName; import android.content.Intent; @@ -115,7 +116,8 @@ final class PreferredActivityHelper { } /** This method takes a specific user id as well as UserHandle.USER_ALL. */ - public void clearPackagePreferredActivities(String packageName, int userId) { + public void clearPackagePreferredActivities(String packageName, + @CanBeALL @UserIdInt int userId) { final SparseBooleanArray changedUsers = new SparseBooleanArray(); synchronized (mPm.mLock) { mPm.clearPackagePreferredActivitiesLPw(packageName, changedUsers, userId); diff --git a/services/core/java/com/android/server/pm/RemovePackageHelper.java b/services/core/java/com/android/server/pm/RemovePackageHelper.java index f01a74e8d60d..22b4ec7b51b6 100644 --- a/services/core/java/com/android/server/pm/RemovePackageHelper.java +++ b/services/core/java/com/android/server/pm/RemovePackageHelper.java @@ -30,6 +30,8 @@ import static com.android.server.pm.PackageManagerService.TAG; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; +import android.annotation.UserIdInt; import android.content.pm.PackageManager; import android.content.pm.parsing.ApkLiteParseUtils; import android.content.pm.parsing.PackageLite; @@ -256,7 +258,8 @@ final class RemovePackageHelper { * Make sure this flag is set for partially installed apps. If not it's meaningless to * delete a partially installed application. */ - public void clearPackageStateForUserLIF(PackageSetting ps, int userId, int flags) { + public void clearPackageStateForUserLIF(PackageSetting ps, @CanBeALL @UserIdInt int userId, + int flags) { final String packageName = ps.getPackageName(); // Step 1: always destroy app profiles except when explicitly preserved if ((flags & Installer.FLAG_CLEAR_APP_DATA_KEEP_ART_PROFILES) == 0) { @@ -370,13 +373,13 @@ final class RemovePackageHelper { * This method deletes the package from internal data structures such as mPackages / mSettings. * * @param targetUserId indicates the target user of the deletion. It equals to - * {@link UserHandle.USER_ALL} if the deletion was initiated for all users, + * {@link UserHandle#USER_ALL} if the deletion was initiated for all users, * otherwise it equals to the specific user id that the deletion was meant * for. */ @GuardedBy("mPm.mInstallLock") - public void removePackageDataLIF(final PackageSetting deletedPs, int targetUserId, - @NonNull int[] allUserHandles, + public void removePackageDataLIF(final PackageSetting deletedPs, + @CanBeALL @UserIdInt int targetUserId, @NonNull int[] allUserHandles, @NonNull PackageRemovedInfo outInfo, int flags, boolean writeSettings) { String packageName = deletedPs.getPackageName(); if (DEBUG_REMOVE) Slog.d(TAG, "removePackageDataLI: " + deletedPs); @@ -482,7 +485,8 @@ final class RemovePackageHelper { } } - private static boolean shouldDeletePackageSetting(PackageSetting deletedPs, int userId, + private static boolean shouldDeletePackageSetting(PackageSetting deletedPs, + @CanBeALL @UserIdInt int userId, int[] allUserHandles, int flags) { if ((flags & PackageManager.DELETE_KEEP_DATA) != 0) { return false; diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index 485a28070bc5..92257f1ee2dd 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -35,6 +35,7 @@ import static com.android.server.pm.SharedUidMigration.BEST_EFFORT; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.app.compat.ChangeIdStateCache; import android.content.ComponentName; @@ -6639,7 +6640,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile /** This method takes a specific user id as well as UserHandle.USER_ALL. */ void clearPackagePreferredActivities(String packageName, - @NonNull SparseBooleanArray outUserChanged, int userId) { + @NonNull SparseBooleanArray outUserChanged, @CanBeALL @UserIdInt int userId) { boolean changed = false; ArrayList<PreferredActivity> removed = null; for (int i = 0; i < mPreferredActivities.size(); i++) { diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index 5c5a9c1b6c05..ac19ea12c6a4 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -37,6 +37,7 @@ import android.Manifest; import android.annotation.AppIdInt; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.AppOpsManager; @@ -765,7 +766,7 @@ public class PermissionManagerService extends IPermissionManager.Stub { @Override public void onPackageUninstalled(@NonNull String packageName, int appId, @NonNull PackageState packageState, @Nullable AndroidPackage pkg, - @NonNull List<AndroidPackage> sharedUserPkgs, @UserIdInt int userId) { + @NonNull List<AndroidPackage> sharedUserPkgs, @CanBeALL @UserIdInt int userId) { if (userId != UserHandle.USER_ALL) { final int[] userIds = getAllUserIds(); if (!ArrayUtils.contains(userIds, userId)) { diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java index e51ec04e60fe..33d57d5cc2b9 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java @@ -65,6 +65,7 @@ import android.annotation.AppIdInt; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.AppOpsManager; @@ -5284,7 +5285,7 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt @Override public void onPackageUninstalled(@NonNull String packageName, int appId, @NonNull PackageState packageState, @Nullable AndroidPackage pkg, - @NonNull List<AndroidPackage> sharedUserPkgs, @UserIdInt int userId) { + @NonNull List<AndroidPackage> sharedUserPkgs, @CanBeALL @UserIdInt int userId) { Objects.requireNonNull(packageState, "packageState"); Objects.requireNonNull(packageName, "packageName"); Objects.requireNonNull(sharedUserPkgs, "sharedUserPkgs"); diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInterface.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInterface.java index 3d295f773805..f2491d949e6b 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInterface.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInterface.java @@ -19,6 +19,7 @@ package com.android.server.pm.permission; import android.annotation.AppIdInt; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.content.Context; import android.content.pm.PackageManager; @@ -662,5 +663,5 @@ public interface PermissionManagerServiceInterface extends PermissionManagerInte */ void onPackageUninstalled(@NonNull String packageName, int appId, @NonNull PackageState packageState, @Nullable AndroidPackage pkg, - @NonNull List<AndroidPackage> sharedUserPkgs, @UserIdInt int userId); + @NonNull List<AndroidPackage> sharedUserPkgs, @CanBeALL @UserIdInt int userId); } diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java index a5c12840a645..ad765c8a0d54 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java @@ -18,6 +18,7 @@ package com.android.server.pm.permission; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SpecialUsers.CanBeALL; import android.annotation.UserIdInt; import android.app.AppOpsManager; import android.content.pm.PackageInstaller.SessionParams; @@ -325,7 +326,7 @@ public interface PermissionManagerServiceInternal extends PermissionManagerInter //@SystemApi(client = SystemApi.Client.SYSTEM_SERVER) void onPackageUninstalled(@NonNull String packageName, int appId, @Nullable PackageState packageState, @Nullable AndroidPackage pkg, - @NonNull List<AndroidPackage> sharedUserPkgs, @UserIdInt int userId); + @NonNull List<AndroidPackage> sharedUserPkgs, @CanBeALL @UserIdInt int userId); /** * The permission-related parameters passed in for package installation. |