summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author jiabin <jiabin@google.com> 2020-07-31 11:05:01 -0700
committer jiabin <jiabin@google.com> 2020-07-31 15:41:38 -0700
commitbacecee90b63c582538db65573335208187c2097 (patch)
tree72c717a61fc621b825b324c79ebc4961d10160a5
parent0a7fd66f109a15664cb61bcf9682cbdfae8957ee (diff)
Do not log sensitive information in AudioService.
Sensitive information, such as IP and MAC address, should not be logged. In AudioService, only log the last 3 octets of BT device address. Test: make, connect BT device and log Bug: 162299985 Change-Id: I99db812efc327e6f3ebe791274998291a140a5b6
-rw-r--r--core/java/android/bluetooth/BluetoothDevice.java12
-rw-r--r--services/core/java/com/android/server/audio/BtHelper.java16
2 files changed, 24 insertions, 4 deletions
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index fb9746830d4e..548bca485681 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -1033,6 +1033,18 @@ public final class BluetoothDevice implements Parcelable {
}
/**
+ * Returns the anonymized hardware address of this BluetoothDevice. The first three octets
+ * will be suppressed for anonymization.
+ * <p> For example, "XX:XX:XX:AA:BB:CC".
+ *
+ * @return Anonymized bluetooth hardware address as string
+ * @hide
+ */
+ public String getAnonymizedAddress() {
+ return "XX:XX:XX" + getAddress().substring(8);
+ }
+
+ /**
* Get the friendly Bluetooth name of the remote device.
*
* <p>The local adapter will automatically retrieve remote names when
diff --git a/services/core/java/com/android/server/audio/BtHelper.java b/services/core/java/com/android/server/audio/BtHelper.java
index b4c41b274dbe..5e8f1ef0db85 100644
--- a/services/core/java/com/android/server/audio/BtHelper.java
+++ b/services/core/java/com/android/server/audio/BtHelper.java
@@ -632,21 +632,28 @@ public class BtHelper {
return result;
}
+ // Return `(null)` if given BluetoothDevice is null. Otherwise, return the anonymized address.
+ private String getAnonymizedAddress(BluetoothDevice btDevice) {
+ return btDevice == null ? "(null)" : btDevice.getAnonymizedAddress();
+ }
+
// @GuardedBy("AudioDeviceBroker.mSetModeLock")
//@GuardedBy("AudioDeviceBroker.mDeviceStateLock")
@GuardedBy("BtHelper.this")
private void setBtScoActiveDevice(BluetoothDevice btDevice) {
- Log.i(TAG, "setBtScoActiveDevice: " + mBluetoothHeadsetDevice + " -> " + btDevice);
+ Log.i(TAG, "setBtScoActiveDevice: " + getAnonymizedAddress(mBluetoothHeadsetDevice)
+ + " -> " + getAnonymizedAddress(btDevice));
final BluetoothDevice previousActiveDevice = mBluetoothHeadsetDevice;
if (Objects.equals(btDevice, previousActiveDevice)) {
return;
}
if (!handleBtScoActiveDeviceChange(previousActiveDevice, false)) {
Log.w(TAG, "setBtScoActiveDevice() failed to remove previous device "
- + previousActiveDevice);
+ + getAnonymizedAddress(previousActiveDevice));
}
if (!handleBtScoActiveDeviceChange(btDevice, true)) {
- Log.e(TAG, "setBtScoActiveDevice() failed to add new device " + btDevice);
+ Log.e(TAG, "setBtScoActiveDevice() failed to add new device "
+ + getAnonymizedAddress(btDevice));
// set mBluetoothHeadsetDevice to null when failing to add new device
btDevice = null;
}
@@ -826,7 +833,8 @@ public class BtHelper {
mBluetoothHeadsetDevice, mScoAudioMode)) {
mScoAudioState = SCO_STATE_ACTIVE_INTERNAL;
} else {
- Log.w(TAG, "requestScoState: connect to " + mBluetoothHeadsetDevice
+ Log.w(TAG, "requestScoState: connect to "
+ + getAnonymizedAddress(mBluetoothHeadsetDevice)
+ " failed, mScoAudioMode=" + mScoAudioMode);
broadcastScoConnectionState(
AudioManager.SCO_AUDIO_STATE_DISCONNECTED);