DO NOT MERGE Restrict PHONE_CALL ops based on TelecomService

PHONE_CALL ops should be restricted here under the conditions of
the TelecomService not being started (which is not having
FEATURE_TELEPHONY and FEATURE_MICROPHONE).

Bug: 186518774
Test: manual, atest AppOpsTest#ensurePhoneCallOpsRestricted
Change-Id: I252636af68973c3b7c3ee6bbb5d50d7a8ca2c14c
This commit is contained in:
Alex Stetson
2022-02-17 15:28:22 -08:00
parent a1d372c4ce
commit 1ce47bf129

View File

@@ -185,8 +185,13 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat
initializeActivityRecognizersTags();
// If this device does not have telephony, restrict the phone call ops
if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
// If this device does not have telephony or microphone features, the TelecomService will
// not be started (which sets phone call ops to allow only its package). Therefore, phone
// call ops need to be restricted here.
PackageManager pm = mContext.getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
&& !pm.hasSystemFeature(PackageManager.FEATURE_MICROPHONE)
&& !pm.hasSystemFeature(PackageManager.FEATURE_CONNECTION_SERVICE)) {
AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
appOps.setUserRestrictionForUser(AppOpsManager.OP_PHONE_CALL_MICROPHONE, true, mToken,
null, UserHandle.USER_ALL);