It seems I found a solution that has worked for me (for now?)
First I recorded several logcat logs:
defaultuser in š Xperia10III in ~ as š§
š ⯠while true;sudo appsupport-attach /system/bin/logcat | grep -E 'system_server|AndroidRuntime' | tee ~/$(date +%Y%m%d%H%M%S%z-logcat.log);find -maxdepth 1 -iname '*-logcat.log' -empty -delete;sleep 1;end
<lots of output>
defaultuser in š Xperia10III in ~ as š§
š ⯠ls
20260505103008+0200-logcat.log 20260505104152+0200-logcat.log 20260505104611+0200-logcat.log 20260505105015+0200-logcat.log ************* Pictures/
20260505103714+0200-logcat.log 20260505104223+0200-logcat.log 20260505104641+0200-logcat.log 20260505105045+0200-logcat.log android_storage/ Playlists/
20260505103745+0200-logcat.log 20260505104254+0200-logcat.log 20260505104712+0200-logcat.log 20260505105120+0200-logcat.log *********** Public/
20260505103808+0200-logcat.log 20260505104338+0200-logcat.log 20260505104745+0200-logcat.log 20260505105153+0200-logcat.log Desktop/ Templates/
20260505103837+0200-logcat.log 20260505104409+0200-logcat.log 20260505104815+0200-logcat.log 20260505105225+0200-logcat.log Documents/ Videos/
20260505104012+0200-logcat.log 20260505104441+0200-logcat.log 20260505104845+0200-logcat.log 20260505105258+0200-logcat.log Downloads/ ******
20260505104045+0200-logcat.log 20260505104511+0200-logcat.log 20260505104915+0200-logcat.log 20260505105329+0200-logcat.log **************
20260505104118+0200-logcat.log 20260505104541+0200-logcat.log 20260505104944+0200-logcat.log 20260505105451+0200-logcat.log Music/
I then grepped for the OutOfMemoryError:
š ⯠grep -A30 'OutOfMemory' *-logcat.log | grep 'OutOfMemory\|\bat\b'
And this UsageStats thing kept popping up:
...
0260505104338+0200-logcat.log:05-05 10:43:55.744 315 341 E AndroidRuntime: java.lang.OutOfMemoryError: Failed to allocate a 104 byte allocation with 172
5536 free bytes and 1685KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UsageStatsProtoV2.parseEvent(UsageStatsPr
otoV2.java:237)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UsageStatsProtoV2.read(UsageStatsProtoV2.
java:498)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsD
atabase.java:1148)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsD
atabase.java:1102)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsD
atabase.java:1085)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.getLatestUsageStats(Us
ageStatsDatabase.java:747)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.loadActiveStats(Use
rUsageStatsService.java:898)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.rolloverStats(UserU
sageStatsService.java:849)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.reportEvent(UserUsa
geStatsService.java:316)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UsageStatsService.reportEvent(UsageStatsS
ervice.java:1168)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UsageStatsService.onUserUnlocked(UsageSta
tsService.java:460)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UsageStatsService.-$$Nest$monUserUnlocked
(Unknown Source:0)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at com.android.server.usage.UsageStatsService$H.handleMessage(UsageSt
atsService.java:1927)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:201)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at android.os.Looper.loop(Looper.java:288)
20260505104338+0200-logcat.log-05-05 10:43:55.744 315 341 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:67)
...
So I searched for files or folders named usagestats:
š ⯠sudo find /home -type d -name "usagestats" 2>/dev/null
/home/.appsupport/instance/defaultuser/data/system_ce/0/usagestats
As nothing was working anyway, I thought Iād just move that directory out of the way, while stopping the appsupport completely:
š ⯠sudo systemctl stop appsupport@defaultuser.service
š ⯠sudo mv /home/.appsupport/instance/defaultuser/data/system_ce/0/usagestats{,.bak}
š ⯠sudo systemctl restart appsupport@defaultuser.service
After that, I can use Android apps as usual, no crashes. ![]()