summaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
authorEtan Cohen <etancohen@google.com>2020-01-16 17:11:30 -0800
committerEtan Cohen <etancohen@google.com>2020-01-22 10:25:04 -0800
commit77c0640bcc0791909e3716f633e7c66d3e1e4eca (patch)
tree2d4fafce357d14b9ce7bd85936bb67f5d86de23e /services
parentad1c710e827ac392887c7b6e011832f76c9ff549 (diff)
[CDM][WIFI] Provide a permission for Wi-Fi association approval for companion apps
Rename API to make it explicit to Wi-Fi. Bug: 135211972 Test: atest android.os.cts.CompanionDeviceManagerTest Change-Id: I75b6d13432407a4e2804b57dcf6956055c9cefb6
Diffstat (limited to 'services')
-rw-r--r--services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
index e976811a3094..434a97ee0bc5 100644
--- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
+++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
@@ -361,13 +361,18 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
}
@Override
- public boolean isDeviceAssociated(String packageName, String macAddress, int userId) {
+ public boolean isDeviceAssociatedForWifiConnection(String packageName, String macAddress,
+ int userId) {
getContext().enforceCallingOrSelfPermission(
android.Manifest.permission.MANAGE_COMPANION_DEVICES, "isDeviceAssociated");
+ boolean bypassMacPermission = getContext().getPackageManager().checkPermission(
+ android.Manifest.permission.COMPANION_APPROVE_WIFI_CONNECTIONS, packageName)
+ == PackageManager.PERMISSION_GRANTED;
+
return CollectionUtils.any(
readAllAssociations(userId, packageName),
- a -> Objects.equals(a.deviceAddress, macAddress));
+ a -> bypassMacPermission || Objects.equals(a.deviceAddress, macAddress));
}
private void checkCanCallNotificationApi(String callingPackage) throws RemoteException {