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

Commit 0826a2b2 authored by Sumedh Sen's avatar Sumedh Sen
Browse files

Pass correct user id to PackageInstaller for uninstall

When PIA issues an uninstall to PackageInstaller from any other user or
profile, the userId passed is always user{0} since a PackageInstaller
instance is created from user{0}.
Now PIA creates a PackageInstaller instance from the user where the
uninstall should happen

Bug: 264689472
Test: Manual. Setup work profile using TestDPC, attempt to uninstall an app.
Merged-In: I7781a05b66fe8d6d717081b126484a7581fad965
Change-Id: I7781a05b66fe8d6d717081b126484a7581fad965
(cherry picked from commit f1320ee7)
parent 6a2dd9b9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ public class UninstallUninstalling extends Activity implements
                }

                UserManager customUserManager = UninstallUninstalling.this
                        .createContextAsUser(UserHandle.of(user.getIdentifier()), 0)
                        .createContextAsUser(user, 0)
                        .getSystemService(UserManager.class);
                if (customUserManager.isUserOfType(UserManager.USER_TYPE_PROFILE_CLONE)) {
                    isCloneUser = true;
@@ -117,7 +117,7 @@ public class UninstallUninstalling extends Activity implements
                int flags = allUsers ? PackageManager.DELETE_ALL_USERS : 0;
                flags |= keepData ? PackageManager.DELETE_KEEP_DATA : 0;

                getPackageManager().getPackageInstaller().uninstall(
                createContextAsUser(user, 0).getPackageManager().getPackageInstaller().uninstall(
                        new VersionedPackage(mAppInfo.packageName,
                                PackageManager.VERSION_CODE_HIGHEST),
                        flags, pendingIntent.getIntentSender());
+4 −4
Original line number Diff line number Diff line
@@ -367,10 +367,10 @@ public class UninstallerActivity extends Activity {
                int flags = mDialogInfo.allUsers ? PackageManager.DELETE_ALL_USERS : 0;
                flags |= keepData ? PackageManager.DELETE_KEEP_DATA : 0;

                getPackageManager().getPackageInstaller().uninstall(
                        new VersionedPackage(mDialogInfo.appInfo.packageName,
                                PackageManager.VERSION_CODE_HIGHEST),
                        flags, pendingIntent.getIntentSender());
                createContextAsUser(mDialogInfo.user, 0).getPackageManager().getPackageInstaller()
                        .uninstall(new VersionedPackage(mDialogInfo.appInfo.packageName,
                                PackageManager.VERSION_CODE_HIGHEST), flags,
                                pendingIntent.getIntentSender());
            } catch (Exception e) {
                notificationManager.cancel(uninstallId);