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

Commit e88fc394 authored by Jared Finder's avatar Jared Finder Committed by Android (Google) Code Review
Browse files

Merge "Adding XR permissions" into main

parents 44b635c9 17f81126
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -100,6 +100,9 @@ package android {
    field public static final String EXECUTE_APP_ACTION = "android.permission.EXECUTE_APP_ACTION";
    field @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final String EXECUTE_APP_FUNCTIONS = "android.permission.EXECUTE_APP_FUNCTIONS";
    field public static final String EXPAND_STATUS_BAR = "android.permission.EXPAND_STATUS_BAR";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String EYE_TRACKING_COARSE = "android.permission.EYE_TRACKING_COARSE";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String EYE_TRACKING_FINE = "android.permission.EYE_TRACKING_FINE";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String FACE_TRACKING = "android.permission.FACE_TRACKING";
    field public static final String FACTORY_TEST = "android.permission.FACTORY_TEST";
    field public static final String FOREGROUND_SERVICE = "android.permission.FOREGROUND_SERVICE";
    field public static final String FOREGROUND_SERVICE_CAMERA = "android.permission.FOREGROUND_SERVICE_CAMERA";
@@ -120,6 +123,8 @@ package android {
    field public static final String GET_PACKAGE_SIZE = "android.permission.GET_PACKAGE_SIZE";
    field @Deprecated public static final String GET_TASKS = "android.permission.GET_TASKS";
    field public static final String GLOBAL_SEARCH = "android.permission.GLOBAL_SEARCH";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String HAND_TRACKING = "android.permission.HAND_TRACKING";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String HEAD_TRACKING = "android.permission.HEAD_TRACKING";
    field public static final String HIDE_OVERLAY_WINDOWS = "android.permission.HIDE_OVERLAY_WINDOWS";
    field public static final String HIGH_SAMPLING_RATE_SENSORS = "android.permission.HIGH_SAMPLING_RATE_SENSORS";
    field public static final String INSTALL_LOCATION_PROVIDER = "android.permission.INSTALL_LOCATION_PROVIDER";
@@ -295,6 +300,8 @@ package android {
    field public static final String REQUEST_PASSWORD_COMPLEXITY = "android.permission.REQUEST_PASSWORD_COMPLEXITY";
    field @Deprecated public static final String RESTART_PACKAGES = "android.permission.RESTART_PACKAGES";
    field public static final String RUN_USER_INITIATED_JOBS = "android.permission.RUN_USER_INITIATED_JOBS";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String SCENE_UNDERSTANDING_COARSE = "android.permission.SCENE_UNDERSTANDING_COARSE";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String SCENE_UNDERSTANDING_FINE = "android.permission.SCENE_UNDERSTANDING_FINE";
    field public static final String SCHEDULE_EXACT_ALARM = "android.permission.SCHEDULE_EXACT_ALARM";
    field public static final String SEND_RESPOND_VIA_MESSAGE = "android.permission.SEND_RESPOND_VIA_MESSAGE";
    field public static final String SEND_SMS = "android.permission.SEND_SMS";
@@ -362,6 +369,8 @@ package android {
    field public static final String SENSORS = "android.permission-group.SENSORS";
    field public static final String SMS = "android.permission-group.SMS";
    field public static final String STORAGE = "android.permission-group.STORAGE";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String XR_TRACKING = "android.permission-group.XR_TRACKING";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String XR_TRACKING_SENSITIVE = "android.permission-group.XR_TRACKING_SENSITIVE";
  }
  public final class R {
+4 −0
Original line number Diff line number Diff line
@@ -151,6 +151,8 @@ package android {
    field @FlaggedApi("android.content.pm.emergency_install_permission") public static final String EMERGENCY_INSTALL_PACKAGES = "android.permission.EMERGENCY_INSTALL_PACKAGES";
    field public static final String ENTER_CAR_MODE_PRIORITIZED = "android.permission.ENTER_CAR_MODE_PRIORITIZED";
    field public static final String EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS = "android.permission.EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String EYE_CALIBRATION = "android.permission.EYE_CALIBRATION";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String FACE_TRACKING_CALIBRATION = "android.permission.FACE_TRACKING_CALIBRATION";
    field public static final String FORCE_BACK = "android.permission.FORCE_BACK";
    field public static final String FORCE_STOP_PACKAGES = "android.permission.FORCE_STOP_PACKAGES";
    field public static final String GET_APP_METADATA = "android.permission.GET_APP_METADATA";
@@ -168,6 +170,7 @@ package android {
    field public static final String HARDWARE_TEST = "android.permission.HARDWARE_TEST";
    field public static final String HDMI_CEC = "android.permission.HDMI_CEC";
    field @Deprecated public static final String HIDE_NON_SYSTEM_OVERLAY_WINDOWS = "android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String IMPORT_XR_ANCHOR = "android.permission.IMPORT_XR_ANCHOR";
    field public static final String INJECT_EVENTS = "android.permission.INJECT_EVENTS";
    field @FlaggedApi("android.content.pm.sdk_dependency_installer") public static final String INSTALL_DEPENDENCY_SHARED_LIBRARIES = "android.permission.INSTALL_DEPENDENCY_SHARED_LIBRARIES";
    field public static final String INSTALL_DPC_PACKAGES = "android.permission.INSTALL_DPC_PACKAGES";
@@ -450,6 +453,7 @@ package android {
    field public static final String WRITE_SECURITY_LOG = "android.permission.WRITE_SECURITY_LOG";
    field public static final String WRITE_SMS = "android.permission.WRITE_SMS";
    field @FlaggedApi("android.provider.user_keys") public static final String WRITE_VERIFICATION_STATE_E2EE_CONTACT_KEYS = "android.permission.WRITE_VERIFICATION_STATE_E2EE_CONTACT_KEYS";
    field @FlaggedApi("android.xr.xr_manifest_entries") public static final String XR_TRACKING_IN_BACKGROUND = "android.permission.XR_TRACKING_IN_BACKGROUND";
  }
  public static final class Manifest.permission_group {
+1 −0
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@ android_app {
        "android.media.tv.flags-aconfig",
        "android.security.flags-aconfig",
        "device_policy_aconfig_flags",
        "android.xr.flags-aconfig",
        "com.android.hardware.input.input-aconfig",
        "aconfig_trade_in_mode_flags",
        "art-aconfig-flags",
+176 −0
Original line number Diff line number Diff line
@@ -5229,6 +5229,182 @@
    <permission android:name="android.permission.REQUEST_INCIDENT_REPORT_APPROVAL"
        android:protectionLevel="signature|privileged" />

    <!-- ==================================== -->
    <!-- Permissions for XR perception data   -->
    <!-- ==================================== -->
    <eat-comment />

    <!-- Used for permissions that are associated with accessing XR
         tracked information about the person using the device and the
         environment around them.

         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) -->
    <permission-group android:name="android.permission-group.XR_TRACKING"
                      android:label="@string/permgrouplab_xr_tracking"
                      android:description="@string/permgroupdesc_xr_tracking"
                      android:priority="100"
                      android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to get approximate eye gaze.

         <p>Protection level: dangerous

         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) -->
    <permission android:name="android.permission.EYE_TRACKING_COARSE"
                android:protectionLevel="dangerous"
                android:permissionGroup="android.permission-group.UNDEFINED"
                android:label="@string/permlab_eye_tracking_coarse"
                android:description="@string/permdesc_eye_tracking_coarse"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to get face tracking data.

         <p>Protection level: dangerous

         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) -->
    <permission android:name="android.permission.FACE_TRACKING"
                android:protectionLevel="dangerous"
                android:permissionGroup="android.permission-group.UNDEFINED"
                android:label="@string/permlab_face_tracking"
                android:description="@string/permdesc_face_tracking"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to get hand tracking data.

         <p>Protection level: dangerous

         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) -->
    <permission android:name="android.permission.HAND_TRACKING"
                android:protectionLevel="dangerous"
                android:permissionGroup="android.permission-group.UNDEFINED"
                android:label="@string/permlab_hand_tracking"
                android:description="@string/permdesc_hand_tracking"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to get data derived by sensing the
         user's environment.

         <p>Protection level: dangerous

         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) -->
    <permission android:name="android.permission.SCENE_UNDERSTANDING_COARSE"
                android:protectionLevel="dangerous"
                android:permissionGroup="android.permission-group.UNDEFINED"
                android:description="@string/permdesc_scene_understanding_coarse"
                android:label="@string/permlab_scene_understanding_coarse"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Used for permissions that are associated with accessing
         particularly sensitive XR tracking data.

         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) -->
    <permission-group android:name="android.permission-group.XR_TRACKING_SENSITIVE"
                      android:label="@string/permgrouplab_xr_tracking_sensitive"
                      android:description="@string/permgroupdesc_xr_tracking_sensitive"
                      android:priority="100"
                      android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to get precise eye gaze data.

         <p>Protection level: dangerous

         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) -->
    <permission android:name="android.permission.EYE_TRACKING_FINE"
                android:protectionLevel="dangerous"
                android:permissionGroup="android.permission-group.UNDEFINED"
                android:label="@string/permlab_eye_tracking_fine"
                android:description="@string/permdesc_eye_tracking_fine"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to get head tracking data.  Unmanaged
         activities (OpenXR activities with the manifest property
         "android.window.PROPERTY_XR_ACTIVITY_START_MODE" set to
         "XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED") do not require
         this permission to get head tracking data.

         {@see https://developer.android.com/develop/xr/get-started#property_activity_xr_start_mode_property}

         <p>Protection level: dangerous

         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) -->
    <permission android:name="android.permission.HEAD_TRACKING"
                android:protectionLevel="dangerous"
                android:permissionGroup="android.permission-group.UNDEFINED"
                android:label="@string/permlab_head_tracking"
                android:description="@string/permdesc_head_tracking"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to get highly precise data derived by sensing the
         user's environment, such as a depth map.

         <p>Protection level: dangerous

         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) -->
    <permission android:name="android.permission.SCENE_UNDERSTANDING_FINE"
                android:protectionLevel="dangerous"
                android:permissionGroup="android.permission-group.UNDEFINED"
                android:description="@string/permdesc_scene_understanding_fine"
                android:label="@string/permlab_scene_understanding_fine"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to trigger Eye Calibration, which
         calibrates for IPD (inter-pupillary distance) adjustment and
         eye tracking.

         <p>Protection level: signature|privileged

         @SystemApi
         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
         @hide -->
    <permission android:name="android.permission.EYE_CALIBRATION"
                android:protectionLevel="signature|privileged"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to trigger Face Tracking Calibration.

         <p>Protection level: signature|privileged

         @SystemApi
         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
         @hide -->
    <permission android:name="android.permission.FACE_TRACKING_CALIBRATION"
                android:protectionLevel="signature|privileged"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to import an anchor created and
         exported by another application.

         <p>Protection level: signature|privileged

         @SystemApi
         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
         @hide -->
    <permission android:name="android.permission.IMPORT_XR_ANCHOR"
                android:protectionLevel="signature|privileged"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- Allows an application to access XR tracking data while in the
         background. Without this permission, XR tracking data such as
         head tracking, hand tracking, eye tracking, or face tracking
         is only available to an activity it is in the
         foreground. With this permission, such data is also available
         to services and to activities that are in the background.

         <p>This permission must be granted in addition to the
         corresponding permission such as {@link #HEAD_TRACKING} or
         {@link #FACE_TRACKING} for the data being accessed.

         <p>Protection level: normal|appop

         @SystemApi
         @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
         @hide -->
    <permission android:name="android.permission.XR_TRACKING_IN_BACKGROUND"
                android:protectionLevel="normal|appop"
                android:description="@string/permdesc_xr_tracking_in_background"
                android:label="@string/permlab_xr_tracking_in_background"
                android:featureFlag="android.xr.xr_manifest_entries" />

    <!-- ==================================== -->
    <!-- Private permissions                  -->
    <!-- ==================================== -->
+49 −0
Original line number Diff line number Diff line
@@ -1011,6 +1011,16 @@
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE]-->
    <string name="permgroupdesc_notifications">show notifications</string>
    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=40]-->
    <string name="permgrouplab_xr_tracking">XR tracking data</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE]-->
    <string name="permgroupdesc_xr_tracking">access XR data about you and the environment around you</string>
    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=40]-->
    <string name="permgrouplab_xr_tracking_sensitive">sensitive XR tracking data</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE]-->
    <string name="permgroupdesc_xr_tracking_sensitive">access sensitive tracking data, such as eye gaze</string>
    <!-- Title for the capability of an accessibility service to retrieve window content. -->
    <string name="capability_title_canRetrieveWindowContent">Retrieve window content</string>
    <!-- Description for the capability of an accessibility service to retrieve window content. -->
@@ -1875,6 +1885,45 @@
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_mediaLocation">Allows the app to read locations from your media collection.</string>
    <string name="permlab_eye_tracking_coarse">track your approximate eye gaze</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_eye_tracking_coarse">Allows the app to track your approximate eye gaze.</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_eye_tracking_fine">track where you are looking</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_eye_tracking_fine">Allows the app to access precise eye gaze data.</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_face_tracking">track your face</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_face_tracking">Allows the app to access face tracking data.</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_hand_tracking">track your hands</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_hand_tracking">Allows the app to access hand tracking data.</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_head_tracking">track your head</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_head_tracking">Allows the app to access head tracking data.</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_scene_understanding_coarse">understand your immediate environment</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_scene_understanding_coarse">Allows the app to access tracking data about the environment directly around you.</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_scene_understanding_fine">understand your immediate environment at high detail</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_scene_understanding_fine">Allows the app to access tracking data about the environment directly around you with very high detail.</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_xr_tracking_in_background">access XR data while not in the foreground</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_xr_tracking_in_background">Allows the app to access XR data while not in the foreground.</string>
    <!-- Name for an app setting that lets the user authenticate for that app using biometrics (e.g. fingerprint or face). [CHAR LIMIT=30] -->
    <string name="biometric_app_setting_name">Use biometrics</string>
    <!-- Name for an app setting that lets the user authenticate for that app using biometrics (e.g. fingerprint or face) or their screen lock credential (i.e. PIN, pattern, or password). [CHAR LIMIT=70] -->