Protect TelecomManager#getPhoneAccount with necessary permissions.

Bug: 183407956
Test: make, CTS test
Change-Id: I0ff68f29865c0bb2b316b3fc73d2c5adc37e4a36
(cherry picked from commit b13eb2c476fbb403646e48ded69fbc6b26f55606)
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 1953af4..e000265 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -1018,6 +1018,16 @@
     // 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 @@
      * 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 @@
         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);
             }