Protect TelecomManager#getPhoneAccount with necessary permission.
Apps targeting API version 31+ should have READ_PHONE_NUMBERS to call
method getPhoneAccount.
Bug: 183407956
Test: UnitTest, CTS test
Change-Id: I60c37687d8ee0b04129f0393a19e0fd4961990e5
(cherry picked from commit 11a19742d03d766567f281dcf31e4efa5b4d636b)
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index caaf4d6..60d38af 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -39,6 +39,10 @@
<!-- Used to access Projection State APIs -->
<uses-permission android:name="android.permission.READ_PROJECTION_STATE"/>
+ <!-- Used to access PlatformCompat APIs -->
+ <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
+ <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />
+
<application android:label="@string/app_name"
android:debuggable="true">
<uses-library android:name="android.test.runner" />
diff --git a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
index fa8ab10..3cec50b 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
@@ -460,10 +460,10 @@
@Test
public void testGetPhoneAccount() throws RemoteException {
makeAccountsVisibleToAllUsers(TEL_PA_HANDLE_16, SIP_PA_HANDLE_17);
- assertEquals(TEL_PA_HANDLE_16, mTSIBinder.getPhoneAccount(TEL_PA_HANDLE_16)
- .getAccountHandle());
- assertEquals(SIP_PA_HANDLE_17, mTSIBinder.getPhoneAccount(SIP_PA_HANDLE_17)
- .getAccountHandle());
+ assertEquals(TEL_PA_HANDLE_16, mTSIBinder.getPhoneAccount(TEL_PA_HANDLE_16,
+ mContext.getPackageName()).getAccountHandle());
+ assertEquals(SIP_PA_HANDLE_17, mTSIBinder.getPhoneAccount(SIP_PA_HANDLE_17,
+ mContext.getPackageName()).getAccountHandle());
}
@SmallTest