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

Commit 55c261ad authored by Martijn Coenen's avatar Martijn Coenen
Browse files

Add in sandbox UIDs when configuring VPN.

SDK sandboxes that belong to an application should follow the same VPN
configuration that their corresponding app does.

Bug: 225317905
Test: atest VpnTest
Change-Id: I634f47a013fa2e42908d963fcd0634778298fee5
parent 54a348cf
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -1533,11 +1533,17 @@ public class Vpn {
    }
    }


    // Note: Return type guarantees results are deduped and sorted, which callers require.
    // Note: Return type guarantees results are deduped and sorted, which callers require.
    // This method also adds the SDK sandbox UIDs corresponding to the applications by default,
    // since apps are generally not aware of them, yet they should follow the VPN configuration
    // of the app they belong to.
    private SortedSet<Integer> getAppsUids(List<String> packageNames, int userId) {
    private SortedSet<Integer> getAppsUids(List<String> packageNames, int userId) {
        SortedSet<Integer> uids = new TreeSet<>();
        SortedSet<Integer> uids = new TreeSet<>();
        for (String app : packageNames) {
        for (String app : packageNames) {
            int uid = getAppUid(app, userId);
            int uid = getAppUid(app, userId);
            if (uid != -1) uids.add(uid);
            if (uid != -1) uids.add(uid);
            if (Process.isApplicationUid(uid)) {
                uids.add(Process.toSdkSandboxUid(uid));
            }
        }
        }
        return uids;
        return uids;
    }
    }