Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b6cbb00e authored by Hunter Knepshield's avatar Hunter Knepshield
Browse files

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 bb6c3b56)
parent 07f7d304
Loading
Loading
Loading
Loading
+23 −14
Original line number Diff line number Diff line
@@ -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 : "***";
    }
}