From 79e850e70785c3f35fb4fd7e697e633d4d3edd3e Mon Sep 17 00:00:00 2001 From: mroetsc Date: Wed, 3 Jun 2026 17:43:34 +0200 Subject: [PATCH] Telecom: allow Android Auto to resolve PhoneAccounts for SIM disambiguation canGetPhoneAccount() blocks AA since it cannot hold READ_PRIVILEGED_PHONE_STATE as a sandboxed app. Mirrors the existing carve-out in getUserSelectedOutgoingPhoneAccount. Fixes: GrapheneOS/os-issue-tracker#3166 --- src/com/android/server/telecom/TelecomServiceImpl.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java index 46e4ff712..28a8e3a8f 100644 --- a/src/com/android/server/telecom/TelecomServiceImpl.java +++ b/src/com/android/server/telecom/TelecomServiceImpl.java @@ -3887,6 +3887,16 @@ private boolean canGetPhoneAccount(String callingPackage, PhoneAccountHandle acc // ignore } + // Needed for calls with multi sim phones, since AA cannot hold + // READ_PRIVILEGED_PHONE_STATE as a sandboxed app, causing getPhoneAccount() + // to fail and SIM selection to never appear. Mirrors getUserSelectedOutgoingPhoneAccount. + try { + mContext.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE_ANDROID_AUTO, null); + return true; + } catch (SecurityException e) { + // ignore + } + try { mContext.enforceCallingOrSelfPermission(READ_PRIVILEGED_PHONE_STATE, null); return true;