Android accessibility service crash

Bug #2020801 reported by Paolo
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Anbox Cloud
Fix Released
High
Gary.Wang

Bug Description

Hi support,

I'm planning to use anbox-cloud to setup a test environment for my application, more than one use accessibility service, but when I try to enable the setting for my app in android UI the settings app crash.

Some logcat just after the crash :

```

2023-05-25 18:17:30.675 16915-16915 HighlightableTopLevelAdapter com.android.settings D Request highlight position 9
2023-05-25 18:17:30.675 16915-16915 HighlightableTopLevelAdapter com.android.settings D Is highlight needed: false
2023-05-25 18:17:30.677 256-1615 ActivityTaskManager system_server I START u0 {act=android.intent.action.MAIN cmp=com.android.settings/.SubSettings (has extras)} from uid 1000
2023-05-25 18:17:30.680 256-1615 ActivityTaskManager system_server W Tried to set launchTime (0) < mLastActivityLaunchTime (96217191)
2023-05-25 18:17:30.684 16915-16915 ActivityEmbeddingUtils com.android.settings D isFlagEnabled = true
2023-05-25 18:17:30.684 16915-16915 ActivityEmbeddingUtils com.android.settings D isSplitSupported = true
2023-05-25 18:17:30.687 16915-16915 SettingsActivity com.android.settings D Starting onCreate
2023-05-25 18:17:30.688 16915-16915 SettingsActivity com.android.settings D Starting to set activity title
2023-05-25 18:17:30.688 16915-16915 SettingsActivity com.android.settings D Done setting title
2023-05-25 18:17:30.688 16915-16915 SettingsActivity com.android.settings D Switching to fragment com.android.settings.accessibility.AccessibilitySettings
2023-05-25 18:17:30.688 16915-16915 SubSettings com.android.settings D Launching fragment com.android.settings.accessibility.AccessibilitySettings
2023-05-25 18:17:30.689 16915-16915 PrefCtrlListHelper com.android.settings D Could not find Context-only controller for pref: com.android.settings.accessibility.TextReadingFragmentForA11ySettingsController
2023-05-25 18:17:30.690 16915-16915 PrefCtrlListHelper com.android.settings D Could not find Context-only controller for pref: com.android.settings.accessibility.ReduceBrightColorsPreferenceController
2023-05-25 18:17:30.690 16915-16915 PrefCtrlListHelper com.android.settings D Could not find Context-only controller for pref: com.android.settings.accessibility.MagnificationPreferenceController
2023-05-25 18:17:30.690 16915-16915 PrefCtrlListHelper com.android.settings D Could not find Context-only controller for pref: com.android.settings.accessibility.VibrationPreferenceController
2023-05-25 18:17:30.690 16915-16915 PrefCtrlListHelper com.android.settings D Could not find Context-only controller for pref: com.android.settings.accessibility.LiveCaptionPreferenceController
2023-05-25 18:17:30.690 16915-16915 PrefCtrlListHelper com.android.settings D Could not find Context-only controller for pref: com.android.settings.accessibility.CaptioningPreferenceController
2023-05-25 18:17:30.690 16915-16915 PrefCtrlListHelper com.android.settings D Could not find Context-only controller for pref: com.android.settings.accessibility.RTTSettingPreferenceController
2023-05-25 18:17:30.690 16915-16915 RTTSettingsCtr com.android.settings D init controller
2023-05-25 18:17:30.690 16915-16915 PrefCtrlListHelper com.android.settings D Could not find Context-only controller for pref: com.android.settings.accessibility.AudioDescriptionPreferenceController
2023-05-25 18:17:30.691 16915-16915 PrefCtrlListHelper com.android.settings D Could not find Context-only controller for pref: com.android.settings.accessibility.AccessibilityHearingAidPreferenceController
2023-05-25 18:17:30.691 16915-16915 BluetoothAdapter com.android.settings E Bluetooth service is null
2023-05-25 18:17:30.691 16915-16915 BluetoothAdapter com.android.settings E Bluetooth service is null
2023-05-25 18:17:30.691 16915-16915 PrefCtrlListHelper com.android.settings D Could not find Context-only controller for pref: com.android.settings.language.TtsPreferenceController
2023-05-25 18:17:30.692 256-1615 UserRestrictionsUtils system_server E Unknown restriction queried by uid 1000 (com.android.providers.settings et al): null
2023-05-25 18:17:30.693 16915-16915 AccessibilitySettings com.android.settings D NO dashboard tiles for AccessibilitySettings
2023-05-25 18:17:30.693 16915-16915 AccessibilitySettings com.android.settings D All preferences added, reporting fully drawn
2023-05-25 18:17:30.697 16915-16915 SettingsActivity com.android.settings D Executed frag manager pendingTransactions
2023-05-25 18:17:30.701 16915-16915 AndroidRuntime com.android.settings D Shutting down VM
2023-05-25 18:17:30.701 16915-16915 AndroidRuntime com.android.settings E FATAL EXCEPTION: main
                                                                                                                Process: com.android.settings, PID: 16915
                                                                                                                java.lang.RuntimeException: Failed to call observer method
                                                                                                                 at androidx.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:226)
                                                                                                                 at androidx.lifecycle.ClassesInfoCache$CallbackInfo.invokeMethodsForEvent(ClassesInfoCache.java:194)
                                                                                                                 at androidx.lifecycle.ClassesInfoCache$CallbackInfo.invokeCallbacks(ClassesInfoCache.java:186)
                                                                                                                 at androidx.lifecycle.ReflectiveGenericLifecycleObserver.onStateChanged(ReflectiveGenericLifecycleObserver.java:37)
                                                                                                                 at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354)
                                                                                                                 at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:265)
                                                                                                                 at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:307)
                                                                                                                 at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:148)
                                                                                                                 at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:134)
                                                                                                                 at com.android.settingslib.core.lifecycle.ObservablePreferenceFragment.onStart(ObservablePreferenceFragment.java:80)
                                                                                                                 at com.android.settings.core.InstrumentedPreferenceFragment.onStart(InstrumentedPreferenceFragment.java:71)
                                                                                                                 at com.android.settings.dashboard.DashboardFragment.onStart(DashboardFragment.java:201)
                                                                                                                 at com.android.settings.accessibility.AccessibilitySettings.onStart(AccessibilitySettings.java:202)
                                                                                                                 at androidx.fragment.app.Fragment.performStart(Fragment.java:3019)
                                                                                                                 at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:568)
                                                                                                                 at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:277)
                                                                                                                 at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:113)
                                                                                                                 at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1331)
                                                                                                                 at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2772)
                                                                                                                 at androidx.fragment.app.FragmentManager.dispatchStart(FragmentManager.java:2722)
                                                                                                                 at androidx.fragment.app.FragmentController.dispatchStart(FragmentController.java:273)
                                                                                                                 at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:486)
                                                                                                                 at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1510)
                                                                                                                 at android.app.Activity.performStart(Activity.java:8315)
                                                                                                                 at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3701)
                                                                                                                 at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
                                                                                                                 at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
                                                                                                                 at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
                                                                                                                 at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
                                                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2308)
                                                                                                                 at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                                 at android.os.Looper.loopOnce(Looper.java:201)
                                                                                                                 at android.os.Looper.loop(Looper.java:288)
                                                                                                                 at android.app.ActivityThread.main(ActivityThread.java:7898)
                                                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                                                 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                                                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
                                                                                                                Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.android.settingslib.bluetooth.BluetoothEventManager com.android.settingslib.bluetooth.LocalBluetoothManager.getEventManager()' on a null object reference
                                                                                                                 at com.android.settings.accessibility.AccessibilityHearingAidPreferenceController.onStart(AccessibilityHearingAidPreferenceController.java:113)
                                                                                                                 at com.android.settingslib.core.lifecycle.Lifecycle.onStart(Lifecycle.java:124)
                                                                                                                 at com.android.settingslib.core.lifecycle.Lifecycle.-$$Nest$monStart(Unknown Source:0)
                                                                                                                 at com.android.settingslib.core.lifecycle.Lifecycle$LifecycleProxy.onLifecycleEvent(Lifecycle.java:222)
                                                                                                                 at java.lang.reflect.Method.invoke(Native Method)
2023-05-25 18:17:30.701 16915-16915 AndroidRuntime com.android.settings E at androidx.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:222)
                                                                                                                 ... 36 more
2023-05-25 18:17:30.702 256-1615 ActivityTaskManager system_server W Force finishing activity com.android.settings/.SubSettings
2023-05-25 18:17:30.702 256-16975 DropBoxManagerService system_server I add tag=system_app_crash isTagEnabled=true flags=0x2
2023-05-25 18:17:30.724 256-1615 ActivityTaskManager system_server W Force finishing activity com.android.settings/.Settings
2023-05-25 18:17:30.725 16915-16915 Process com.android.settings I Sending signal. PID: 16915 SIG: 9
2023-05-25 18:17:30.733 256-572 ActivityManager system_server I Process com.android.settings (pid 16915) has died: fg TOP
2023-05-25 18:17:30.733 256-1615 ActivityTaskManager system_server W Force remove immediately ActivityRecord{e80052 u0 com.android.settings/.Settings} t32 f}} state=STOPPING
2023-05-25 18:17:30.734 256-284 libprocessgroup system_server I Successfully killed process cgroup uid 1000 pid 16915 in 0ms
2023-05-25 18:17:30.734 256-1615 WindowManager system_server W removeAppToken: Attempted to remove non-existing token: Token{78d0cdd ActivityRecord{e80052 u0 com.android.settings/.Settings} t32 f} isExiting}}
2023-05-25 18:17:30.734 256-1615 InputManager-JNI system_server W Input channel object 'd9174fe com.android.settings/com.android.settings.Settings (client)' was disposed without first being removed with the input manager!
2023-05-25 18:17:30.735 256-1615 ActivityTaskManager system_server W Force remove immediately ActivityRecord{4f9dc47 u0 com.android.settings/.SubSettings} t32 f}} state=PAUSING
2023-05-25 18:17:30.736 256-15435 WindowManager system_server W Failed looking up window session=Session{2991b03 16915:1000} callers=com.android.server.wm.WindowManagerService.windowForClientLocked:5898 com.android.server.wm.WindowState$DeathRecipient.binderDied:3126 android.os.IBinder$DeathRecipient.binderDied:317
2023-05-25 18:17:30.736 256-15435 WindowManager system_server I WIN DEATH: null
2023-05-25 18:17:30.736 256-359 NetworkStats system_server E Fail to set UidCounterSet: Null bpf map
2023-05-25 18:17:30.737 73-73 Zygote zygote64 I Process 16915 exited due to signal 9 (Killed)
2023-05-25 18:17:30.737 256-286 libprocessgroup system_server W Failed to open /dev/stune/top-app/cgroup.procs: No such file or directory
2023-05-25 18:17:30.737 256-286 libprocessgroup system_server W Failed to open /dev/cpuset/top-app/cgroup.procs: No such file or directory
2023-05-25 18:17:30.737 256-286 libprocessgroup system_server W Failed to open /dev/blkio//cgroup.procs: No such file or directory
2023-05-25 18:17:30.738 256-274 ActivityManager system_server W setHasOverlayUi called on unknown pid: 16915
2023-05-25 18:17:30.749 105-105 BpTransactionCompletedListener surfaceflinger E Failed to transact (-32)
2023-05-25 18:17:30.806 733-1034 EGL_emulation com.android.launcher3 E tid 1034: eglSurfaceAttrib(1417): error 0x3009 (EGL_BAD_MATCH)
2023-05-25 18:17:30.806 733-1034 OpenGLRenderer com.android.launcher3 W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f6bafa6c0a0, error=EGL_BAD_MATCH
2023-05-25 18:17:30.838 256-2001 OpenGLRenderer system_server W Failed to initialize 101010-2 format, error = EGL_SUCCESS
2023-05-25 18:17:31.224 256-274 ActivityTaskManager system_server W Activity top resumed state loss timeout for ActivityRecord{4f9dc47 u0 com.android.settings/.SubSettings} t-1 f}}
2023-05-25 18:17:31.790 256-335 InputReader system_server W Received unexpected event (0x35, 0xf6) for slot 0 with tracking id 0
2023-05-25 18:17:31.790 256-335 InputReader system_server W Received unexpected event (0x36, 0x1f2) for slot 0 with tracking id 0
2023-05-25 18:17:31.811 256-335 InputReader system_server W Received unexpected event (0x35, 0xf8) for slot 0 with tracking id 0
2023-05-25 18:17:31.811 256-335 InputReader system_server W Received unexpected event (0x36, 0x1f2) for slot 0 with tracking id 0
2023-05-25 18:17:31.814 256-335 InputReader system_server W Received unexpected event (0x35, 0xf9) for slot 0 with tracking id 0
2023-05-25 18:17:31.814 256-335 InputReader system_server W Received unexpected event (0x36, 0x1f1) for slot 0 with tracking id 0
2023-05-25 18:17:31.823 256-335 InputReader system_server W Received unexpected event (0x35, 0xfc) for slot 0 with tracking id 0
2023-05-25 18:17:31.823 256-335 InputReader system_server W Received unexpected event (0x36, 0x1ef) for slot 0 with tracking id 0
2023-05-25 18:17:31.831 256-335 InputReader system_server W Received unexpected event (0x35, 0xfc) for slot 0 with tracking id 0
2023-05-25 18:17:31.831 256-335 InputReader system_server W Received unexpected event (0x36, 0x1ee) for slot 0 with tracking id 0
2023-05-25 18:17:31.840 256-335 InputReader system_server W Received unexpected event (0x35, 0xfe) for slot 0 with tracking id 0
2023-05-25 18:17:31.840 256-335 InputReader system_server W Received unexpected event (0x36, 0x1ed) for slot 0 with tracking id 0
2023-05-25 18:17:31.848 256-335 InputReader system_server W Received unexpected event (0x35, 0xff) for slot 0 with tracking id 0
2023-05-25 18:17:31.848 256-335 InputReader system_server W Received unexpected event (0x36, 0x1ec) for slot 0 with tracking id 0
2023-05-25 18:17:31.857 256-335 InputReader system_server W Received unexpected event (0x35, 0x100) for slot 0 with tracking id 0
2023-05-25 18:17:31.857 256-335 InputReader system_server W Received unexpected event (0x36, 0x1ea) for slot 0 with tracking id 0
2023-05-25 18:17:31.868 256-335 InputReader system_server W Received unexpected event (0x35, 0x101) for slot 0 with tracking id 0
2023-05-25 18:17:31.868 256-335 InputReader system_server W Received unexpected event (0x36, 0x1e9) for slot 0 with tracking id 0
2023-05-25 18:17:31.873 256-335 InputReader system_server W Received unexpected event (0x35, 0x104) for slot 0 with tracking id 0
2023-05-25 18:17:31.873 256-335 InputReader system_server W Received unexpected event (0x36, 0x1e6) for slot 0 with tracking id 0
2023-05-25 18:17:31.881 256-335 InputReader system_server W Received unexpected event (0x35, 0x105) for slot 0 with tracking id 0
2023-05-25 18:17:31.882 256-335 InputReader system_server W Received unexpected event (0x36, 0x1e5) for slot 0 with tracking id 0
2023-05-25 18:17:31.889 256-335 InputReader system_server W Received unexpected event (0x35, 0x106) for slot 0 with tracking id 0
2023-05-25 18:17:31.889 256-335 InputReader system_server W Received unexpected event (0x36, 0x1e4) for slot 0 with tracking id 0

```

Revision history for this message
Paolo (kernelmode) wrote :
Revision history for this message
Simon Fels (morphis) wrote :

Hey Paolo,

thanks for your report!

Which Android version are you seeing this on? It looks like a bug in AOSP that the accessibility service doesn't work nicely when Bluetooth isn't existent. We can fix this for the upcoming 1.18.1 release.

Revision history for this message
Paolo (kernelmode) wrote :

Hi Simon,

the issue is present on Android 13, the image that I'm using is jammy:android13:amd64, on jammy:android12:amd64 it works as expected.

Thanks for your support.

Revision history for this message
Simon Fels (morphis) wrote :

Thanks Paolo!

We will look into this and provide a fix for Android 13.

Changed in anbox-cloud:
status: New → Triaged
importance: Undecided → High
milestone: none → 1.18.2
Revision history for this message
Paolo (kernelmode) wrote :

Hi,

That's great to hear! I'm glad my feedback was helpful and I look forward to the solution for Android 13. In the meantime, I'll continue my test with Android 12. Your support throughout this process has been invaluable, and I greatly appreciate the swift responses and assistance.

Best regards,
Paolo

Revision history for this message
Simon Fels (morphis) wrote :

Glad if we can help!

Let us know if there is anything else.

Gary.Wang (gary-wzl77)
Changed in anbox-cloud:
assignee: nobody → Gary.Wang (gary-wzl77)
Simon Fels (morphis)
Changed in anbox-cloud:
status: Triaged → Fix Committed
Gary.Wang (gary-wzl77)
Changed in anbox-cloud:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.