summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Weilin Xu <xuweilin@google.com> 2023-05-17 20:35:24 +0000
committer Cherrypicker Worker <android-build-cherrypicker-worker@google.com> 2023-05-18 23:46:51 +0000
commit2e1da5b89ca3160559a476dd1e629f9bfca76d3c (patch)
tree446e12bb9662bc53740ae2ae185354806a220464
parenta4ddddd2948257f7b9d5b8093e758d3d8cf3d94a (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.java10
-rw-r--r--services/core/java/com/android/server/broadcastradio/IRadioServiceHidlImpl.java10
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");