diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-06-22 22:45:56 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-06-22 22:45:56 +0000 |
commit | d62464f4fec59b2f7ea961d00b969561dfa1f507 (patch) | |
tree | a5ed884ca3aee10f44b97252915e5e486d165717 | |
parent | cfc8359f34147b7fb75204d7d8f13b3e7a16af6d (diff) | |
parent | 3ad3cb75aff52d878846302cb46fd51c63984362 (diff) | |
download | base-d62464f4fec59b2f7ea961d00b969561dfa1f507.tar.gz |
Merge "Protect TelecomManager#getPhoneAccount with necessary permissions." into sc-dev
-rw-r--r-- | telecomm/java/android/telecom/TelecomManager.java | 15 | ||||
-rw-r--r-- | telecomm/java/com/android/internal/telecom/ITelecomService.aidl | 2 |
2 files changed, 15 insertions, 2 deletions
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index 1953af4adee5..e000265f0a2c 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -1018,6 +1018,16 @@ public class TelecomManager { // this magic number is a bug ID public static final long ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION = 157233955L; + /** + * Enable READ_PHONE_NUMBERS or READ_PRIVILEGED_PHONE_STATE protections on + * {@link TelecomManager#getPhoneAccount(PhoneAccountHandle)}. + * @hide + */ + @ChangeId + @EnabledSince(targetSdkVersion = Build.VERSION_CODES.S) + // bug ID + public static final long ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION = 183407956L; + private static final String TAG = "TelecomManager"; @@ -1351,6 +1361,9 @@ public class TelecomManager { * Return the {@link PhoneAccount} for a specified {@link PhoneAccountHandle}. Object includes * resources which can be used in a user interface. * + * Requires Permission: + * {@link android.Manifest.permission#READ_PHONE_NUMBERS} for applications targeting API + * level 31+. * @param account The {@link PhoneAccountHandle}. * @return The {@link PhoneAccount} object. */ @@ -1358,7 +1371,7 @@ public class TelecomManager { ITelecomService service = getTelecomService(); if (service != null) { try { - return service.getPhoneAccount(account); + return service.getPhoneAccount(account, mContext.getPackageName()); } catch (RemoteException e) { Log.e(TAG, "Error calling ITelecomService#getPhoneAccount", e); } diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl index 18afde742abb..6f286d9f3006 100644 --- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl +++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl @@ -79,7 +79,7 @@ interface ITelecomService { /** * @see TelecomManager#getPhoneAccount */ - PhoneAccount getPhoneAccount(in PhoneAccountHandle account); + PhoneAccount getPhoneAccount(in PhoneAccountHandle account, String callingPackage); /** * @see TelecomManager#getAllPhoneAccountsCount |