Restrict access from apps to bluetooth_address setting
BluetoothManagerService for some reason leaks the Android's Bluetooth MAC address via Settings.Secure which is normally readable by all apps. This lets apps bypass the restriction on access to Bluetooth MAC address from apps. This commit fixes the issue by restricting access to bluetooth_address secure setting (Settings.Secure). Only packages which hold the android.permission.LOCAL_MAC_ADDRESS permission retain access. This commit accordingly grants LOCAL_MAC_ADDRESS permission to the system Shell app because a number of scripts (including Android CTS) use "adb shell settings get secure bluetooth_address" as a convenient way to query the device's Bluetooth MAC address over ADB. This is acceptable because the user of the device can see the Bluetooth MAC address and thus it's fine for shell to be able to see the address as well. Test: See CTS test added in the cts project in this topic. Test: "adb shell settings get secure bluetooth_address" returns the Bluetooth MAC address of the Android. Test: "adb shell settings list secure | grep bluetooth_address" returns the Bluetooth MAC address of the Android. Test: Bluetooth works (toggling off/on, pairing, file transfer) Bug: 33701414 Change-Id: I17b110b96eb3794b25c1661e93d29a7a003e3c9a
Loading
Please register or sign in to comment