Stops hiding a11y services with the same package+label as an activity.

Bug: 353700779
Test: atest AccessibilitySettings, ensure new test passes
Test: revert AccessibilitySettings.java change, ensure new test fails
Test: Install poc APKs from the bug, observe issue not reproducible
Flag: NONE security fix
Change-Id: Ie680e80169aa734f2559fe50ef06e4d1eae46779
This commit is contained in:
Daniel Norman
2024-08-14 21:02:27 +00:00
parent 9148e612fe
commit c38fd822ba
3 changed files with 89 additions and 44 deletions

View File

@@ -16,15 +16,18 @@
package com.android.settings.testutils.shadow;
import android.accessibilityservice.AccessibilityShortcutInfo;
import android.annotation.NonNull;
import android.annotation.UserIdInt;
import android.content.ComponentName;
import android.content.Context;
import android.util.ArrayMap;
import android.view.accessibility.AccessibilityManager;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import java.util.List;
import java.util.Map;
/**
@@ -33,9 +36,10 @@ import java.util.Map;
@Implements(AccessibilityManager.class)
public class ShadowAccessibilityManager extends org.robolectric.shadows.ShadowAccessibilityManager {
private Map<ComponentName, ComponentName> mA11yFeatureToTileMap = new ArrayMap<>();
private List<AccessibilityShortcutInfo> mInstalledAccessibilityShortcutList = List.of();
/**
* Implements a hidden method {@link AccessibilityManager.getA11yFeatureToTileMap}
* Implements a hidden method {@link AccessibilityManager#getA11yFeatureToTileMap}
*/
@Implementation
public Map<ComponentName, ComponentName> getA11yFeatureToTileMap(@UserIdInt int userId) {
@@ -49,4 +53,22 @@ public class ShadowAccessibilityManager extends org.robolectric.shadows.ShadowAc
@NonNull Map<ComponentName, ComponentName> a11yFeatureToTileMap) {
mA11yFeatureToTileMap = a11yFeatureToTileMap;
}
/**
* Implements the hidden method
* {@link AccessibilityManager#getInstalledAccessibilityShortcutListAsUser}.
*/
@Implementation
public List<AccessibilityShortcutInfo> getInstalledAccessibilityShortcutListAsUser(
@NonNull Context context, @UserIdInt int userId) {
return mInstalledAccessibilityShortcutList;
}
/**
* Sets the value to be returned by {@link #getInstalledAccessibilityShortcutListAsUser}.
*/
public void setInstalledAccessibilityShortcutListAsUser(
@NonNull List<AccessibilityShortcutInfo> installedAccessibilityShortcutList) {
mInstalledAccessibilityShortcutList = installedAccessibilityShortcutList;
}
}