Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4af2e065 authored by Shreshta Manu's avatar Shreshta Manu Committed by Android (Google) Code Review
Browse files

Merge "[Ranging] Add new permission for Android generic ranging feature" into main

parents 08d21f27 4f6cb65d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -241,6 +241,7 @@ package android {
    field public static final String PROVIDE_REMOTE_CREDENTIALS = "android.permission.PROVIDE_REMOTE_CREDENTIALS";
    field @FlaggedApi("android.security.aapm_api") public static final String QUERY_ADVANCED_PROTECTION_MODE = "android.permission.QUERY_ADVANCED_PROTECTION_MODE";
    field public static final String QUERY_ALL_PACKAGES = "android.permission.QUERY_ALL_PACKAGES";
    field @FlaggedApi("android.permission.flags.ranging_permission_enabled") public static final String RANGING = "android.permission.RANGING";
    field public static final String READ_ASSISTANT_APP_SEARCH_DATA = "android.permission.READ_ASSISTANT_APP_SEARCH_DATA";
    field public static final String READ_BASIC_PHONE_STATE = "android.permission.READ_BASIC_PHONE_STATE";
    field public static final String READ_CALENDAR = "android.permission.READ_CALENDAR";
@@ -13703,7 +13704,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_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(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, android.Manifest.permission.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(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
    field @RequiresPermission(allOf={android.Manifest.permission.FOREGROUND_SERVICE_LOCATION}, anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}, conditional=true) public static final int FOREGROUND_SERVICE_TYPE_LOCATION = 8; // 0x8
+1 −0
Original line number Diff line number Diff line
@@ -696,6 +696,7 @@ package android.app {
    field public static final String OPSTR_PLAY_AUDIO = "android:play_audio";
    field public static final String OPSTR_POST_NOTIFICATION = "android:post_notification";
    field public static final String OPSTR_PROJECT_MEDIA = "android:project_media";
    field @FlaggedApi("android.permission.flags.ranging_permission_enabled") public static final String OPSTR_RANGING = "android:ranging";
    field @FlaggedApi("android.view.contentprotection.flags.rapid_clear_notifications_by_listener_app_op_enabled") public static final String OPSTR_RAPID_CLEAR_NOTIFICATIONS_BY_LISTENER = "android:rapid_clear_notifications_by_listener";
    field public static final String OPSTR_READ_CLIPBOARD = "android:read_clipboard";
    field @FlaggedApi("android.permission.flags.replace_body_sensor_permission_enabled") public static final String OPSTR_READ_HEART_RATE = "android:read_heart_rate";
+19 −1
Original line number Diff line number Diff line
@@ -1614,9 +1614,16 @@ public class AppOpsManager {
    /** @hide Access to read skin temperature. */
    public static final int OP_READ_SKIN_TEMPERATURE = AppOpEnums.APP_OP_READ_SKIN_TEMPERATURE;

    /**
     * Allows an app to range with nearby devices using any ranging technology available.
     *
     * @hide
     */
    public static final int OP_RANGING = AppOpEnums.APP_OP_RANGING;

    /** @hide */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    public static final int _NUM_OP = 151;
    public static final int _NUM_OP = 152;

    /**
     * All app ops represented as strings.
@@ -1771,6 +1778,7 @@ public class AppOpsManager {
            OPSTR_RECEIVE_SENSITIVE_NOTIFICATIONS,
            OPSTR_READ_HEART_RATE,
            OPSTR_READ_SKIN_TEMPERATURE,
            OPSTR_RANGING,
    })
    public @interface AppOpString {}

@@ -2518,6 +2526,11 @@ public class AppOpsManager {
    @FlaggedApi(Flags.FLAG_PLATFORM_SKIN_TEMPERATURE_ENABLED)
    public static final String OPSTR_READ_SKIN_TEMPERATURE = "android:read_skin_temperature";

    /** @hide Access to ranging */
    @SystemApi
    @FlaggedApi(Flags.FLAG_RANGING_PERMISSION_ENABLED)
    public static final String OPSTR_RANGING = "android:ranging";

    /** {@link #sAppOpsToNote} not initialized yet for this op */
    private static final byte SHOULD_COLLECT_NOTE_OP_NOT_INITIALIZED = 0;
    /** Should not collect noting of this app-op in {@link #sAppOpsToNote} */
@@ -2589,6 +2602,7 @@ public class AppOpsManager {
            OP_BLUETOOTH_ADVERTISE,
            OP_UWB_RANGING,
            OP_NEARBY_WIFI_DEVICES,
            Flags.rangingPermissionEnabled() ? OP_RANGING : OP_NONE,
            // Notifications
            OP_POST_NOTIFICATION,
            // Health
@@ -3111,6 +3125,10 @@ public class AppOpsManager {
                Flags.platformSkinTemperatureEnabled()
                    ? HealthPermissions.READ_SKIN_TEMPERATURE : null)
            .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
        new AppOpInfo.Builder(OP_RANGING, OPSTR_RANGING, "RANGING")
            .setPermission(Flags.rangingPermissionEnabled()?
                Manifest.permission.RANGING : null)
            .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
    };

    // The number of longs needed to form a full bitmask of app ops
+1 −0
Original line number Diff line number Diff line
@@ -398,6 +398,7 @@ public abstract class ForegroundServiceTypePolicy {
                new RegularPermission(Manifest.permission.NFC),
                new RegularPermission(Manifest.permission.TRANSMIT_IR),
                new RegularPermission(Manifest.permission.UWB_RANGING),
                new RegularPermission(Manifest.permission.RANGING),
                new UsbDevicePermission(),
                new UsbAccessoryPermission(),
            }, false),
+2 −0
Original line number Diff line number Diff line
@@ -251,6 +251,7 @@ public class ServiceInfo extends ComponentInfo
     * {@link android.Manifest.permission#NFC},
     * {@link android.Manifest.permission#TRANSMIT_IR},
     * {@link android.Manifest.permission#UWB_RANGING},
     * {@link android.Manifest.permission#RANGING},
     * or has been granted the access to one of the attached USB devices/accessories.
     */
    @RequiresPermission(
@@ -267,6 +268,7 @@ public class ServiceInfo extends ComponentInfo
                Manifest.permission.NFC,
                Manifest.permission.TRANSMIT_IR,
                Manifest.permission.UWB_RANGING,
                Manifest.permission.RANGING,
            },
            conditional = true
    )
Loading