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

Commit 88a3b03e authored by Grant Menke's avatar Grant Menke
Browse files

Ensure TelecomServiceImpl uses System API when checking isSameApp.

To support eventual Telecom mainline modularization, this CL removes dependencies on hidden API UserHandle#isSameApp.

Bug: 382119556
Change-Id: Ibffdb2d5dcefc55b488b4bca86580d8319843dbf
Test: Manual + atest TelecomServiceImplTest
Flag: com.android.server.telecom.flags.allow_system_apps_resolve_voip_calls
parent ad9b792d
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -1471,14 +1471,18 @@ public class TelecomServiceImpl {
        private boolean isPrivilegedUid() {
            int callingUid = Binder.getCallingUid();
            return mFeatureFlags.allowSystemAppsResolveVoipCalls()
                    ? (UserHandle.isSameApp(callingUid, Process.ROOT_UID)
                            || UserHandle.isSameApp(callingUid, Process.SYSTEM_UID)
                            || UserHandle.isSameApp(callingUid, Process.SHELL_UID))
                    ? (isSameApp(callingUid, Process.ROOT_UID)
                            || isSameApp(callingUid, Process.SYSTEM_UID)
                            || isSameApp(callingUid, Process.SHELL_UID))
                    : (callingUid == Process.ROOT_UID
                            || callingUid == Process.SYSTEM_UID
                            || callingUid == Process.SHELL_UID);
        }

        private boolean isSameApp(int uid1, int uid2) {
            return UserHandle.getAppId(uid1) == UserHandle.getAppId(uid2);
        }

        private boolean isSysUiUid() {
            int callingUid = Binder.getCallingUid();
            int systemUiUid;
@@ -1487,7 +1491,7 @@ public class TelecomServiceImpl {
                    systemUiUid = mPackageManager.getPackageUid(mSystemUiPackageName, 0);
                    Log.i(TAG, "isSysUiUid: callingUid = " + callingUid + "; systemUiUid = "
                            + systemUiUid);
                    return UserHandle.isSameApp(callingUid, systemUiUid);
                    return isSameApp(callingUid, systemUiUid);
                } catch (PackageManager.NameNotFoundException e) {
                    Log.w(TAG, "isSysUiUid: caught PackageManager NameNotFoundException = " + e);
                    return false;