Update BluetoothDevice SystemApi permissions and disallow passing a null

pin to BluetoothDevice#setPin

Bug: 147428695
Test: Manual
Change-Id: I74613d61420babecf5f1976fe33a2e1a729b71a1
This commit is contained in:
Rahul Sabnis
2020-03-02 16:41:20 -08:00
parent 3e5a0605cf
commit 82425166a8
2 changed files with 22 additions and 26 deletions

View File

@@ -1569,23 +1569,23 @@ package android.bluetooth {
}
public final class BluetoothDevice implements android.os.Parcelable {
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean cancelBondProcess();
method public boolean cancelPairing();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getBatteryLevel();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getMessageAccessPermission();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelBondProcess();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelPairing();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getBatteryLevel();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getMessageAccessPermission();
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public byte[] getMetadata(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getPhonebookAccessPermission();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getSimAccessPermission();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isBondingInitiatedLocally();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getPhonebookAccessPermission();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getSimAccessPermission();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isBondingInitiatedLocally();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isConnected();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isEncrypted();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isInSilenceMode();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean removeBond();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeBond();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setAlias(@NonNull String);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMessageAccessPermission(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMetadata(int, @NonNull byte[]);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setPhonebookAccessPermission(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPin(@Nullable String);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPin(@NonNull String);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSilenceMode(boolean);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSimAccessPermission(int);
field public static final int ACCESS_ALLOWED = 1; // 0x1

View File

@@ -1118,7 +1118,7 @@ public final class BluetoothDevice implements Parcelable {
* @hide
*/
@SystemApi
@RequiresPermission(Manifest.permission.BLUETOOTH)
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public int getBatteryLevel() {
final IBluetooth service = sService;
if (service == null) {
@@ -1209,7 +1209,7 @@ public final class BluetoothDevice implements Parcelable {
* @hide
*/
@SystemApi
@RequiresPermission(Manifest.permission.BLUETOOTH)
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean isBondingInitiatedLocally() {
final IBluetooth service = sService;
if (service == null) {
@@ -1247,13 +1247,12 @@ public final class BluetoothDevice implements Parcelable {
/**
* Cancel an in-progress bonding request started with {@link #createBond}.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @return true on success, false on error
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN)
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean cancelBondProcess() {
final IBluetooth service = sService;
if (service == null) {
@@ -1276,13 +1275,12 @@ public final class BluetoothDevice implements Parcelable {
* <p>Delete the link key associated with the remote device, and
* immediately terminate connections to that device that require
* authentication and encryption.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @return true on success, false on error
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN)
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean removeBond() {
final IBluetooth service = sService;
if (service == null) {
@@ -1355,13 +1353,12 @@ public final class BluetoothDevice implements Parcelable {
/**
* Returns whether there is an open connection to this device.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH}.
*
* @return True if there is at least one open connection to this device.
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.BLUETOOTH)
@RequiresPermission(Manifest.permission.BLUETOOTH)
public boolean isConnected() {
final IBluetooth service = sService;
if (service == null) {
@@ -1379,13 +1376,12 @@ public final class BluetoothDevice implements Parcelable {
/**
* Returns whether there is an open connection to this device
* that has been encrypted.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH}.
*
* @return True if there is at least one encrypted connection to this device.
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.BLUETOOTH)
@RequiresPermission(Manifest.permission.BLUETOOTH)
public boolean isEncrypted() {
final IBluetooth service = sService;
if (service == null) {
@@ -1538,7 +1534,7 @@ public final class BluetoothDevice implements Parcelable {
*/
@SystemApi
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
public boolean setPin(@Nullable String pin) {
public boolean setPin(@NonNull String pin) {
byte[] pinBytes = convertPinToBytes(pin);
if (pinBytes == null) {
return false;
@@ -1574,6 +1570,7 @@ public final class BluetoothDevice implements Parcelable {
* @hide
*/
@SystemApi
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean cancelPairing() {
final IBluetooth service = sService;
if (service == null) {
@@ -1605,8 +1602,8 @@ public final class BluetoothDevice implements Parcelable {
* @hide
*/
@SystemApi
@RequiresPermission(Manifest.permission.BLUETOOTH)
public int getPhonebookAccessPermission() {
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public @AccessPermission int getPhonebookAccessPermission() {
final IBluetooth service = sService;
if (service == null) {
return ACCESS_UNKNOWN;
@@ -1685,7 +1682,6 @@ public final class BluetoothDevice implements Parcelable {
/**
* Sets whether the phonebook access is allowed to this device.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}.
*
* @param value Can be {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link
* #ACCESS_REJECTED}.
@@ -1694,7 +1690,7 @@ public final class BluetoothDevice implements Parcelable {
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean setPhonebookAccessPermission(int value) {
public boolean setPhonebookAccessPermission(@AccessPermission int value) {
final IBluetooth service = sService;
if (service == null) {
return false;
@@ -1714,7 +1710,7 @@ public final class BluetoothDevice implements Parcelable {
* @hide
*/
@SystemApi
@RequiresPermission(Manifest.permission.BLUETOOTH)
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public @AccessPermission int getMessageAccessPermission() {
final IBluetooth service = sService;
if (service == null) {
@@ -1761,7 +1757,7 @@ public final class BluetoothDevice implements Parcelable {
* @hide
*/
@SystemApi
@RequiresPermission(Manifest.permission.BLUETOOTH)
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public @AccessPermission int getSimAccessPermission() {
final IBluetooth service = sService;
if (service == null) {