Loading core/java/android/content/pm/PackageManager.java +9 −0 Original line number Diff line number Diff line Loading @@ -2548,6 +2548,15 @@ public abstract class PackageManager { */ public static final int DELETE_DONT_KILL_APP = 0x00000008; /** * Flag parameter for {@link #deletePackage} to indicate that the deletion is an archival. This * flag is only for internal usage as part of * {@link PackageInstaller#requestArchive(String, IntentSender)}. * * @hide */ public static final int DELETE_ARCHIVE = 0x00000010; /** * Flag parameter for {@link #deletePackage} to indicate that package deletion * should be chatty. Loading services/core/java/com/android/server/pm/DeletePackageHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static android.content.pm.PackageManager.DELETE_KEEP_DATA; import static android.content.pm.PackageManager.DELETE_SUCCEEDED; import static android.content.pm.PackageManager.MATCH_KNOWN_PACKAGES; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static com.android.server.pm.InstructionSets.getAppDexInstructionSets; import static com.android.server.pm.PackageManagerService.DEBUG_COMPRESSION; import static com.android.server.pm.PackageManagerService.DEBUG_REMOVE; Loading Loading @@ -119,8 +120,6 @@ final class DeletePackageHelper { */ public int deletePackageX(String packageName, long versionCode, int userId, int deleteFlags, boolean removedBySystem) { final boolean isArchived = false; // TODO(b/278553670) Pass true during archival. final PackageRemovedInfo info = new PackageRemovedInfo(mPm); final boolean res; Loading Loading @@ -250,6 +249,7 @@ final class DeletePackageHelper { if (res) { final boolean killApp = (deleteFlags & PackageManager.DELETE_DONT_KILL_APP) == 0; final boolean isArchived = (deleteFlags & PackageManager.DELETE_ARCHIVE) != 0; info.sendPackageRemovedBroadcasts(killApp, removedBySystem, isArchived); info.sendSystemPackageUpdatedBroadcasts(); PackageMetrics.onUninstallSucceeded(info, deleteFlags, removeUser); Loading services/core/java/com/android/server/pm/PackageArchiver.java +5 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.pm; import static android.app.ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_DENIED; import static android.content.pm.PackageManager.DELETE_ARCHIVE; import static android.content.pm.PackageManager.DELETE_KEEP_DATA; import static android.os.PowerExemptionManager.REASON_PACKAGE_UNARCHIVE; import static android.os.PowerExemptionManager.TEMPORARY_ALLOW_LIST_TYPE_FOREGROUND_SERVICE_ALLOWED; Loading Loading @@ -142,7 +143,10 @@ public class PackageArchiver { mPm.mInstallerService.uninstall( new VersionedPackage(packageName, PackageManager.VERSION_CODE_HIGHEST), callerPackageName, DELETE_KEEP_DATA, intentSender, userId, callerPackageName, DELETE_ARCHIVE | DELETE_KEEP_DATA, intentSender, userId, binderUid); }) .exceptionally( Loading services/tests/mockingservicestests/src/com/android/server/pm/PackageArchiverTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.pm; import static android.content.Intent.FLAG_RECEIVER_FOREGROUND; import static android.content.pm.PackageManager.DELETE_ARCHIVE; import static android.content.pm.PackageManager.DELETE_KEEP_DATA; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -275,7 +276,7 @@ public class PackageArchiverTest { verify(mInstallerService).uninstall( eq(new VersionedPackage(PACKAGE, PackageManager.VERSION_CODE_HIGHEST)), eq(CALLER_PACKAGE), eq(DELETE_KEEP_DATA), eq(mIntentSender), eq(CALLER_PACKAGE), eq(DELETE_ARCHIVE | DELETE_KEEP_DATA), eq(mIntentSender), eq(UserHandle.CURRENT.getIdentifier()), anyInt()); assertThat(mPackageSetting.readUserState( UserHandle.CURRENT.getIdentifier()).getArchiveState()).isEqualTo( Loading Loading
core/java/android/content/pm/PackageManager.java +9 −0 Original line number Diff line number Diff line Loading @@ -2548,6 +2548,15 @@ public abstract class PackageManager { */ public static final int DELETE_DONT_KILL_APP = 0x00000008; /** * Flag parameter for {@link #deletePackage} to indicate that the deletion is an archival. This * flag is only for internal usage as part of * {@link PackageInstaller#requestArchive(String, IntentSender)}. * * @hide */ public static final int DELETE_ARCHIVE = 0x00000010; /** * Flag parameter for {@link #deletePackage} to indicate that package deletion * should be chatty. Loading
services/core/java/com/android/server/pm/DeletePackageHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static android.content.pm.PackageManager.DELETE_KEEP_DATA; import static android.content.pm.PackageManager.DELETE_SUCCEEDED; import static android.content.pm.PackageManager.MATCH_KNOWN_PACKAGES; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static com.android.server.pm.InstructionSets.getAppDexInstructionSets; import static com.android.server.pm.PackageManagerService.DEBUG_COMPRESSION; import static com.android.server.pm.PackageManagerService.DEBUG_REMOVE; Loading Loading @@ -119,8 +120,6 @@ final class DeletePackageHelper { */ public int deletePackageX(String packageName, long versionCode, int userId, int deleteFlags, boolean removedBySystem) { final boolean isArchived = false; // TODO(b/278553670) Pass true during archival. final PackageRemovedInfo info = new PackageRemovedInfo(mPm); final boolean res; Loading Loading @@ -250,6 +249,7 @@ final class DeletePackageHelper { if (res) { final boolean killApp = (deleteFlags & PackageManager.DELETE_DONT_KILL_APP) == 0; final boolean isArchived = (deleteFlags & PackageManager.DELETE_ARCHIVE) != 0; info.sendPackageRemovedBroadcasts(killApp, removedBySystem, isArchived); info.sendSystemPackageUpdatedBroadcasts(); PackageMetrics.onUninstallSucceeded(info, deleteFlags, removeUser); Loading
services/core/java/com/android/server/pm/PackageArchiver.java +5 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.pm; import static android.app.ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_DENIED; import static android.content.pm.PackageManager.DELETE_ARCHIVE; import static android.content.pm.PackageManager.DELETE_KEEP_DATA; import static android.os.PowerExemptionManager.REASON_PACKAGE_UNARCHIVE; import static android.os.PowerExemptionManager.TEMPORARY_ALLOW_LIST_TYPE_FOREGROUND_SERVICE_ALLOWED; Loading Loading @@ -142,7 +143,10 @@ public class PackageArchiver { mPm.mInstallerService.uninstall( new VersionedPackage(packageName, PackageManager.VERSION_CODE_HIGHEST), callerPackageName, DELETE_KEEP_DATA, intentSender, userId, callerPackageName, DELETE_ARCHIVE | DELETE_KEEP_DATA, intentSender, userId, binderUid); }) .exceptionally( Loading
services/tests/mockingservicestests/src/com/android/server/pm/PackageArchiverTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.pm; import static android.content.Intent.FLAG_RECEIVER_FOREGROUND; import static android.content.pm.PackageManager.DELETE_ARCHIVE; import static android.content.pm.PackageManager.DELETE_KEEP_DATA; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -275,7 +276,7 @@ public class PackageArchiverTest { verify(mInstallerService).uninstall( eq(new VersionedPackage(PACKAGE, PackageManager.VERSION_CODE_HIGHEST)), eq(CALLER_PACKAGE), eq(DELETE_KEEP_DATA), eq(mIntentSender), eq(CALLER_PACKAGE), eq(DELETE_ARCHIVE | DELETE_KEEP_DATA), eq(mIntentSender), eq(UserHandle.CURRENT.getIdentifier()), anyInt()); assertThat(mPackageSetting.readUserState( UserHandle.CURRENT.getIdentifier()).getArchiveState()).isEqualTo( Loading