Loading services/core/java/com/android/server/pm/BroadcastHelper.java +4 −9 Original line number Diff line number Diff line Loading @@ -837,13 +837,11 @@ public final class BroadcastHelper { } final String removedPackage = packageRemovedInfo.mRemovedPackage; final int removedAppId = packageRemovedInfo.mRemovedAppId; final int uid = packageRemovedInfo.mUid; final String installerPackageName = packageRemovedInfo.mInstallerPackageName; final SparseArray<int[]> broadcastAllowList = packageRemovedInfo.mBroadcastAllowList; Bundle extras = new Bundle(2); extras.putInt(Intent.EXTRA_UID, removedAppId >= 0 ? removedAppId : uid); extras.putInt(Intent.EXTRA_UID, packageRemovedInfo.mUid); extras.putBoolean(Intent.EXTRA_REPLACING, true); sendPackageBroadcastAndNotify(Intent.ACTION_PACKAGE_ADDED, removedPackage, extras, 0, null /*targetPackage*/, null, null, null, broadcastAllowList, null); Loading Loading @@ -888,8 +886,6 @@ public final class BroadcastHelper { boolean removedBySystem, boolean isArchived) { final String removedPackage = packageRemovedInfo.mRemovedPackage; final int removedAppId = packageRemovedInfo.mRemovedAppId; final int uid = packageRemovedInfo.mUid; final String installerPackageName = packageRemovedInfo.mInstallerPackageName; final int[] broadcastUserIds = packageRemovedInfo.mBroadcastUsers; final int[] instantUserIds = packageRemovedInfo.mInstantUserIds; Loading @@ -902,8 +898,7 @@ public final class BroadcastHelper { final boolean isStaticSharedLib = packageRemovedInfo.mIsStaticSharedLib; Bundle extras = new Bundle(); final int removedUid = removedAppId >= 0 ? removedAppId : uid; extras.putInt(Intent.EXTRA_UID, removedUid); extras.putInt(Intent.EXTRA_UID, packageRemovedInfo.mUid); extras.putBoolean(Intent.EXTRA_DATA_REMOVED, dataRemoved); extras.putBoolean(Intent.EXTRA_SYSTEM_UPDATE_UNINSTALL, isRemovedPackageSystemUpdate); extras.putBoolean(Intent.EXTRA_DONT_KILL_APP, !killApp); Loading Loading @@ -940,10 +935,10 @@ public final class BroadcastHelper { sendPackageBroadcastAndNotify(Intent.ACTION_PACKAGE_FULLY_REMOVED, removedPackage, extras, Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND, null, null, broadcastUserIds, instantUserIds, broadcastAllowList, null); packageSender.notifyPackageRemoved(removedPackage, removedUid); packageSender.notifyPackageRemoved(removedPackage, packageRemovedInfo.mUid); } } if (removedAppId >= 0) { if (packageRemovedInfo.mIsAppIdRemoved) { // If a system app's updates are uninstalled the UID is not actually removed. Some // services need to know the package name affected. if (isReplace) { Loading services/core/java/com/android/server/pm/DeletePackageHelper.java +5 −1 Original line number Diff line number Diff line Loading @@ -510,7 +510,10 @@ final class DeletePackageHelper { } if (clearPackageStateAndReturn) { mRemovePackageHelper.clearPackageStateForUserLIF(ps, userId, flags); outInfo.mRemovedAppId = ps.getAppId(); // Legacy behavior to report appId as UID here. // The final broadcasts will contain a per-user UID. outInfo.mUid = ps.getAppId(); outInfo.mIsAppIdRemoved = true; mPm.scheduleWritePackageRestrictions(user); return; } Loading Loading @@ -555,6 +558,7 @@ final class DeletePackageHelper { boolean deleteCodeAndResources, int flags, @NonNull int[] allUserHandles, @NonNull PackageRemovedInfo outInfo, boolean writeSettings) { synchronized (mPm.mLock) { // Since the package is being deleted in all users, report appId as the uid outInfo.mUid = ps.getAppId(); outInfo.mBroadcastAllowList = mPm.mAppsFilter.getVisibilityAllowList( mPm.snapshotComputer(), ps, allUserHandles, Loading services/core/java/com/android/server/pm/InstallPackageHelper.java +2 −1 Original line number Diff line number Diff line Loading @@ -2912,7 +2912,8 @@ final class InstallPackageHelper { info.mInstallerPackageName = request.getInstallerPackageName(); info.mRemovedUsers = firstUserIds; info.mBroadcastUsers = firstUserIds; info.mRemovedAppId = request.getAppId(); info.mUid = request.getAppId(); info.mIsAppIdRemoved = true; info.mRemovedPackageVersionCode = request.getPkg().getLongVersionCode(); info.mRemovedForAllUsers = true; Loading services/core/java/com/android/server/pm/InstallRequest.java +2 −1 Original line number Diff line number Diff line Loading @@ -818,7 +818,8 @@ final class InstallRequest { public void setRemovedAppId(int appId) { if (mRemovedInfo != null) { mRemovedInfo.mRemovedAppId = appId; mRemovedInfo.mUid = appId; mRemovedInfo.mIsAppIdRemoved = true; } } Loading services/core/java/com/android/server/pm/PackageRemovedInfo.java +1 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ final class PackageRemovedInfo { String mRemovedPackage; String mInstallerPackageName; int mUid = -1; int mRemovedAppId = -1; boolean mIsAppIdRemoved = false; int[] mOrigUsers; int[] mRemovedUsers = null; int[] mBroadcastUsers = null; Loading Loading
services/core/java/com/android/server/pm/BroadcastHelper.java +4 −9 Original line number Diff line number Diff line Loading @@ -837,13 +837,11 @@ public final class BroadcastHelper { } final String removedPackage = packageRemovedInfo.mRemovedPackage; final int removedAppId = packageRemovedInfo.mRemovedAppId; final int uid = packageRemovedInfo.mUid; final String installerPackageName = packageRemovedInfo.mInstallerPackageName; final SparseArray<int[]> broadcastAllowList = packageRemovedInfo.mBroadcastAllowList; Bundle extras = new Bundle(2); extras.putInt(Intent.EXTRA_UID, removedAppId >= 0 ? removedAppId : uid); extras.putInt(Intent.EXTRA_UID, packageRemovedInfo.mUid); extras.putBoolean(Intent.EXTRA_REPLACING, true); sendPackageBroadcastAndNotify(Intent.ACTION_PACKAGE_ADDED, removedPackage, extras, 0, null /*targetPackage*/, null, null, null, broadcastAllowList, null); Loading Loading @@ -888,8 +886,6 @@ public final class BroadcastHelper { boolean removedBySystem, boolean isArchived) { final String removedPackage = packageRemovedInfo.mRemovedPackage; final int removedAppId = packageRemovedInfo.mRemovedAppId; final int uid = packageRemovedInfo.mUid; final String installerPackageName = packageRemovedInfo.mInstallerPackageName; final int[] broadcastUserIds = packageRemovedInfo.mBroadcastUsers; final int[] instantUserIds = packageRemovedInfo.mInstantUserIds; Loading @@ -902,8 +898,7 @@ public final class BroadcastHelper { final boolean isStaticSharedLib = packageRemovedInfo.mIsStaticSharedLib; Bundle extras = new Bundle(); final int removedUid = removedAppId >= 0 ? removedAppId : uid; extras.putInt(Intent.EXTRA_UID, removedUid); extras.putInt(Intent.EXTRA_UID, packageRemovedInfo.mUid); extras.putBoolean(Intent.EXTRA_DATA_REMOVED, dataRemoved); extras.putBoolean(Intent.EXTRA_SYSTEM_UPDATE_UNINSTALL, isRemovedPackageSystemUpdate); extras.putBoolean(Intent.EXTRA_DONT_KILL_APP, !killApp); Loading Loading @@ -940,10 +935,10 @@ public final class BroadcastHelper { sendPackageBroadcastAndNotify(Intent.ACTION_PACKAGE_FULLY_REMOVED, removedPackage, extras, Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND, null, null, broadcastUserIds, instantUserIds, broadcastAllowList, null); packageSender.notifyPackageRemoved(removedPackage, removedUid); packageSender.notifyPackageRemoved(removedPackage, packageRemovedInfo.mUid); } } if (removedAppId >= 0) { if (packageRemovedInfo.mIsAppIdRemoved) { // If a system app's updates are uninstalled the UID is not actually removed. Some // services need to know the package name affected. if (isReplace) { Loading
services/core/java/com/android/server/pm/DeletePackageHelper.java +5 −1 Original line number Diff line number Diff line Loading @@ -510,7 +510,10 @@ final class DeletePackageHelper { } if (clearPackageStateAndReturn) { mRemovePackageHelper.clearPackageStateForUserLIF(ps, userId, flags); outInfo.mRemovedAppId = ps.getAppId(); // Legacy behavior to report appId as UID here. // The final broadcasts will contain a per-user UID. outInfo.mUid = ps.getAppId(); outInfo.mIsAppIdRemoved = true; mPm.scheduleWritePackageRestrictions(user); return; } Loading Loading @@ -555,6 +558,7 @@ final class DeletePackageHelper { boolean deleteCodeAndResources, int flags, @NonNull int[] allUserHandles, @NonNull PackageRemovedInfo outInfo, boolean writeSettings) { synchronized (mPm.mLock) { // Since the package is being deleted in all users, report appId as the uid outInfo.mUid = ps.getAppId(); outInfo.mBroadcastAllowList = mPm.mAppsFilter.getVisibilityAllowList( mPm.snapshotComputer(), ps, allUserHandles, Loading
services/core/java/com/android/server/pm/InstallPackageHelper.java +2 −1 Original line number Diff line number Diff line Loading @@ -2912,7 +2912,8 @@ final class InstallPackageHelper { info.mInstallerPackageName = request.getInstallerPackageName(); info.mRemovedUsers = firstUserIds; info.mBroadcastUsers = firstUserIds; info.mRemovedAppId = request.getAppId(); info.mUid = request.getAppId(); info.mIsAppIdRemoved = true; info.mRemovedPackageVersionCode = request.getPkg().getLongVersionCode(); info.mRemovedForAllUsers = true; Loading
services/core/java/com/android/server/pm/InstallRequest.java +2 −1 Original line number Diff line number Diff line Loading @@ -818,7 +818,8 @@ final class InstallRequest { public void setRemovedAppId(int appId) { if (mRemovedInfo != null) { mRemovedInfo.mRemovedAppId = appId; mRemovedInfo.mUid = appId; mRemovedInfo.mIsAppIdRemoved = true; } } Loading
services/core/java/com/android/server/pm/PackageRemovedInfo.java +1 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ final class PackageRemovedInfo { String mRemovedPackage; String mInstallerPackageName; int mUid = -1; int mRemovedAppId = -1; boolean mIsAppIdRemoved = false; int[] mOrigUsers; int[] mRemovedUsers = null; int[] mBroadcastUsers = null; Loading