GrapheneOS / os-issue-tracker

Issue tracker for GrapheneOS Android Open Source Project hardening work. Standalone projects like Auditor, AttestationServer and hardened_malloc have their own dedicated trackers.
https://grapheneos.org/
361 stars 21 forks source link

Launcher crashes with "android.os.BadParcelableException" error / System UI crashes #2601

Open emacsomancer opened 1 year ago

emacsomancer commented 1 year ago

In the last weeks I've had issues with Launcher (default or other) and System UI crashes. Sometimes this results in a 'toast' notifying me; sometimes I just get the screen blinking on and off, either eventually resolving, or dropping me back to the lock screen or rebooting the phone.

It happens both with using the default GrapheneOS launcher and also with third party launchers. And, in the latter case, sometimes the third party launcher will crash, but sometimes I also get 'toasts' notifying me that (the GrapheneOS) Launcher has crashed, even when it is not the launcher being used.

From the error messages in the toasts:

GrapheneOS Launcher crash:

type: crash
osVersion: google/raven/raven:14/UP1A.231005.007/2023102300:user/release-keys
package: com.android.launcher3:34
process: com.android.launcher3
processUptime: 2877 + 400 ms

android.os.BadParcelableException: Failure retrieving array; only received 1 of 11
    at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:104)
    at android.content.pm.ParceledListSlice.<init>(ParceledListSlice.java:42)
    at android.content.pm.ParceledListSlice.<init>(Unknown Source:0)
    at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:80)
    at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:78)
    at android.os.Parcel.readTypedObject(Parcel.java:4045)
    at android.app.INotificationManager$Stub$Proxy.getActiveNotificationsFromListener(INotificationManager.java:4365)
    at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1067)
    at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1044)
    at com.android.launcher3.notification.NotificationListener.getActiveNotificationsSafely(NotificationListener.java:216)
    at com.android.launcher3.notification.NotificationListener.handleWorkerMessage(NotificationListener.java:158)
    at com.android.launcher3.notification.NotificationListener.$r8$lambda$4-fmy5r6l5LEHTsF6n64stfMwOg(Unknown Source:0)
    at com.android.launcher3.notification.NotificationListener$$ExternalSyntheticLambda3.handleMessage(Unknown Source:2)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loopOnce(Looper.java:205)
    at android.os.Looper.loop(Looper.java:294)
    at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffer space
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:584)
    at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:95)
    ... 16 more

This has occurred both before and after updating to the latest stable 2023102300 build, and both before and after completing clearing Launcher's storage.

Lawnchair crash:

type: crash
osVersion: google/raven/raven:14/UP1A.231005.007/2023101300:user/release-keys
package: app.lawnchair:12010005
process: app.lawnchair
processUptime: 2099 + 224 ms
installer: com.machiav3lli.fdroid

android.os.BadParcelableException: Failure retrieving array; only received 1 of 13
    at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:104)
    at android.content.pm.ParceledListSlice.<init>(ParceledListSlice.java:42)
    at android.content.pm.ParceledListSlice.<init>(Unknown Source:0)
    at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:80)
    at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:78)
    at android.os.Parcel.readTypedObject(Parcel.java:4045)
    at android.app.INotificationManager$Stub$Proxy.getActiveNotificationsFromListener(INotificationManager.java:4365)
    at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1067)
    at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:991)
    at com.android.launcher3.notification.NotificationListener.handleWorkerMessage(NotificationListener.java:8)
    at com.android.launcher3.notification.NotificationListener.g(Unknown Source:0)
    at com.android.launcher3.notification.d.handleMessage(Unknown Source:2)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loopOnce(Looper.java:205)
    at android.os.Looper.loop(Looper.java:294)
    at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffer space
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:584)
    at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:95)
    ... 15 more
ghost commented 1 year ago

I can +1 to this. I'm getting the exact same since a week back or so. Maybe more. Have hoped an update would fix it but no. I'm on the latest version of Graphene OS as of this date.

Here's the crashlog from just a few seconds ago.

type: crash
osVersion: google/cheetah/cheetah:14/UP1A.231005.007/2023102300:user/release-keys
package: com.android.launcher3:34
process: com.android.launcher3
processUptime: 279 + 371 ms

android.os.BadParcelableException: Failure retrieving array; only received 1 of 6
    at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:104)
    at android.content.pm.ParceledListSlice.<init>(ParceledListSlice.java:42)
    at android.content.pm.ParceledListSlice.<init>(Unknown Source:0)
    at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:80)
    at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:78)
    at android.os.Parcel.readTypedObject(Parcel.java:4045)
    at android.app.INotificationManager$Stub$Proxy.getActiveNotificationsFromListener(INotificationManager.java:4365)
    at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1067)
    at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1044)
    at com.android.launcher3.notification.NotificationListener.getActiveNotificationsSafely(NotificationListener.java:216)
    at com.android.launcher3.notification.NotificationListener.handleWorkerMessage(NotificationListener.java:158)
    at com.android.launcher3.notification.NotificationListener.$r8$lambda$4-fmy5r6l5LEHTsF6n64stfMwOg(Unknown Source:0)
    at com.android.launcher3.notification.NotificationListener$$ExternalSyntheticLambda3.handleMessage(Unknown Source:2)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loopOnce(Looper.java:205)
    at android.os.Looper.loop(Looper.java:294)
    at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffer space
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:584)
    at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:95)
    ... 16 more
emacsomancer commented 1 year ago

I've been able to 'improve' things, by turning off all app notifications (in System>Notifications>App Notifications) and trying to re-enable things one by one. I think "Breezy Weather" is one that causes crashes, but I'm not sure.

Live wallpapers also seem to trigger crashes.

ghost commented 1 year ago

Another crash report...

type: crash
osVersion: google/cheetah/cheetah:14/UP1A.231105.003/2023110700:user/release-keys
package: com.android.launcher3:34
process: com.android.launcher3
processUptime: 957 + 1421 ms

android.os.BadParcelableException: Failure retrieving array; only received 4 of 9
    at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:104)
    at android.content.pm.ParceledListSlice.<init>(ParceledListSlice.java:42)
    at android.content.pm.ParceledListSlice.<init>(Unknown Source:0)
    at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:80)
    at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:78)
    at android.os.Parcel.readTypedObject(Parcel.java:4045)
    at android.app.INotificationManager$Stub$Proxy.getActiveNotificationsFromListener(INotificationManager.java:4365)
    at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1067)
    at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1044)
    at com.android.launcher3.notification.NotificationListener.getActiveNotificationsSafely(NotificationListener.java:216)
    at com.android.launcher3.notification.NotificationListener.handleWorkerMessage(NotificationListener.java:158)
    at com.android.launcher3.notification.NotificationListener.$r8$lambda$4-fmy5r6l5LEHTsF6n64stfMwOg(Unknown Source:0)
    at com.android.launcher3.notification.NotificationListener$$ExternalSyntheticLambda3.handleMessage(Unknown Source:2)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loopOnce(Looper.java:205)
    at android.os.Looper.loop(Looper.java:294)
    at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffer space
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:584)
    at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:95)
    ... 16 more
thestinger commented 1 year ago

Settings -> Notifications -> Device & app notifications -> try turning off the notification read permission for the launcher. You could also try turning off the notification dot feature without turning off the permission to further narrow it down.

miles992 commented 11 months ago

I experience a lot of these too but I cannot find the mentioned read permission, I can only turn of the entire block or single options outlined below. The errors are pretty much like the ones above, same sort of screen flicker etc. Version is the latest stable build.

Settings -> Notifications -> Device & app notifications provides these options for launcher:

Does removing any of these have side effects?

thestinger commented 11 months ago

Not there, in Settings -> Apps -> Special app access -> Device & app notifications

emacsomancer commented 10 months ago

One thing which seems to cause this[1] is the notifications from Data Monitor. This was not always the case, as I used it for some time preceding the issues described above.

(In case others are having trouble tracking down which app notifications seem to trigger this.)

[1] Not the "BadParcelableException" error, but the UI crash.

shift18 commented 10 months ago

I also have this issue now. Started in December, i don't know that I've installed any new app. perhaps something to do with a December OS update, but ofc. others had it much earlier so who knows?

Two crash logs bellow

type: crash
osVersion: google/bluejay/bluejay:14/UQ1A.231205.015/2023121200:user/release-keys
package: com.android.launcher3:34
process: com.android.launcher3
processUptime: 1322 + 289 ms

android.os.BadParcelableException: Failure retrieving array; only received 2 of 19
    at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:104)
    at android.content.pm.ParceledListSlice.<init>(ParceledListSlice.java:42)
    at android.content.pm.ParceledListSlice.<init>(Unknown Source:0)
    at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:80)
    at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:78)
    at android.os.Parcel.readTypedObject(Parcel.java:4045)
    at android.app.INotificationManager$Stub$Proxy.getActiveNotificationsFromListener(INotificationManager.java:4365)
    at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1057)
    at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1034)
    at com.android.launcher3.notification.NotificationListener.getActiveNotificationsSafely(NotificationListener.java:216)
    at com.android.launcher3.notification.NotificationListener.handleWorkerMessage(NotificationListener.java:158)
    at com.android.launcher3.notification.NotificationListener.$r8$lambda$4-fmy5r6l5LEHTsF6n64stfMwOg(Unknown Source:0)
    at com.android.launcher3.notification.NotificationListener$$ExternalSyntheticLambda3.handleMessage(Unknown Source:2)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loopOnce(Looper.java:205)
    at android.os.Looper.loop(Looper.java:294)
    at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffer space
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:584)
    at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:95)
    ... 16 more

type: crash osVersion: google/bluejay/bluejay:14/UQ1A.240105.002/2024010400:user/release-keys package: com.android.launcher3:34 process: com.android.launcher3 processUptime: 9764 + 363 ms

android.os.BadParcelableException: Failure retrieving array; only received 2 of 44 at android.content.pm.BaseParceledListSlice.(BaseParceledListSlice.java:104) at android.content.pm.ParceledListSlice.(ParceledListSlice.java:42) at android.content.pm.ParceledListSlice.(Unknown Source:0) at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:80) at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:78) at android.os.Parcel.readTypedObject(Parcel.java:4045) at android.app.INotificationManager$Stub$Proxy.getActiveNotificationsFromListener(INotificationManager.java:4365) at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1057) at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:1034) at com.android.launcher3.notification.NotificationListener.getActiveNotificationsSafely(NotificationListener.java:216) at com.android.launcher3.notification.NotificationListener.handleWorkerMessage(NotificationListener.java:158) at com.android.launcher3.notification.NotificationListener.$r8$lambda$4-fmy5r6l5LEHTsF6n64stfMwOg(Unknown Source:0) at com.android.launcher3.notification.NotificationListener$$ExternalSyntheticLambda3.handleMessage(Unknown Source:2) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:294) at android.os.HandlerThread.run(HandlerThread.java:67) Caused by: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffer space at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(BinderProxy.java:584) at android.content.pm.BaseParceledListSlice.(BaseParceledListSlice.java:95) ... 16 more

hubdot commented 8 months ago

I've been able to 'improve' things, by turning off all app notifications (in System>Notifications>App Notifications) and trying to re-enable things one by one. I think "Breezy Weather" is one that causes crashes, but I'm not sure.

Live wallpapers also seem to trigger crashes.

I can confirm the Live Wallpaper issue. For me the native launcher kept crashing after an update reboot - until I uninstalled Dark Mode Live Wallpaper, which had been installed from F-Droid. After uninstalling the wallpaper app the launcher worked normally again. I didn't mess with notification dots and I assume it wouldn't have had an effect in this case as there are no notifications from Dark Mode Live Wallpaper. Reinstalling the wallpaper app again didn't re-produce the behavior - in this specific case it seems only update reboot / app optimization triggered it. Rebooting the phone now doesn't cause the issue to appear again either.


type: logcat
osVersion: google/panther/panther:14/UQ1A.240205.002/2024020500:user/release-keys
buffers: main,system,crash,events
level: verbose
filterRegex: crash

--------- beginning of system
1708608925.737  1000  1459  8784 W ActivityManager: Scheduling restart of crashed service com.menny.android.anysoftkeyboard/.SoftKeyboard in 1000ms for connection
1708608925.855  1000  1459  3976 W ActivityManager: Scheduling restart of crashed service com.x8bit.bitwarden/.Accessibility.AccessibilityService in 10882ms for connection
1708608925.886  1000  1459  3472 W ActivityManager: Scheduling restart of crashed service com.github.cvzi.darkmodewallpaper/.DarkWallpaperService in 20851ms for connection
1708609012.784  1000  1459  3484 W ActivityManager: Scheduling restart of crashed service com.android.vending/com.android.internal.gmscompat.client.GmsCompatClientService in 1000ms for connection
1708609012.784  1000  1459  3484 W ActivityManager: Scheduling restart of crashed service com.android.vending/com.google.android.finsky.verifier.impl.api.safetynet.PackageVerificationApiService in 11000ms for connection```
shift18 commented 8 months ago

I've been able to 'improve' things, by turning off all app notifications (in System>Notifications>App Notifications) and trying to re-enable things one by one. I think "Breezy Weather" is one that causes crashes, but I'm not sure. Live wallpapers also seem to trigger crashes.

I can confirm the Live Wallpaper issue. For me the native launcher kept crashing after an update reboot - until I uninstalled Dark Mode Live Wallpaper, which had been installed from F-Droid. After uninstalling the wallpaper app the launcher worked normally again. I didn't mess with notification dots and I assume it wouldn't have had an effect in this case as there are no notifications from Dark Mode Live Wallpaper. Reinstalling the wallpaper app again didn't re-produce the behavior - in this specific case it seems only update reboot / app optimization triggered it. Rebooting the phone now doesn't cause the issue to appear again either.

type: logcat
osVersion: google/panther/panther:14/UQ1A.240205.002/2024020500:user/release-keys
buffers: main,system,crash,events
level: verbose
filterRegex: crash

--------- beginning of system
1708608925.737  1000  1459  8784 W ActivityManager: Scheduling restart of crashed service com.menny.android.anysoftkeyboard/.SoftKeyboard in 1000ms for connection
1708608925.855  1000  1459  3976 W ActivityManager: Scheduling restart of crashed service com.x8bit.bitwarden/.Accessibility.AccessibilityService in 10882ms for connection
1708608925.886  1000  1459  3472 W ActivityManager: Scheduling restart of crashed service com.github.cvzi.darkmodewallpaper/.DarkWallpaperService in 20851ms for connection
1708609012.784  1000  1459  3484 W ActivityManager: Scheduling restart of crashed service com.android.vending/com.android.internal.gmscompat.client.GmsCompatClientService in 1000ms for connection
1708609012.784  1000  1459  3484 W ActivityManager: Scheduling restart of crashed service com.android.vending/com.google.android.finsky.verifier.impl.api.safetynet.PackageVerificationApiService in 11000ms for connection```

Ok thanks, that's good to know. I've not had this issue for awhile now but if it comes back this is indeed useful information.

It think the 2014011600 update reduced the frequency of crashes for me. https://grapheneos.org/releases#2024011600

AlexanderHott commented 7 months ago

This happens to me up to 5x times a day. I'm not sure exactly what is causing it because it happens on multiple different apps / while just on the home screen. I don't have a custom launcher installed.

thestinger commented 7 months ago

@AlexanderHott Try with launcher notification access revoked.

AlexanderHott commented 7 months ago

@AlexanderHott Try with launcher notification access revoked.

Just turned it off, I'll post an update if things crash again.