From a8395ffa3af5ce7877ba3ae3affe3e53ab8fb871 Mon Sep 17 00:00:00 2001 From: xshu Date: Thu, 30 Sep 2021 15:43:06 -0700 Subject: [PATCH 1/3] New runtime permission NEARBY_WIFI_DEVICES (cherry-picked from internal master) This will be added to the nearby devices permission group. Bug: 197776854 Test: compile Change-Id: I3f827be6219b5bb1595744e20b316d2b968e022d Merged-In: I3f827be6219b5bb1595744e20b316d2b968e022d --- core/api/current.txt | 1 + core/res/AndroidManifest.xml | 8 ++++++++ core/res/res/values/strings.xml | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/core/api/current.txt b/core/api/current.txt index 0eba9d75fdfcf..b54a747461523 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -112,6 +112,7 @@ package android { field public static final String MODIFY_PHONE_STATE = "android.permission.MODIFY_PHONE_STATE"; field public static final String MOUNT_FORMAT_FILESYSTEMS = "android.permission.MOUNT_FORMAT_FILESYSTEMS"; field public static final String MOUNT_UNMOUNT_FILESYSTEMS = "android.permission.MOUNT_UNMOUNT_FILESYSTEMS"; + field public static final String NEARBY_WIFI_DEVICES = "android.permission.NEARBY_WIFI_DEVICES"; field public static final String NFC = "android.permission.NFC"; field public static final String NFC_PREFERRED_PAYMENT_INFO = "android.permission.NFC_PREFERRED_PAYMENT_INFO"; field public static final String NFC_TRANSACTION_EVENT = "android.permission.NFC_TRANSACTION_EVENT"; diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index bd89578f4208f..1418dbe0f849a 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1976,6 +1976,14 @@ android:label="@string/permlab_uwb_ranging" android:protectionLevel="dangerous" /> + + + Allow the app to determine relative position between nearby Ultra-Wideband devices + + interact with nearby Wi\u2011Fi devices + + Allows the app to advertise, connect, and determine the relative position of nearby Wi\u2011Fi devices + Preferred NFC Payment Service Information From b4933d744e16e5585825e562019b4fd9dbdab41d Mon Sep 17 00:00:00 2001 From: xshu Date: Thu, 30 Sep 2021 16:21:25 -0700 Subject: [PATCH 2/3] Add new wifi nearby devices app-ops (cherry-picked from internal master) This will be part of nearby devices permission group Bug: 197776854 Test: compiles Change-Id: I6002edfd951322d959cd8f4c7a06381badfd1660 Merged-In: I6002edfd951322d959cd8f4c7a06381badfd1660 --- core/java/android/app/AppOpsManager.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index d932a29beca61..0b336f6fc47f3 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -1292,6 +1292,9 @@ public class AppOpsManager { /** @hide */ public static final int OP_UWB_RANGING = AppProtoEnums.APP_OP_UWB_RANGING; + /** @hide */ + public static final int OP_NEARBY_WIFI_DEVICES = AppProtoEnums.APP_OP_NEARBY_WIFI_DEVICES; + /** * Activity recognition being accessed by an activity recognition source, which * is a component that already has access since it is the one that detects @@ -1312,7 +1315,7 @@ public class AppOpsManager { /** @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) - public static final int _NUM_OP = 116; + public static final int _NUM_OP = 117; /** Access to coarse location information. */ public static final String OPSTR_COARSE_LOCATION = "android:coarse_location"; @@ -1731,6 +1734,8 @@ public class AppOpsManager { public static final String OPSTR_MANAGE_MEDIA = "android:manage_media"; /** @hide */ public static final String OPSTR_UWB_RANGING = "android:uwb_ranging"; + /** @hide */ + public static final String OPSTR_NEARBY_WIFI_DEVICES = "android:nearby_wifi_devices"; /** * Activity recognition being accessed by an activity recognition source, which @@ -1819,6 +1824,7 @@ public class AppOpsManager { OP_BLUETOOTH_CONNECT, OP_BLUETOOTH_ADVERTISE, OP_UWB_RANGING, + OP_NEARBY_WIFI_DEVICES, // APPOP PERMISSIONS OP_ACCESS_NOTIFICATIONS, @@ -1963,6 +1969,7 @@ public class AppOpsManager { OP_ACTIVITY_RECOGNITION, // OP_ACTIVITY_RECOGNITION_SOURCE OP_BLUETOOTH_ADVERTISE, // OP_BLUETOOTH_ADVERTISE OP_RECORD_INCOMING_PHONE_AUDIO, // OP_RECORD_INCOMING_PHONE_AUDIO + OP_NEARBY_WIFI_DEVICES, // OP_NEARBY_WIFI_DEVICES }; /** @@ -2085,6 +2092,7 @@ public class AppOpsManager { OPSTR_ACTIVITY_RECOGNITION_SOURCE, OPSTR_BLUETOOTH_ADVERTISE, OPSTR_RECORD_INCOMING_PHONE_AUDIO, + OPSTR_NEARBY_WIFI_DEVICES, }; /** @@ -2208,6 +2216,7 @@ public class AppOpsManager { "ACTIVITY_RECOGNITION_SOURCE", "BLUETOOTH_ADVERTISE", "RECORD_INCOMING_PHONE_AUDIO", + "NEARBY_WIFI_DEVICES" }; /** @@ -2332,6 +2341,7 @@ public class AppOpsManager { null, // no permission for OP_ACTIVITY_RECOGNITION_SOURCE, Manifest.permission.BLUETOOTH_ADVERTISE, null, // no permission for OP_RECORD_INCOMING_PHONE_AUDIO, + Manifest.permission.NEARBY_WIFI_DEVICES, }; /** @@ -2456,6 +2466,7 @@ public class AppOpsManager { null, // ACTIVITY_RECOGNITION_SOURCE null, // BLUETOOTH_ADVERTISE null, // RECORD_INCOMING_PHONE_AUDIO + null, // NEARBY_WIFI_DEVICES }; /** @@ -2579,6 +2590,7 @@ public class AppOpsManager { null, // ACTIVITY_RECOGNITION_SOURCE null, // BLUETOOTH_ADVERTISE null, // RECORD_INCOMING_PHONE_AUDIO + null, // NEARBY_WIFI_DEVICES }; /** @@ -2701,6 +2713,7 @@ public class AppOpsManager { AppOpsManager.MODE_ALLOWED, // ACTIVITY_RECOGNITION_SOURCE AppOpsManager.MODE_ALLOWED, // BLUETOOTH_ADVERTISE AppOpsManager.MODE_ALLOWED, // RECORD_INCOMING_PHONE_AUDIO + AppOpsManager.MODE_ALLOWED, // NEARBY_WIFI_DEVICES }; /** @@ -2827,6 +2840,7 @@ public class AppOpsManager { false, // ACTIVITY_RECOGNITION_SOURCE false, // BLUETOOTH_ADVERTISE false, // RECORD_INCOMING_PHONE_AUDIO + false, // NEARBY_WIFI_DEVICES }; /** From 0d889ae932472dc7bc5518143e601f035b657cda Mon Sep 17 00:00:00 2001 From: xshu Date: Tue, 5 Oct 2021 01:39:19 -0700 Subject: [PATCH 3/3] Adding wifi nearby permission to DefaultPermissionGrantPolicy Grant this by default with the other nearby permission. Bug: 197776854 Test: compiles Change-Id: Iff1894a545889230c08578d8ae163116152ab28a Merged-In: Iff1894a545889230c08578d8ae163116152ab28a --- .../server/pm/permission/DefaultPermissionGrantPolicy.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java index dab980a9e4b28..7bea01820a036 100644 --- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java @@ -213,6 +213,7 @@ final class DefaultPermissionGrantPolicy { NEARBY_DEVICES_PERMISSIONS.add(Manifest.permission.BLUETOOTH_CONNECT); NEARBY_DEVICES_PERMISSIONS.add(Manifest.permission.BLUETOOTH_SCAN); NEARBY_DEVICES_PERMISSIONS.add(Manifest.permission.UWB_RANGING); + NEARBY_DEVICES_PERMISSIONS.add(Manifest.permission.NEARBY_WIFI_DEVICES); } private static final int MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS = 1;