diff options
| author | 2023-05-17 20:35:24 +0000 | |
|---|---|---|
| committer | 2023-05-18 23:46:51 +0000 | |
| commit | 2e1da5b89ca3160559a476dd1e629f9bfca76d3c (patch) | |
| tree | 446e12bb9662bc53740ae2ae185354806a220464 | |
| parent | a4ddddd2948257f7b9d5b8093e758d3d8cf3d94a (diff) | |
Add dump permission check in broadcastradio
Bug: 283007554
Test: atest CtsSecurityTestCases:android.security.cts.ServicePermissionsTest#testDumpProtected
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:95f4f4afeb841b3df882f980d5a628ec37da29a6)
Merged-In: I496475cea43713c72aed104a4c51a47613646a7a
Change-Id: I496475cea43713c72aed104a4c51a47613646a7a
| -rw-r--r-- | services/core/java/com/android/server/broadcastradio/IRadioServiceAidlImpl.java | 10 | ||||
| -rw-r--r-- | services/core/java/com/android/server/broadcastradio/IRadioServiceHidlImpl.java | 10 |
2 files changed, 20 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/broadcastradio/IRadioServiceAidlImpl.java b/services/core/java/com/android/server/broadcastradio/IRadioServiceAidlImpl.java index 6a010424db13..42b2682cf530 100644 --- a/services/core/java/com/android/server/broadcastradio/IRadioServiceAidlImpl.java +++ b/services/core/java/com/android/server/broadcastradio/IRadioServiceAidlImpl.java @@ -16,6 +16,8 @@ package com.android.server.broadcastradio; +import android.Manifest; +import android.content.pm.PackageManager; import android.hardware.broadcastradio.IBroadcastRadio; import android.hardware.radio.IAnnouncementListener; import android.hardware.radio.ICloseHandle; @@ -23,6 +25,7 @@ import android.hardware.radio.IRadioService; import android.hardware.radio.ITuner; import android.hardware.radio.ITunerCallback; import android.hardware.radio.RadioManager; +import android.os.Binder; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; @@ -112,6 +115,13 @@ final class IRadioServiceAidlImpl extends IRadioService.Stub { @Override protected void dump(FileDescriptor fd, PrintWriter printWriter, String[] args) { + if (mService.getContext().checkCallingOrSelfPermission(Manifest.permission.DUMP) + != PackageManager.PERMISSION_GRANTED) { + printWriter.println("Permission Denial: can't dump AIDL BroadcastRadioService from " + + "from pid=" + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid() + + " without permission " + Manifest.permission.DUMP); + return; + } IndentingPrintWriter radioPrintWriter = new IndentingPrintWriter(printWriter); radioPrintWriter.printf("BroadcastRadioService\n"); diff --git a/services/core/java/com/android/server/broadcastradio/IRadioServiceHidlImpl.java b/services/core/java/com/android/server/broadcastradio/IRadioServiceHidlImpl.java index 408fba1bff3b..bc72a4be18be 100644 --- a/services/core/java/com/android/server/broadcastradio/IRadioServiceHidlImpl.java +++ b/services/core/java/com/android/server/broadcastradio/IRadioServiceHidlImpl.java @@ -16,12 +16,15 @@ package com.android.server.broadcastradio; +import android.Manifest; +import android.content.pm.PackageManager; import android.hardware.radio.IAnnouncementListener; import android.hardware.radio.ICloseHandle; import android.hardware.radio.IRadioService; import android.hardware.radio.ITuner; import android.hardware.radio.ITunerCallback; import android.hardware.radio.RadioManager; +import android.os.Binder; import android.os.RemoteException; import android.util.IndentingPrintWriter; import android.util.Log; @@ -129,6 +132,13 @@ final class IRadioServiceHidlImpl extends IRadioService.Stub { @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + if (mService.getContext().checkCallingOrSelfPermission(Manifest.permission.DUMP) + != PackageManager.PERMISSION_GRANTED) { + pw.println("Permission Denial: can't dump HIDL BroadcastRadioService from " + + "from pid=" + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid() + + " without permission " + Manifest.permission.DUMP); + return; + } IndentingPrintWriter radioPw = new IndentingPrintWriter(pw); radioPw.printf("BroadcastRadioService\n"); |