Loading services/core/java/com/android/server/audio/AudioService.java +15 −6 Original line number Diff line number Diff line Loading @@ -7081,8 +7081,7 @@ public class AudioService extends IAudioService.Stub + ", uid=" + uid + ", caller=" + callingPackage + ")"); } if (mContext.checkCallingPermission( MODIFY_AUDIO_SETTINGS_PRIVILEGED) != PackageManager.PERMISSION_GRANTED) { if (!hasAudioSettingsPrivilegedOrAudioRoutingPermission(/*withSelf=*/false)) { if (mode == MODE_ASSISTANT_CONVERSATION) { Log.w(TAG, "MODIFY_AUDIO_SETTINGS_PRIVILEGED Permission Denial for " Loading Loading @@ -8488,6 +8487,19 @@ public class AudioService extends IAudioService.Stub == PackageManager.PERMISSION_GRANTED; } private boolean hasAudioSettingsPrivilegedOrAudioRoutingPermission(boolean withSelf) { if (withSelf) { return mContext.checkCallingOrSelfPermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) == PackageManager.PERMISSION_GRANTED || mContext.checkCallingOrSelfPermission(MODIFY_AUDIO_ROUTING) == PackageManager.PERMISSION_GRANTED; } return mContext.checkCallingPermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) == PackageManager.PERMISSION_GRANTED || mContext.checkCallingPermission(MODIFY_AUDIO_ROUTING) == PackageManager.PERMISSION_GRANTED; } private void checkCallingAudioSettingsPrivilegedPermission() { if (!registerVolumeCallbackApiHardening()) { return; Loading Loading @@ -11967,10 +11979,7 @@ public class AudioService extends IAudioService.Stub // does caller have system privileges to bypass HardeningEnforcer boolean permissionOverridesCheck = false; if ((mContext.checkCallingOrSelfPermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) == PackageManager.PERMISSION_GRANTED) || (mContext.checkCallingOrSelfPermission(MODIFY_AUDIO_ROUTING) == PackageManager.PERMISSION_GRANTED)) { if (hasAudioSettingsPrivilegedOrAudioRoutingPermission(/*withSelf=*/true)) { permissionOverridesCheck = true; } else if (uid < UserHandle.AID_APP_START) { permissionOverridesCheck = true; Loading
services/core/java/com/android/server/audio/AudioService.java +15 −6 Original line number Diff line number Diff line Loading @@ -7081,8 +7081,7 @@ public class AudioService extends IAudioService.Stub + ", uid=" + uid + ", caller=" + callingPackage + ")"); } if (mContext.checkCallingPermission( MODIFY_AUDIO_SETTINGS_PRIVILEGED) != PackageManager.PERMISSION_GRANTED) { if (!hasAudioSettingsPrivilegedOrAudioRoutingPermission(/*withSelf=*/false)) { if (mode == MODE_ASSISTANT_CONVERSATION) { Log.w(TAG, "MODIFY_AUDIO_SETTINGS_PRIVILEGED Permission Denial for " Loading Loading @@ -8488,6 +8487,19 @@ public class AudioService extends IAudioService.Stub == PackageManager.PERMISSION_GRANTED; } private boolean hasAudioSettingsPrivilegedOrAudioRoutingPermission(boolean withSelf) { if (withSelf) { return mContext.checkCallingOrSelfPermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) == PackageManager.PERMISSION_GRANTED || mContext.checkCallingOrSelfPermission(MODIFY_AUDIO_ROUTING) == PackageManager.PERMISSION_GRANTED; } return mContext.checkCallingPermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) == PackageManager.PERMISSION_GRANTED || mContext.checkCallingPermission(MODIFY_AUDIO_ROUTING) == PackageManager.PERMISSION_GRANTED; } private void checkCallingAudioSettingsPrivilegedPermission() { if (!registerVolumeCallbackApiHardening()) { return; Loading Loading @@ -11967,10 +11979,7 @@ public class AudioService extends IAudioService.Stub // does caller have system privileges to bypass HardeningEnforcer boolean permissionOverridesCheck = false; if ((mContext.checkCallingOrSelfPermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) == PackageManager.PERMISSION_GRANTED) || (mContext.checkCallingOrSelfPermission(MODIFY_AUDIO_ROUTING) == PackageManager.PERMISSION_GRANTED)) { if (hasAudioSettingsPrivilegedOrAudioRoutingPermission(/*withSelf=*/true)) { permissionOverridesCheck = true; } else if (uid < UserHandle.AID_APP_START) { permissionOverridesCheck = true;