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
This commit is contained in:
Hunter Knepshield
2020-02-28 15:43:56 -08:00
parent fd972c9050
commit bb6c3b562d

View File

@@ -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) + "}";
}
}
@@ -599,9 +598,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) {
@@ -653,9 +652,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) {
@@ -770,9 +769,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);
@@ -2943,4 +2942,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 : "***";
}
}