TEMP: trust recognition service providers

temporarily trust select recognition service packages

Bug: 184963112
Test: manual
Change-Id: I374ae2809dbd51b7d6af0cbbe170529743bb0785
This commit is contained in:
Nate Myren
2021-05-05 11:20:06 -07:00
parent 327db7857d
commit ba40fe89a4

View File

@@ -3065,6 +3065,13 @@ public class AppOpsService extends IAppOpsService.Stub {
shouldCollectAsyncNotedOp, message, shouldCollectMessage, skipProxyOperation);
}
// TODO b/184963112: remove once full blaming is implemented
private boolean isRecognitionServiceTemp(int code, String packageName) {
return code == OP_RECORD_AUDIO
&& (packageName.equals("com.google.android.googlequicksearchbox")
|| packageName.equals("com.google.android.tts"));
}
private SyncNotedAppOp noteProxyOperationImpl(int code, AttributionSource attributionSource,
boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage,
boolean skipProxyOperation) {
@@ -3091,7 +3098,8 @@ public class AppOpsService extends IAppOpsService.Stub {
final boolean isSelfBlame = Binder.getCallingUid() == proxiedUid;
final boolean isProxyTrusted = mContext.checkPermission(
Manifest.permission.UPDATE_APP_OPS_STATS, -1, proxyUid)
== PackageManager.PERMISSION_GRANTED || isSelfBlame;
== PackageManager.PERMISSION_GRANTED || isSelfBlame
|| isRecognitionServiceTemp(code, proxyPackageName);
if (!skipProxyOperation) {
final int proxyFlags = isProxyTrusted ? AppOpsManager.OP_FLAG_TRUSTED_PROXY