From c43a6984202d19cb43c2c31b5975f2e1e54791be Mon Sep 17 00:00:00 2001 From: Jing Ji Date: Tue, 3 Jan 2023 11:28:02 -0800 Subject: [PATCH] Add BT scan/advertise and uwb ranging permission to connectedDevice FGS Bug: 254662338 Bug: 246792057 Test: atest CtsAppFgsTestCases Change-Id: I1013237f304a933296585ec302fded8e366abe6e --- core/api/current.txt | 2 +- core/java/android/app/ForegroundServiceTypePolicy.java | 3 +++ core/java/android/content/pm/ServiceInfo.java | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/api/current.txt b/core/api/current.txt index 19123bba2b5d8..9a834504a220c 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -12692,7 +12692,7 @@ package android.content.pm { field public static final int FLAG_STOP_WITH_TASK = 1; // 0x1 field public static final int FLAG_USE_APP_ZYGOTE = 8; // 0x8 field @RequiresPermission(allOf={android.Manifest.permission.FOREGROUND_SERVICE_CAMERA}, anyOf={android.Manifest.permission.CAMERA}, conditional=true) public static final int FOREGROUND_SERVICE_TYPE_CAMERA = 64; // 0x40 - field @RequiresPermission(allOf={android.Manifest.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE}, anyOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.CHANGE_NETWORK_STATE, android.Manifest.permission.CHANGE_WIFI_STATE, android.Manifest.permission.CHANGE_WIFI_MULTICAST_STATE, android.Manifest.permission.NFC, android.Manifest.permission.TRANSMIT_IR}, conditional=true) public static final int FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE = 16; // 0x10 + field @RequiresPermission(allOf={android.Manifest.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE}, anyOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.CHANGE_NETWORK_STATE, android.Manifest.permission.CHANGE_WIFI_STATE, android.Manifest.permission.CHANGE_WIFI_MULTICAST_STATE, android.Manifest.permission.NFC, android.Manifest.permission.TRANSMIT_IR, android.Manifest.permission.UWB_RANGING}, conditional=true) public static final int FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE = 16; // 0x10 field @RequiresPermission(value=android.Manifest.permission.FOREGROUND_SERVICE_DATA_SYNC, conditional=true) public static final int FOREGROUND_SERVICE_TYPE_DATA_SYNC = 1; // 0x1 field @RequiresPermission(android.Manifest.permission.FOREGROUND_SERVICE_FILE_MANAGEMENT) public static final int FOREGROUND_SERVICE_TYPE_FILE_MANAGEMENT = 4096; // 0x1000 field @RequiresPermission(allOf={android.Manifest.permission.FOREGROUND_SERVICE_HEALTH}, anyOf={android.Manifest.permission.ACTIVITY_RECOGNITION, android.Manifest.permission.BODY_SENSORS, android.Manifest.permission.HIGH_SAMPLING_RATE_SENSORS}) public static final int FOREGROUND_SERVICE_TYPE_HEALTH = 256; // 0x100 diff --git a/core/java/android/app/ForegroundServiceTypePolicy.java b/core/java/android/app/ForegroundServiceTypePolicy.java index f0c39ab0dc26a..c19a8652c98d5 100644 --- a/core/java/android/app/ForegroundServiceTypePolicy.java +++ b/core/java/android/app/ForegroundServiceTypePolicy.java @@ -259,12 +259,15 @@ public abstract class ForegroundServiceTypePolicy { new RegularPermission(Manifest.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE) }, true), new ForegroundServiceTypePermissions(new ForegroundServiceTypePermission[] { + new RegularPermission(Manifest.permission.BLUETOOTH_ADVERTISE), new RegularPermission(Manifest.permission.BLUETOOTH_CONNECT), + new RegularPermission(Manifest.permission.BLUETOOTH_SCAN), new RegularPermission(Manifest.permission.CHANGE_NETWORK_STATE), new RegularPermission(Manifest.permission.CHANGE_WIFI_STATE), new RegularPermission(Manifest.permission.CHANGE_WIFI_MULTICAST_STATE), new RegularPermission(Manifest.permission.NFC), new RegularPermission(Manifest.permission.TRANSMIT_IR), + new RegularPermission(Manifest.permission.UWB_RANGING), new UsbDevicePermission(), new UsbAccessoryPermission(), }, false) diff --git a/core/java/android/content/pm/ServiceInfo.java b/core/java/android/content/pm/ServiceInfo.java index 4e2acc0363868..0b503eb06c3cb 100644 --- a/core/java/android/content/pm/ServiceInfo.java +++ b/core/java/android/content/pm/ServiceInfo.java @@ -214,12 +214,15 @@ public class ServiceInfo extends ComponentInfo * {@link android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE} and later, will require permission * {@link android.Manifest.permission#FOREGROUND_SERVICE_CONNECTED_DEVICE} and one of the * following permissions: + * {@link android.Manifest.permission#BLUETOOTH_ADVERTISE}, * {@link android.Manifest.permission#BLUETOOTH_CONNECT}, + * {@link android.Manifest.permission#BLUETOOTH_SCAN}, * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}, * {@link android.Manifest.permission#CHANGE_WIFI_STATE}, * {@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE}, * {@link android.Manifest.permission#NFC}, * {@link android.Manifest.permission#TRANSMIT_IR}, + * {@link android.Manifest.permission#UWB_RANGING}, * or has been granted the access to one of the attached USB devices/accessories. */ @RequiresPermission( @@ -227,12 +230,15 @@ public class ServiceInfo extends ComponentInfo Manifest.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE, }, anyOf = { + Manifest.permission.BLUETOOTH_ADVERTISE, Manifest.permission.BLUETOOTH_CONNECT, + Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.CHANGE_NETWORK_STATE, Manifest.permission.CHANGE_WIFI_STATE, Manifest.permission.CHANGE_WIFI_MULTICAST_STATE, Manifest.permission.NFC, Manifest.permission.TRANSMIT_IR, + Manifest.permission.UWB_RANGING, }, conditional = true )