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

Commit 542ff3d7 authored by Eugene Susla's avatar Eugene Susla
Browse files

Refresh USER_SENSITIVE flags on package changes

Fixes: 141311767, 141316703
Test: grant permission to custom app, ensure it's not hidden
when not showing system apps in perm settings
Change-Id: I1ddf9adb3d2ac010eb7984b2b3d0982dcc110029
parent 6b860590
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -29,8 +29,10 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.app.AppOpsManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
@@ -169,6 +171,23 @@ public final class PermissionPolicyService extends SystemService {
        } catch (RemoteException doesNotHappen) {
            Slog.wtf(LOG_TAG, "Cannot set up app-ops listener");
        }

        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(Intent.ACTION_PACKAGE_CHANGED);
        intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
        intentFilter.addDataScheme("package");

        getContext().registerReceiverAsUser(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                UserHandle user =
                        UserHandle.getUserHandleForUid(intent.getIntExtra(Intent.EXTRA_UID, -1));
                new PermissionControllerManager(
                        getUserContext(getContext(), user), FgThread.getHandler())
                        .updateUserSensitive();
            }
        }, UserHandle.ALL, intentFilter, null, null);

    }

    /**