summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hunter Knepshield <hknepshield@google.com> 2020-02-28 15:43:56 -0800
committer Hunter Knepshield <hknepshield@google.com> 2020-03-27 20:33:50 +0000
commitb6cbb00e89649e126368346c309a25ee29a68968 (patch)
treef0de9afc6a2482106db00b1a866e9305366d7307
parent07f7d30449bf2e0009aca4c034f4b48517af1ecc (diff)
Scrub TelephonyRegistry of package names on user builds
For privacy-constrained bug report types (e.g. connectivity), we should be omitting package names on user builds, but UIDs are acceptable to display, so we add those in a few more places. For full bug reports on user builds, the UID can always be mapped back to a package name. Test: inspect dumpsys telephony.registry on user build Bug: 150409813 Change-Id: Iad7be2d71a872f48b7384d765b7ffbb9547e2d75 Merged-In: Iad7be2d71a872f48b7384d765b7ffbb9547e2d75 (cherry picked from commit bb6c3b562dfde7b8859e5c158e6fc79b519ecfad)
-rw-r--r--services/core/java/com/android/server/TelephonyRegistry.java37
1 files changed, 23 insertions, 14 deletions
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index d54bacc6cf27..ac897e464659 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -168,14 +168,13 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
@Override
public String toString() {
- return "{callingPackage=" + callingPackage + " binder=" + binder
- + " callback=" + callback
+ return "{callingPackage=" + pii(callingPackage) + " callerUid=" + callerUid + " binder="
+ + binder + " callback=" + callback
+ " onSubscriptionsChangedListenererCallback="
+ onSubscriptionsChangedListenerCallback
+ " onOpportunisticSubscriptionsChangedListenererCallback="
- + onOpportunisticSubscriptionsChangedListenerCallback
- + " callerUid=" + callerUid + " subId=" + subId + " phoneId=" + phoneId
- + " events=" + Integer.toHexString(events) + "}";
+ + onOpportunisticSubscriptionsChangedListenerCallback + " subId=" + subId
+ + " phoneId=" + phoneId + " events=" + Integer.toHexString(events) + "}";
}
}
@@ -598,9 +597,9 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
int callerUserId = UserHandle.getCallingUserId();
mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
if (VDBG) {
- log("listen oscl: E pkg=" + callingPackage + " myUserId=" + UserHandle.myUserId()
- + " callerUserId=" + callerUserId + " callback=" + callback
- + " callback.asBinder=" + callback.asBinder());
+ log("listen oscl: E pkg=" + pii(callingPackage) + " uid=" + Binder.getCallingUid()
+ + " myUserId=" + UserHandle.myUserId() + " callerUserId=" + callerUserId
+ + " callback=" + callback + " callback.asBinder=" + callback.asBinder());
}
synchronized (mRecords) {
@@ -652,9 +651,9 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
int callerUserId = UserHandle.getCallingUserId();
mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
if (VDBG) {
- log("listen ooscl: E pkg=" + callingPackage + " myUserId=" + UserHandle.myUserId()
- + " callerUserId=" + callerUserId + " callback=" + callback
- + " callback.asBinder=" + callback.asBinder());
+ log("listen ooscl: E pkg=" + pii(callingPackage) + " uid=" + Binder.getCallingUid()
+ + " myUserId=" + UserHandle.myUserId() + " callerUserId=" + callerUserId
+ + " callback=" + callback + " callback.asBinder=" + callback.asBinder());
}
synchronized (mRecords) {
@@ -769,9 +768,9 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
IPhoneStateListener callback, int events, boolean notifyNow, int subId) {
int callerUserId = UserHandle.getCallingUserId();
mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
- String str = "listen: E pkg=" + callingPackage + " events=0x" + Integer.toHexString(events)
- + " notifyNow=" + notifyNow + " subId=" + subId + " myUserId="
- + UserHandle.myUserId() + " callerUserId=" + callerUserId;
+ String str = "listen: E pkg=" + pii(callingPackage) + " uid=" + Binder.getCallingUid()
+ + " events=0x" + Integer.toHexString(events) + " notifyNow=" + notifyNow + " subId="
+ + subId + " myUserId=" + UserHandle.myUserId() + " callerUserId=" + callerUserId;
mListenLog.log(str);
if (VDBG) {
log(str);
@@ -2935,4 +2934,14 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
if (info == null) return INVALID_SIM_SLOT_INDEX;
return info.getSimSlotIndex();
}
+
+ /**
+ * On certain build types, we should redact information by default. UID information will be
+ * preserved in the same log line, so no debugging capability is lost in full bug reports.
+ * However, privacy-constrained bug report types (e.g. connectivity) cannot display raw
+ * package names on user builds as it's considered an information leak.
+ */
+ private static String pii(String packageName) {
+ return Build.IS_DEBUGGABLE ? packageName : "***";
+ }
}