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

Commit bd516947 authored by Ameer Armaly's avatar Ameer Armaly
Browse files

Permission-annotate all AIDL methods for IAccessibilityManager

Fix: 316615220
Test: Local linter command: m out/soong/.intermediates/frameworks/base/services/accessibility/services.accessibility/android_common/e81986d0fdbc7fd1cfb6129a176a7913/lint/lint-baseline.xml
Test: Lint + presubmit tests.
Change-Id: Ife069aace39001a73b4cfbcc120000f5ca7dd5f3
parent 24caa927
Loading
Loading
Loading
Loading
+53 −11
Original line number Original line Diff line number Diff line
@@ -42,112 +42,154 @@ import android.view.SurfaceControl;
 */
 */
interface IAccessibilityManager {
interface IAccessibilityManager {


    @RequiresNoPermission
    oneway void interrupt(int userId);
    oneway void interrupt(int userId);


    @RequiresNoPermission
    oneway void sendAccessibilityEvent(in AccessibilityEvent uiEvent, int userId);
    oneway void sendAccessibilityEvent(in AccessibilityEvent uiEvent, int userId);


    @RequiresNoPermission
    long addClient(IAccessibilityManagerClient client, int userId);
    long addClient(IAccessibilityManagerClient client, int userId);


    @RequiresNoPermission
    boolean removeClient(IAccessibilityManagerClient client, int userId);
    boolean removeClient(IAccessibilityManagerClient client, int userId);


    @RequiresNoPermission
    ParceledListSlice<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(int userId);
    ParceledListSlice<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(int userId);


    @RequiresNoPermission
    @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
    @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
    List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType, int userId);
    List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType, int userId);


    @RequiresNoPermission
    int addAccessibilityInteractionConnection(IWindow windowToken, IBinder leashToken,
    int addAccessibilityInteractionConnection(IWindow windowToken, IBinder leashToken,
            in IAccessibilityInteractionConnection connection,
            in IAccessibilityInteractionConnection connection,
            String packageName, int userId);
            String packageName, int userId);


    @RequiresNoPermission
    void removeAccessibilityInteractionConnection(IWindow windowToken);
    void removeAccessibilityInteractionConnection(IWindow windowToken);


    @EnforcePermission("MODIFY_ACCESSIBILITY_DATA")
    void setPictureInPictureActionReplacingConnection(
    void setPictureInPictureActionReplacingConnection(
            in IAccessibilityInteractionConnection connection);
            in IAccessibilityInteractionConnection connection);


    @EnforcePermission("RETRIEVE_WINDOW_CONTENT")
    void registerUiTestAutomationService(IBinder owner, IAccessibilityServiceClient client,
    void registerUiTestAutomationService(IBinder owner, IAccessibilityServiceClient client,
        in AccessibilityServiceInfo info, int userId, int flags);
        in AccessibilityServiceInfo info, int userId, int flags);


    @RequiresNoPermission
    void unregisterUiTestAutomationService(IAccessibilityServiceClient client);
    void unregisterUiTestAutomationService(IAccessibilityServiceClient client);


    // Used by UiAutomation
    // Used by UiAutomation
    @EnforcePermission("RETRIEVE_WINDOW_CONTENT")
    IBinder getWindowToken(int windowId, int userId);
    IBinder getWindowToken(int windowId, int userId);


    @EnforcePermission("STATUS_BAR_SERVICE")
    void notifyAccessibilityButtonClicked(int displayId, String targetName);
    void notifyAccessibilityButtonClicked(int displayId, String targetName);



    @EnforcePermission("STATUS_BAR_SERVICE")
    void notifyAccessibilityButtonVisibilityChanged(boolean available);
    void notifyAccessibilityButtonVisibilityChanged(boolean available);


    // Requires Manifest.permission.MANAGE_ACCESSIBILITY
    @EnforcePermission("MANAGE_ACCESSIBILITY")
    void performAccessibilityShortcut(String targetName);
    void performAccessibilityShortcut(String targetName);


    // Requires Manifest.permission.MANAGE_ACCESSIBILITY
    @EnforcePermission("MANAGE_ACCESSIBILITY")
    List<String> getAccessibilityShortcutTargets(int shortcutType);
    List<String> getAccessibilityShortcutTargets(int shortcutType);


    // System process only
    // System process only
    @RequiresNoPermission
    boolean sendFingerprintGesture(int gestureKeyCode);
    boolean sendFingerprintGesture(int gestureKeyCode);


    // System process only
    // System process only
    @RequiresNoPermission
    int getAccessibilityWindowId(IBinder windowToken);
    int getAccessibilityWindowId(IBinder windowToken);


    @RequiresNoPermission
    long getRecommendedTimeoutMillis();
    long getRecommendedTimeoutMillis();


    @EnforcePermission("MANAGE_ACCESSIBILITY")
    oneway void registerSystemAction(in RemoteAction action, int actionId);
    oneway void registerSystemAction(in RemoteAction action, int actionId);

    @EnforcePermission("MANAGE_ACCESSIBILITY")
    oneway void unregisterSystemAction(int actionId);
    oneway void unregisterSystemAction(int actionId);

    @EnforcePermission("STATUS_BAR_SERVICE")
    oneway void setMagnificationConnection(in IMagnificationConnection connection);
    oneway void setMagnificationConnection(in IMagnificationConnection connection);


    @RequiresNoPermission
    void associateEmbeddedHierarchy(IBinder host, IBinder embedded);
    void associateEmbeddedHierarchy(IBinder host, IBinder embedded);


    @RequiresNoPermission
    void disassociateEmbeddedHierarchy(IBinder token);
    void disassociateEmbeddedHierarchy(IBinder token);


    @RequiresNoPermission
    int getFocusStrokeWidth();
    int getFocusStrokeWidth();


    @RequiresNoPermission
    int getFocusColor();
    int getFocusColor();


    @RequiresNoPermission
    boolean isAudioDescriptionByDefaultEnabled();
    boolean isAudioDescriptionByDefaultEnabled();


    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.SET_SYSTEM_AUDIO_CAPTION)")
    @EnforcePermission("SET_SYSTEM_AUDIO_CAPTION")
    void setSystemAudioCaptioningEnabled(boolean isEnabled, int userId);
    void setSystemAudioCaptioningEnabled(boolean isEnabled, int userId);


    @RequiresNoPermission
    boolean isSystemAudioCaptioningUiEnabled(int userId);
    boolean isSystemAudioCaptioningUiEnabled(int userId);


    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.SET_SYSTEM_AUDIO_CAPTION)")
    @EnforcePermission("SET_SYSTEM_AUDIO_CAPTION")
    void setSystemAudioCaptioningUiEnabled(boolean isEnabled, int userId);
    void setSystemAudioCaptioningUiEnabled(boolean isEnabled, int userId);


    @RequiresNoPermission
    oneway void setAccessibilityWindowAttributes(int displayId, int windowId, int userId, in AccessibilityWindowAttributes attributes);
    oneway void setAccessibilityWindowAttributes(int displayId, int windowId, int userId, in AccessibilityWindowAttributes attributes);


    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_ACCESSIBILITY)")
    // Requires CREATE_VIRTUAL_DEVICE permission. Also requires either a11y permission or role.
    @EnforcePermission("CREATE_VIRTUAL_DEVICE")
    boolean registerProxyForDisplay(IAccessibilityServiceClient proxy, int displayId);
    boolean registerProxyForDisplay(IAccessibilityServiceClient proxy, int displayId);


    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_ACCESSIBILITY)")
    // Requires CREATE_VIRTUAL_DEVICE permission. Also requires either a11y permission or role.
    @EnforcePermission("CREATE_VIRTUAL_DEVICE")
    boolean unregisterProxyForDisplay(int displayId);
    boolean unregisterProxyForDisplay(int displayId);


    // Used by UiAutomation for tests on the InputFilter
    // Used by UiAutomation for tests on the InputFilter
    @EnforcePermission("INJECT_EVENTS")
    void injectInputEventToInputFilter(in InputEvent event);
    void injectInputEventToInputFilter(in InputEvent event);


    @RequiresNoPermission
    boolean startFlashNotificationSequence(String opPkg, int reason, IBinder token);
    boolean startFlashNotificationSequence(String opPkg, int reason, IBinder token);

    @RequiresNoPermission
    boolean stopFlashNotificationSequence(String opPkg);
    boolean stopFlashNotificationSequence(String opPkg);

    @RequiresNoPermission
    boolean startFlashNotificationEvent(String opPkg, int reason, String reasonPkg);
    boolean startFlashNotificationEvent(String opPkg, int reason, String reasonPkg);


    @RequiresNoPermission
    boolean isAccessibilityTargetAllowed(String packageName, int uid, int userId);
    boolean isAccessibilityTargetAllowed(String packageName, int uid, int userId);

    @RequiresNoPermission
    boolean sendRestrictedDialogIntent(String packageName, int uid, int userId);
    boolean sendRestrictedDialogIntent(String packageName, int uid, int userId);


    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_ACCESSIBILITY)")
    @EnforcePermission("MANAGE_ACCESSIBILITY")
    boolean isAccessibilityServiceWarningRequired(in AccessibilityServiceInfo info);
    boolean isAccessibilityServiceWarningRequired(in AccessibilityServiceInfo info);


    parcelable WindowTransformationSpec {
    parcelable WindowTransformationSpec {
        float[] transformationMatrix;
        float[] transformationMatrix;
        MagnificationSpec magnificationSpec;
        MagnificationSpec magnificationSpec;
    }
    }
    @RequiresNoPermission
    WindowTransformationSpec getWindowTransformationSpec(int windowId);
    WindowTransformationSpec getWindowTransformationSpec(int windowId);


    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.INTERNAL_SYSTEM_WINDOW)")
    @EnforcePermission("INTERNAL_SYSTEM_WINDOW")
    void attachAccessibilityOverlayToDisplay(int displayId, in SurfaceControl surfaceControl);
    void attachAccessibilityOverlayToDisplay(int displayId, in SurfaceControl surfaceControl);


    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.STATUS_BAR_SERVICE,android.Manifest.permission.MANAGE_ACCESSIBILITY})")
    @EnforcePermission(allOf={"STATUS_BAR_SERVICE","MANAGE_ACCESSIBILITY"})
    oneway void notifyQuickSettingsTilesChanged(int userId, in List<ComponentName> tileComponentNames);
    oneway void notifyQuickSettingsTilesChanged(int userId, in List<ComponentName> tileComponentNames);


    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_ACCESSIBILITY)")
    @EnforcePermission("MANAGE_ACCESSIBILITY")
    oneway void enableShortcutsForTargets(boolean enable, int shortcutTypes, in List<String> shortcutTargets, int userId);
    oneway void enableShortcutsForTargets(boolean enable, int shortcutTypes, in List<String> shortcutTargets, int userId);


    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_ACCESSIBILITY)")
    @EnforcePermission("MANAGE_ACCESSIBILITY")
    Bundle getA11yFeatureToTileMap(int userId);
    Bundle getA11yFeatureToTileMap(int userId);
}
}
+90 −79

File changed.

Preview size limit exceeded, changes collapsed.

+52 −59

File changed.

Preview size limit exceeded, changes collapsed.