Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e7cb389 authored by Gavin Corkery's avatar Gavin Corkery Committed by Android (Google) Code Review
Browse files

Merge "Check DELETE_ALL_USERS flag when uninstalling APEX"

parents 05b5c6f2 4fd10882
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -768,9 +768,10 @@ public abstract class PackageManagerInternal {
     * @param userId user to uninstall apex package for. Must be
     *               {@link android.os.UserHandle#USER_ALL}, otherwise failure will be reported.
     * @param intentSender a {@link IntentSender} to send result of an uninstall to.
     * @param flags flags about the uninstall.
     */
    public abstract void uninstallApex(String packageName, long versionCode, int userId,
            IntentSender intentSender);
            IntentSender intentSender, int flags);

    /**
     * Get fingerprint of build that updated the runtime permissions for a user.
+2 −2
Original line number Diff line number Diff line
@@ -23547,7 +23547,7 @@ public class PackageManagerService extends IPackageManager.Stub
        @Override
        public void uninstallApex(String packageName, long versionCode, int userId,
                IntentSender intentSender) {
                IntentSender intentSender, int flags) {
            final int callerUid = Binder.getCallingUid();
            if (callerUid != Process.ROOT_UID && callerUid != Process.SHELL_UID) {
                throw new SecurityException("Not allowed to uninstall apexes");
@@ -23556,7 +23556,7 @@ public class PackageManagerService extends IPackageManager.Stub
                    new PackageInstallerService.PackageDeleteObserverAdapter(
                            PackageManagerService.this.mContext, intentSender, packageName,
                            false, userId);
            if (userId != UserHandle.USER_ALL) {
            if ((flags & PackageManager.DELETE_ALL_USERS) == 0) {
                adapter.onPackageDeleted(packageName, PackageManager.DELETE_FAILED_ABORTED,
                        "Can't uninstall an apex for a single user");
                return;
+1 −1
Original line number Diff line number Diff line
@@ -1853,7 +1853,7 @@ class PackageManagerShellCommand extends ShellCommand {

        if (internal.isApexPackage(packageName)) {
            internal.uninstallApex(
                    packageName, versionCode, translatedUserId, receiver.getIntentSender());
                    packageName, versionCode, translatedUserId, receiver.getIntentSender(), flags);
        } else if ((flags & PackageManager.DELETE_ALL_USERS) != 0) {
            final PackageInfo info = mInterface.getPackageInfo(packageName,
                    PackageManager.MATCH_STATIC_SHARED_LIBRARIES, translatedUserId);