Merge "Add ability to log last 2 digits of dialed numbers in userdebug builds." am: a355552bfe

am: cc9acb51c5

Change-Id: Ie6d937b3a6a09e358945a5453af43b6096d8d9b6
This commit is contained in:
Tyler Gunn
2018-04-24 10:02:17 -07:00
committed by android-build-merger

View File

@@ -46,6 +46,11 @@ public class Log {
private static final int EVENTS_TO_CACHE = 10;
private static final int EVENTS_TO_CACHE_DEBUG = 20;
/**
* When generating a bug report, include the last X dialable digits when logging phone numbers.
*/
private static final int NUM_DIALABLE_DIGITS_TO_LOG = Build.IS_USER ? 0 : 2;
// Generic tag for all Telecom logging
@VisibleForTesting
public static String TAG = "TelecomFramework";
@@ -384,9 +389,15 @@ public class Log {
String textToObfuscate = uri.getSchemeSpecificPart();
if (PhoneAccount.SCHEME_TEL.equals(scheme)) {
int numDigitsToObfuscate = getDialableCount(textToObfuscate)
- NUM_DIALABLE_DIGITS_TO_LOG;
for (int i = 0; i < textToObfuscate.length(); i++) {
char c = textToObfuscate.charAt(i);
sb.append(PhoneNumberUtils.isDialable(c) ? "*" : c);
boolean isDialable = PhoneNumberUtils.isDialable(c);
if (isDialable) {
numDigitsToObfuscate--;
}
sb.append(isDialable && numDigitsToObfuscate >= 0 ? "*" : c);
}
} else if (PhoneAccount.SCHEME_SIP.equals(scheme)) {
for (int i = 0; i < textToObfuscate.length(); i++) {
@@ -404,6 +415,21 @@ public class Log {
return sb.toString();
}
/**
* Determines the number of dialable characters in a string.
* @param toCount The string to count dialable characters in.
* @return The count of dialable characters.
*/
private static int getDialableCount(String toCount) {
int numDialable = 0;
for (char c : toCount.toCharArray()) {
if (PhoneNumberUtils.isDialable(c)) {
numDialable++;
}
}
return numDialable;
}
/**
* Redact personally identifiable information for production users.
* If we are running in verbose mode, return the original string,