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

Commit 68301eb7 authored by Paul Hu's avatar Paul Hu Committed by Gerrit Code Review
Browse files

Merge "Add MATCH_ANY_USER flag to PackageInfo queries"

parents 0885cc3d eb5d083e
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -338,7 +338,8 @@ public class PermissionMonitor {
            return currentPermission;
        }
        try {
            final PackageInfo app = mPackageManager.getPackageInfo(name, GET_PERMISSIONS);
            final PackageInfo app = mPackageManager.getPackageInfo(name,
                    GET_PERMISSIONS | MATCH_ANY_USER);
            final boolean isNetwork = hasNetworkPermission(app);
            final boolean hasRestrictedPermission = hasRestrictedNetworkPermission(app);
            if (isNetwork || hasRestrictedPermission) {
@@ -664,6 +665,7 @@ public class PermissionMonitor {
                    break;
                case INetd.PERMISSION_UNINSTALLED:
                    uninstalledAppIds.add(netdPermissionsAppIds.keyAt(i));
                    break;
                default:
                    Log.e(TAG, "unknown permission type: " + permissions + "for uid: "
                            + netdPermissionsAppIds.keyAt(i));
+3 −2
Original line number Diff line number Diff line
@@ -2809,8 +2809,9 @@ public class ConnectivityServiceTest {
    private void grantUsingBackgroundNetworksPermissionForUid(
            final int uid, final String packageName) throws Exception {
        when(mPackageManager.getPackageInfo(eq(packageName), eq(GET_PERMISSIONS)))
                .thenReturn(buildPackageInfo(true, uid));
        when(mPackageManager.getPackageInfo(
                eq(packageName), eq(GET_PERMISSIONS | MATCH_ANY_USER)))
                .thenReturn(buildPackageInfo(true /* hasSystemPermission */, uid));
        mService.mPermissionMonitor.onPackageAdded(packageName, uid);
    }
+12 −10
Original line number Diff line number Diff line
@@ -479,13 +479,14 @@ public class PermissionMonitorTest {
    public void testUidFilteringDuringVpnConnectDisconnectAndUidUpdates() throws Exception {
        when(mPackageManager.getInstalledPackages(eq(GET_PERMISSIONS | MATCH_ANY_USER))).thenReturn(
                Arrays.asList(new PackageInfo[] {
                        buildPackageInfo(/* SYSTEM */ true, SYSTEM_UID1, MOCK_USER1),
                        buildPackageInfo(/* SYSTEM */ false, MOCK_UID1, MOCK_USER1),
                        buildPackageInfo(/* SYSTEM */ false, MOCK_UID2, MOCK_USER1),
                        buildPackageInfo(/* SYSTEM */ false, VPN_UID, MOCK_USER1)
                        buildPackageInfo(true /* hasSystemPermission */, SYSTEM_UID1, MOCK_USER1),
                        buildPackageInfo(false /* hasSystemPermission */, MOCK_UID1, MOCK_USER1),
                        buildPackageInfo(false /* hasSystemPermission */, MOCK_UID2, MOCK_USER1),
                        buildPackageInfo(false /* hasSystemPermission */, VPN_UID, MOCK_USER1)
                }));
        when(mPackageManager.getPackageInfo(eq(MOCK_PACKAGE1), eq(GET_PERMISSIONS))).thenReturn(
                buildPackageInfo(false, MOCK_UID1, MOCK_USER1));
        when(mPackageManager.getPackageInfo(eq(MOCK_PACKAGE1),
                eq(GET_PERMISSIONS | MATCH_ANY_USER))).thenReturn(
                buildPackageInfo(false /* hasSystemPermission */, MOCK_UID1, MOCK_USER1));
        mPermissionMonitor.startMonitoring();
        // Every app on user 0 except MOCK_UID2 are under VPN.
        final Set<UidRange> vpnRange1 = new HashSet<>(Arrays.asList(new UidRange[] {
@@ -530,11 +531,12 @@ public class PermissionMonitorTest {
    public void testUidFilteringDuringPackageInstallAndUninstall() throws Exception {
        when(mPackageManager.getInstalledPackages(eq(GET_PERMISSIONS | MATCH_ANY_USER))).thenReturn(
                Arrays.asList(new PackageInfo[] {
                        buildPackageInfo(true, SYSTEM_UID1, MOCK_USER1),
                        buildPackageInfo(false, VPN_UID, MOCK_USER1)
                        buildPackageInfo(true /* hasSystemPermission */, SYSTEM_UID1, MOCK_USER1),
                        buildPackageInfo(false /* hasSystemPermission */, VPN_UID, MOCK_USER1)
                }));
        when(mPackageManager.getPackageInfo(eq(MOCK_PACKAGE1), eq(GET_PERMISSIONS))).thenReturn(
                        buildPackageInfo(false, MOCK_UID1, MOCK_USER1));
        when(mPackageManager.getPackageInfo(eq(MOCK_PACKAGE1),
                eq(GET_PERMISSIONS | MATCH_ANY_USER))).thenReturn(
                buildPackageInfo(false /* hasSystemPermission */, MOCK_UID1, MOCK_USER1));

        mPermissionMonitor.startMonitoring();
        final Set<UidRange> vpnRange = Collections.singleton(UidRange.createForUser(MOCK_USER1));