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

Commit 24f9d5ad authored by Evan Severson's avatar Evan Severson
Browse files

Override policy fixed state on package uninstalled

If package A defines a permission which is policy fixed as granted for
package B, then we need to override this state when uninstalling package
A.

Fixes: 155322839
Test: Manual
      atest CtsPermission{,2,3}TestCases
Change-Id: Ie57346e12eb43f51bde6b053959af370ebfa674d
parent 64bd9c7b
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -3986,7 +3986,6 @@ public class PermissionManagerService extends IPermissionManager.Stub {
     * @param replaceVolumeUuid The volume of the packages to be updated are on, {@code null} for
     *                          all volumes
     * @param flags Control permission for which apps should be updated
     * @param allPackages All currently known packages
     * @param callback Callback to call after permission changes
     */
    private void updatePermissions(final @Nullable String changingPkgName,
@@ -4098,7 +4097,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                            final int userId = userIds[userIdNum];
                            mPackageManagerInt.forEachPackage((AndroidPackage p) ->
                                    revokePermissionFromPackageForUser(p.getPackageName(),
                                            bp.getName(), userId, callback));
                                            bp.getName(), true, userId, callback));
                        }
                    }
                    it.remove();
@@ -4136,7 +4135,8 @@ public class PermissionManagerService extends IPermissionManager.Stub {
     * Revoke a runtime permission from a package for a given user ID.
     */
    private void revokePermissionFromPackageForUser(@NonNull String pName,
            @NonNull String permissionName, int userId, @Nullable PermissionCallback callback) {
            @NonNull String permissionName, boolean overridePolicy, int userId,
            @Nullable PermissionCallback callback) {
        final ApplicationInfo appInfo =
                mPackageManagerInt.getApplicationInfo(pName, 0,
                        Process.SYSTEM_UID, UserHandle.USER_SYSTEM);
@@ -4151,7 +4151,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
                revokeRuntimePermissionInternal(
                        permissionName,
                        pName,
                        false,
                        overridePolicy,
                        Process.SYSTEM_UID,
                        userId,
                        callback);