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

Commit 1c7f2811 authored by Aldi Fahrezi's avatar Aldi Fahrezi
Browse files

Add AppFunctions related permissions.

- `android.permission.EXECUTE_APP_FUNCTIONS_TRUSTED` for System UI Intelligence apps (non opt-out able).
- `android.permission.EXECUTE_APP_FUNCTIONS` for system / preloaded apps in the Assistant role.

Bug: 359911502
Flag: android.app.appfunctions.flags.enable_app_function_manager
Test: manual by incremental sync
Change-Id: If994109dfd06c295c41afb5fb3f59ee5548ee253
parent 70282a7d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ package android {
    field public static final String BATTERY_STATS = "android.permission.BATTERY_STATS";
    field public static final String BIND_ACCESSIBILITY_SERVICE = "android.permission.BIND_ACCESSIBILITY_SERVICE";
    field public static final String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET";
    field @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final String BIND_APP_FUNCTION_SERVICE = "android.permission.BIND_APP_FUNCTION_SERVICE";
    field public static final String BIND_AUTOFILL_SERVICE = "android.permission.BIND_AUTOFILL_SERVICE";
    field public static final String BIND_CALL_REDIRECTION_SERVICE = "android.permission.BIND_CALL_REDIRECTION_SERVICE";
    field public static final String BIND_CARRIER_MESSAGING_CLIENT_SERVICE = "android.permission.BIND_CARRIER_MESSAGING_CLIENT_SERVICE";
+2 −0
Original line number Diff line number Diff line
@@ -139,6 +139,8 @@ package android {
    field @FlaggedApi("com.android.window.flags.untrusted_embedding_any_app_permission") public static final String EMBED_ANY_APP_IN_UNTRUSTED_MODE = "android.permission.EMBED_ANY_APP_IN_UNTRUSTED_MODE";
    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 @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final String EXECUTE_APP_FUNCTIONS = "android.permission.EXECUTE_APP_FUNCTIONS";
    field @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final String EXECUTE_APP_FUNCTIONS_TRUSTED = "android.permission.EXECUTE_APP_FUNCTIONS_TRUSTED";
    field public static final String EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS = "android.permission.EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS";
    field public static final String FORCE_BACK = "android.permission.FORCE_BACK";
    field public static final String FORCE_STOP_PACKAGES = "android.permission.FORCE_STOP_PACKAGES";
+1 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@ android_app {
    generate_product_characteristics_rro: true,

    flags_packages: [
        "android.app.appfunctions.flags-aconfig",
        "android.app.contextualsearch.flags-aconfig",
        "android.content.pm.flags-aconfig",
        "android.provider.flags-aconfig",
+35 −0
Original line number Diff line number Diff line
@@ -8010,6 +8010,41 @@
    <permission android:name="android.permission.EXECUTE_APP_ACTION"
                android:protectionLevel="internal|role" />

    <!-- Must be required by an {@link android.app.appfunctions.AppFunctionService},
         to ensure that only the system can bind to it.
         <p>Protection level: signature
         @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager")  -->
    <permission android:name="android.permission.BIND_APP_FUNCTION_SERVICE"
        android:featureFlag="android.app.appfunctions.flags.enable_app_function_manager"
        android:protectionLevel="signature" />

    <!-- @SystemApi Allows a trusted application to perform actions on behalf of users inside of
         applications with privacy guarantees from the system.
         <p>This permission is currently only granted to system packages in the
         {@link android.app.role.SYSTEM_UI_INTELLIGENCE} role which complies with privacy
         requirements outlined in the Android CDD section "9.8.6 Content Capture".
         <p>Apps are not able to opt-out from caller having this permission.
         <p>Protection level: internal|role
         @hide
         @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager")  -->
    <permission android:name="android.permission.EXECUTE_APP_FUNCTIONS_TRUSTED"
        android:featureFlag="android.app.appfunctions.flags.enable_app_function_manager"
        android:protectionLevel="internal|role" />

    <!-- @SystemApi Allows an application to perform actions on behalf of users inside of
         applications.
         <p>This permission is currently only granted to preinstalled / system apps having the
         {@link android.app.role.ASSISTANT} role.
         <p>Apps contributing app functions can opt to disallow callers with this permission,
         limiting to only callers with {@link android.permission.EXECUTE_APP_FUNCTIONS_TRUSTED}
         instead.
         <p>Protection level: internal|role
         @hide
         @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager")  -->
    <permission android:name="android.permission.EXECUTE_APP_FUNCTIONS"
        android:featureFlag="android.app.appfunctions.flags.enable_app_function_manager"
        android:protectionLevel="internal|role" />

    <!-- Allows an application to display its suggestions using the autofill framework.
         <p>For now, this permission is only granted to the Browser application.
         <p>Protection level: internal|role