audio: add command to purge permission cache
Add a media_audio_policy service command and helper function
in ServiceUtilities to purge permission cache.
This permists to restore the use of permission cache for
CAPTURE_AUDIO_HOTWORD permission while still allowing CTS tests to
adopt shell permission.
Bug: 185972521
Test: atest AudioRecordSharedAudioTest
Change-Id: Ib8963053d6d7734e474174f572762abe1a4be13b
diff --git a/media/utils/ServiceUtilities.cpp b/media/utils/ServiceUtilities.cpp
index 68a5059..40a1041 100644
--- a/media/utils/ServiceUtilities.cpp
+++ b/media/utils/ServiceUtilities.cpp
@@ -212,10 +212,7 @@
if (ok) {
static const String16 sCaptureHotwordAllowed("android.permission.CAPTURE_AUDIO_HOTWORD");
- //TODO: b/185972521: see if permission cache can be used with shell identity for CTS
- PermissionController permissionController;
- ok = permissionController.checkPermission(sCaptureHotwordAllowed,
- pid, uid);
+ ok = PermissionCache::checkPermission(sCaptureHotwordAllowed, pid, uid);
}
if (!ok) ALOGV("android.permission.CAPTURE_AUDIO_HOTWORD");
return ok;
@@ -301,6 +298,10 @@
return identity;
}
+void purgePermissionCache() {
+ PermissionCache::purgeCache();
+}
+
status_t checkIMemory(const sp<IMemory>& iMemory)
{
if (iMemory == 0) {
diff --git a/media/utils/include/mediautils/ServiceUtilities.h b/media/utils/include/mediautils/ServiceUtilities.h
index 9a3c6fb..6e75746 100644
--- a/media/utils/include/mediautils/ServiceUtilities.h
+++ b/media/utils/include/mediautils/ServiceUtilities.h
@@ -97,6 +97,7 @@
bool dumpAllowed();
bool modifyPhoneStateAllowed(const media::permission::Identity& identity);
bool bypassInterruptionPolicyAllowed(const media::permission::Identity& identity);
+void purgePermissionCache();
media::permission::Identity getCallingIdentity();