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:
@@ -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 : "***";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user