diff options
| author | 2024-12-03 20:41:36 -0800 | |
|---|---|---|
| committer | 2024-12-04 13:45:34 -0800 | |
| commit | 7500a8cf8a696562e2ef3f4b92e2ea1e9402c6d5 (patch) | |
| tree | 0ed0913c4572f375df5bc5ede6d2e71374eaeaa4 | |
| parent | 18f0d02bf27f9c8fc9ea9d2857db7b8da9c907ef (diff) | |
Listen to active apps for virtual devices too
The older callback filters non-default devices so we want to be using
the newer callback for privacy indicators.
Fixes: 343048379
Bug: 382302116
Test: atest CameraMicIndicatorsPermissionTest AppOpsControllerTest
Flag: EXEMPT bugfix
Change-Id: Idc10d54ffacd084aec37ef46f731bd39c29df3c7
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/appops/AppOpsControllerImpl.java | 5 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/appops/AppOpsControllerTest.java | 9 |
2 files changed, 8 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/appops/AppOpsControllerImpl.java b/packages/SystemUI/src/com/android/systemui/appops/AppOpsControllerImpl.java index cbdb8827e39c..5cf4b4faed78 100644 --- a/packages/SystemUI/src/com/android/systemui/appops/AppOpsControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/appops/AppOpsControllerImpl.java @@ -242,6 +242,7 @@ public class AppOpsControllerImpl extends BroadcastReceiver implements AppOpsCon op.getUid(), op.getPackageName(), /* attributionTag= */ attributedOpEntry.getKey(), + Context.DEVICE_ID_DEFAULT, /* active= */ true, // AppOpsManager doesn't have a way to fetch attribution flags or // chain ID given an op entry, so default them to none. @@ -440,14 +441,14 @@ public class AppOpsControllerImpl extends BroadcastReceiver implements AppOpsCon * Required to override, delegate to other. Should not be called. */ public void onOpActiveChanged(String op, int uid, String packageName, boolean active) { - onOpActiveChanged(op, uid, packageName, null, active, + onOpActiveChanged(op, uid, packageName, null, Context.DEVICE_ID_DEFAULT, active, AppOpsManager.ATTRIBUTION_FLAGS_NONE, AppOpsManager.ATTRIBUTION_CHAIN_ID_NONE); } // Get active app ops, and check if their attributions are trusted @Override public void onOpActiveChanged(String op, int uid, String packageName, String attributionTag, - boolean active, int attributionFlags, int attributionChainId) { + int virtualDeviceId, boolean active, int attributionFlags, int attributionChainId) { int code = AppOpsManager.strOpToOp(op); if (DEBUG) { Log.w(TAG, String.format("onActiveChanged(%d,%d,%s,%s,%d,%d)", code, uid, packageName, diff --git a/packages/SystemUI/tests/src/com/android/systemui/appops/AppOpsControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/appops/AppOpsControllerTest.java index 7c0892891707..11199cb2f34a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/appops/AppOpsControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/appops/AppOpsControllerTest.java @@ -44,6 +44,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.AppOpsManager; +import android.content.Context; import android.content.pm.PackageManager; import android.media.AudioManager; import android.media.AudioRecordingConfiguration; @@ -593,11 +594,11 @@ public class AppOpsControllerTest extends SysuiTestCase { //untrusted receiver access mController.onOpActiveChanged(AppOpsManager.OPSTR_RECORD_AUDIO, TEST_UID, - TEST_PACKAGE_NAME, TEST_ATTRIBUTION_NAME, true, + TEST_PACKAGE_NAME, TEST_ATTRIBUTION_NAME, Context.DEVICE_ID_DEFAULT, true, AppOpsManager.ATTRIBUTION_FLAG_RECEIVER, TEST_CHAIN_ID); //untrusted intermediary access mController.onOpActiveChanged(AppOpsManager.OPSTR_RECORD_AUDIO, TEST_UID, - TEST_PACKAGE_NAME, TEST_ATTRIBUTION_NAME, true, + TEST_PACKAGE_NAME, TEST_ATTRIBUTION_NAME, Context.DEVICE_ID_DEFAULT, true, AppOpsManager.ATTRIBUTION_FLAG_INTERMEDIARY, TEST_CHAIN_ID); assertTrue(mController.getActiveAppOps().isEmpty()); } @@ -606,11 +607,11 @@ public class AppOpsControllerTest extends SysuiTestCase { public void testTrustedChainUsagesKept() { //untrusted accessor access mController.onOpActiveChanged(AppOpsManager.OPSTR_RECORD_AUDIO, TEST_UID, - TEST_PACKAGE_NAME, TEST_ATTRIBUTION_NAME, true, + TEST_PACKAGE_NAME, TEST_ATTRIBUTION_NAME, Context.DEVICE_ID_DEFAULT, true, AppOpsManager.ATTRIBUTION_FLAG_ACCESSOR, TEST_CHAIN_ID); //trusted access mController.onOpActiveChanged(AppOpsManager.OPSTR_CAMERA, TEST_UID, - TEST_PACKAGE_NAME, TEST_ATTRIBUTION_NAME, true, + TEST_PACKAGE_NAME, TEST_ATTRIBUTION_NAME, Context.DEVICE_ID_DEFAULT, true, AppOpsManager.ATTRIBUTION_FLAG_RECEIVER | AppOpsManager.ATTRIBUTION_FLAG_TRUSTED, TEST_CHAIN_ID); assertEquals(2, mController.getActiveAppOps().size()); |