Chrome Apps - ständige Abstürze

Spike S.

Lt. Commander
Registriert
Feb. 2012
Beiträge
1.982
Auf meinem Pixel 6 (non Pro) stürzen Chrome Apps innerhalb von 10 bis 30 Sekunden (grobes Bauchgefühl) ab. Und ich meine nicht den Google Chrome Browser, sondern andere auf Chromium basierende Apps. Konkret den Bromite Browser, DuckduckGo Browser und die Wikipedia App. Installiert über F-Droid. Die Browser schließen sich einfach und ich lande auf dem Homescreen, ohne Meldung oder irgendwas. Die Wiki App bleibt grundsätzlich offen, aber die Artikel schließen sich und ich bin wieder auf der App Startseite oder in der Suche, je nachdem von wo ich in den Artikel gesprungen bin.
Android ist die 12, ganz aktuell, d.h. das Juni Update ist installiert. Das Verhalten habe ich seit Anfang an, was im April war.
Ich hatte zwar mal GrapheneOS drauf, bin dann aber über die Google Seite zurück auf Stock, also über den offiziellen Weg. Ich nutze allerdings so wenig wie möglich die Google Apps, also andere Tastatur, Dialer, Launcher, SMS App, Browser, usw.

Ich hoffe von euch hat jemand noch einen Ansatz zum verfolgen. Mir fällt nur ein, alles platt zu machen, worauf ich nicht wirklich Lust habe.
 
Spike S. schrieb:
Ich hoffe von euch hat jemand noch einen Ansatz zum verfolgen. Mir fällt nur ein, alles platt zu machen, worauf ich nicht wirklich Lust habe.
Um den Fehler selbst zu finden, könntest du Logs ziehen. Entweder mit der App Crash Log Viewer oder über die Entwickleroptionen > Fehlerbericht erstellen. Beides funktioniert ohne Root.
 
Die Möglichkeit über die Entwickleroption hatte ich mal probiert, bin damit aber nicht klar gekommen. Intuitiv ist das nicht.
Werde das also mit der extra App probieren.
 
Der Fehlerbericht ist ein riesiges Log, das alle Logs des Systems hintereinander in einer Textdatei darstellt. Ist sehr unübersichtlich, wenn man das nicht kennt. Aber wenn man den Aufbau verstanden hat, lässt es sich sehr einfach in die einzelnen Logs aufteilen, die sonst nur mit Root lesbar sind.
Die App zieht aber eigentlich schon genau die richtigen Logs zu den letzten Crashes deiner Apps.
 
Ja, sehr Overkill für Otto Normal der nicht für Android entwickelt...

Ich hab mal die App von dir und Scoop laufen lassen. Das Archiv ist voll mit einer Berechtigungsanfrage für Bluetooth vom GMS (Play Dienste). Auch immer wenn der von mir beschriebene Fehler in den Apps auftritt, kommt diese Exception vom GMS

Screenshot_20220612-115114.png


Und ja, ich bin sehr restriktiv mit den Berechtigungen, versuche nichts auf Default zu belassen...
Ich wüsste jetzt nur nicht, dass ich GMS explizit Bluetooth entzogen hätte oder in welchen der Berechtigungen das versteckt ist...
 
Diese Berechtigung kannst du bei den Play Diensten nicht entziehen oder erteilen. Jede App nutzt Berechtigungen, die erteilt werden müssen (runtime permissions, ugs. auch: "gefährliche Berechtigungen") und automatisch erteilt werden, weil sie für "non-restricted data/actions" genutzt werden.
Die Play Dienste allerdings, die sofort beim Einrichten des Handys schon heißlaufen, benutzen zwar auch die gefährlichen Berechtigungen, aber brauchen keine Bestätigung des Nutzers dafür. Die Erteilung dieser Berechtigungen muss übers System gesteuert werden (XML-Sheet auf /system), da ansonsten die Play Dienste nicht während der Einrichtung (oder sogar schon davor) richtig ausgeführt werden können. Google vertraut sich hierbei selber, also alles gut soweit.

Wie heißt denn der Prozess genau? Was kommt da noch nach "com.google.android.gms.persi..."?
 
Na toll, klingt ja so als könnte ich nix machen, nicht mal neuinstallieren, da works as designed...

Hier der volle Stacktrace:
Code:
FATAL EXCEPTION: highpool[4]
Process: com.google.android.gms.persistent, PID: 18626
java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@5a21ceb8: AdapterService getScanMode
    at android.os.Parcel.createExceptionOrNull(Parcel.java:2426)
    at android.os.Parcel.createException(Parcel.java:2410)
    at android.os.Parcel.readException(Parcel.java:2393)
    at android.os.Parcel.readException(Parcel.java:2335)
    at android.bluetooth.IBluetooth$Stub$Proxy.getScanMode(IBluetooth.java:2797)
    at android.bluetooth.BluetoothAdapter.getScanMode(BluetoothAdapter.java:1608)
    at asal.a(:com.google.android.gms@221820044@22.18.20 (190400-451484765):4)
    at com.google.android.gms.nearby.exposurenotification.service.ExposureNotificationInternalChimeraService.a(:com.google.android.gms@221820044@22.18.20 (190400-451484765):140)
    at asgr.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):6)
    at wwq.c(:com.google.android.gms@221820044@22.18.20 (190400-451484765):6)
    at wwq.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):7)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at xbv.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):0)
    at java.lang.Thread.run(Thread.java:920)
    Suppressed: cdha:
        at tk_trace.nearby_en-ExposureNotificationInternalChimeraService_onStartCommand(Unknown Source:0)
        at tk_trace.location_base-NetworkLocationChimeraService_onBind(Unknown Source:0)
 
Benutz bitte mal Crash Log Viewer. Ich weiß nicht was für eine App "Scoop" ist, aber das ist nicht der Fehler, den du mit den Chrome Apps hast.
Ergänzung ()

Die GMS sind für alles im System verantwortlich und Bluetooth hat nichts mit WebView zu tun.
 
Scoop ist eigentlich ziemlich das gleiche, nur das es erst auf aufgetretene Crashes mit einer Benachrichtigung reagiert. Und FOSS über F-Droid zu bekommen.

Hier nochmal der Stacktrace aus der von dir empfohlenen App.

Code:
This information is generated from the Crash Log View application. - https://play.google.com/store/apps/details?id=com.arumcomm.crashlogviewer

Process: com.google.android.gms.persistent
PID: 10348
UID: 10148
Package: com.google.android.gms v221820044 (22.18.20 (190400-451484765))
Foreground: Yes
Build: google/oriole/oriole:12/SQ3A.220605.009.B1/8650216:user/release-keys
DD-EDD: 1073741824

java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@19b06a6: AdapterService getScanMode
    at android.os.Parcel.createExceptionOrNull(Parcel.java:2426)
    at android.os.Parcel.createException(Parcel.java:2410)
    at android.os.Parcel.readException(Parcel.java:2393)
    at android.os.Parcel.readException(Parcel.java:2335)
    at android.bluetooth.IBluetooth$Stub$Proxy.getScanMode(IBluetooth.java:2797)
    at android.bluetooth.BluetoothAdapter.getScanMode(BluetoothAdapter.java:1608)
    at asal.a(:com.google.android.gms@221820044@22.18.20 (190400-451484765):4)
    at com.google.android.gms.nearby.exposurenotification.service.ExposureNotificationInternalChimeraService.a(:com.google.android.gms@221820044@22.18.20 (190400-451484765):140)
    at asgr.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):6)
    at wwq.c(:com.google.android.gms@221820044@22.18.20 (190400-451484765):6)
    at wwq.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):7)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at xbv.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):0)
    at java.lang.Thread.run(Thread.java:920)
    Suppressed: cdha:
        at tk_trace.nearby_en-ExposureNotificationInternalChimeraService_onStartCommand(Unknown Source:0)
        at tk_trace.location_base-NetworkLocationChimeraService_onBind(Unknown Source:0)
 
Spike S. schrieb:
Und FOSS über F-Droid zu bekommen.
Da habe ich sie eben auch gefunden. :-)

Ich hatte eigentlich gehofft, Crash Log Viewer hat noch zusätzliche Infos, die sich direkt auf die besagten Apps beziehen. Wie gesagt, dein gezeigter Crash steht in keinem Zusammenhang mit den Apps, die WebView von Chrome benutzen. Das sind ja nur die Play Dienste, die für den Dienst "Nearby" nach Bluetoothgeräten in der Nähe suchen wollen, aber nicht die benötigte Berechtigung besitzen. Die könntest du z.B. per ADB erteilen. Aber mit den genannten Apps hat das nix zu tun.
 
Ja, das irritiert mich ja auch, sehe da auch keinen Zusammenhang. Jedoch immer wenn eine Chrome App crashed, kommt über Scoop die Benachrichtigung über eine solche Exception. Nearby ist eigentlich auch deaktiviert.
Diese Exception kommt übrigens immer etwa alle 30 Sekunden, egal in welcher App ich bin oder auf dem Homescreen oder das Handy gesperrt ist. Da scheint also der Service regelmäßig zu pollen und auf die Nase zu fallen.
WebKit wird doch aber sicherlich irgendwie in die Play Dienste eingebunden sein, oder?
 
Spike S. schrieb:
WebKit wird doch aber sicherlich irgendwie in die Play Dienste eingebunden sein, oder?
Alles im System ist irgendwie in die Play Dienste eingebunden. Aber eigentlich ist WebView entweder eine eigenständige App oder ein Dienst von Google Chrome. Also muss im Log com.android.chrome/* oder der Paketname der App drinstehen, die unerwartet beendet wurde. Aber nicht com.google.android.gms/*.
Ergänzung ()

Sonst erstell doch einen Fehlerbericht (vollständig) nachdem eine der Apps abgestürzt ist. Dann öffnest du das Log und suchst nach dem Paketnamen. Dann hast du den Fehler ganz schnell im Log gefunden.
 
Zuletzt bearbeitet:
Genau, WebView meinte ich, nicht WebKit...

Das mit den Paketnamen ist auch sowas, warum wird das im Standardandroid nicht einfach auf der Appeinstellungsseite angezeigt? Ständig einen Klimmzug machen um den herauszufinden 🙄

Habe jetzt so einen vollständigen Bericht über die Entwickleroptionen erstellt. Und nun, wie komme ich an den Inhalt? Es kam jetzt eine Minute später eine Benachrichtigung um den Bericht zu teilen, finde aber nix zum betrachten...

Nachtrag: Habe den Play Diensten die Berechtigung für Geräte in der Nähe gegeben, seit dem ist seit 10 Minuten Ruhe. Aber das ist für mich nicht die Lösung, da Google es einen Scheißdreck angeht was in meiner Nähe los ist (unter der Annahme, dass Geräte in der Nähe Bluetooth und Nearby meint). Bluetooth habe ich wegen der CWA App permanent aktiv.
 
Zuletzt bearbeitet:
Spike S. schrieb:
um den Bericht zu teilen
Du musst ihn dir per E-Mail schicken. Der Bericht liegt unter
Code:
/data/user_de/0/com.android.shell/files/bugreports/*
Mein Systemdateimanager z.B. hat auch einen Shortcut dorthin gelistet.
bug_screenshot2.png

Ergänzung ()

Spike S. schrieb:
Das mit den Paketnamen ist auch sowas,
duckduckgo Browser => com.duckduckgo.mobile.android

Bromite => org.bromite.bromite

Wikipedia => org.wikipedia
 
Wusstest du die Paketnamen aus dem Kopf?

An den Report zu kommen war jetzt wieder leichter gesagt als getan...
Hatte blöderweise Gmail zum Teilen gewählt und die Mail als Entwurf gespeichert. Download blieb immer bei 0% stehen, vermutlich weil ich Gdrive deaktiviert habe, bei dem Anhang war nämlich das Gdrive Symbol. Die Mail an die Gmailadresse senden hat daran nix geändert. Also doch an eine andere Adresse. Mit GhostCommander konnte ich das dann entpacken und in der bugreport.txt suchen.

Hatte den Versuch mit dem DuckduckGo Browser gemacht. Im Bugreport war in diesem Kontext aber keine Exception zu finden, nur Sachen die auch andere Apps betreffen (die nicht abstürzen).

Habe dann mal den Logcat Viewer auch auf F-Droid) mitschneiden lassen. Dort habe ich zwei Exceptions nebeneinander gefunden:
Code:
FATAL EXCEPTION: highpool[3]
Process: com.google.android.gms.persistent, PID: 25815
java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@4df42736: AdapterService getScanMode
    at android.os.Parcel.createExceptionOrNull(Parcel.java:2426)
    at android.os.Parcel.createException(Parcel.java:2410)
    at android.os.Parcel.readException(Parcel.java:2393)
    at android.os.Parcel.readException(Parcel.java:2335)
    at android.bluetooth.IBluetooth$Stub$Proxy.getScanMode(IBluetooth.java:2797)
    at android.bluetooth.BluetoothAdapter.getScanMode(BluetoothAdapter.java:1608)
    at asal.a(:com.google.android.gms@221820044@22.18.20 (190400-451484765):4)
    at com.google.android.gms.nearby.exposurenotification.service.ExposureNotificationInternalChimeraService.a(:com.google.android.gms@221820044@22.18.20 (190400-451484765):140)
    at asgr.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):6)
    at wwq.c(:com.google.android.gms@221820044@22.18.20 (190400-451484765):6)
    at wwq.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):7)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at xbv.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):0)
    at java.lang.Thread.run(Thread.java:920)
    Suppressed: cdha:
        at tk_trace.nearby_en-ExposureNotificationInternalChimeraService_onStartCommand(Unknown Source:0)
        at tk_trace.location_base-NetworkLocationChimeraService_onBind(Unknown Source:0)
Code:
FATAL EXCEPTION: highpool[3]
Process: com.google.android.gms.persistent, PID: 25815
java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@4df42736: AdapterService getScanMode
    at android.os.Parcel.createExceptionOrNull(Parcel.java:2426)
    at android.os.Parcel.createException(Parcel.java:2410)
    at android.os.Parcel.readException(Parcel.java:2393)
    at android.os.Parcel.readException(Parcel.java:2335)
    at android.bluetooth.IBluetooth$Stub$Proxy.getScanMode(IBluetooth.java:2797)
    at android.bluetooth.BluetoothAdapter.getScanMode(BluetoothAdapter.java:1608)
    at asal.a(:com.google.android.gms@221820044@22.18.20 (190400-451484765):4)
    at com.google.android.gms.nearby.exposurenotification.service.ExposureNotificationInternalChimeraService.a(:com.google.android.gms@221820044@22.18.20 (190400-451484765):140)
    at asgr.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):6)
    at wwq.c(:com.google.android.gms@221820044@22.18.20 (190400-451484765):6)
    at wwq.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):7)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at xbv.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):0)
    at java.lang.Thread.run(Thread.java:920)
    Suppressed: cdha:
        at tk_trace.nearby_en-ExposureNotificationInternalChimeraService_onStartCommand(Unknown Source:0)
        at tk_trace.location_base-NetworkLocationChimeraService_onBind(Unknown Source:0)

Wenige Einträge dahinter dann diese beiden Meldungen vom Typ "I"
Code:
Process com.google.android.gms.persistent (pid 25815) has died: fg  BTOP
Code:
Killing 25602:com.duckduckgo.mobile.android/u0a231 (adj 0): depends on provider com.google.android.gms/.fonts.provider.FontsProvider in dying proc com.google.android.gms.persistent (adj -10000)
Danach noch eine Warnung:
Code:
IGmsServiceBroker.getService failed
android.os.DeadObjectException
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:571)
    at wik.gf(:com.google.android.gms@221820044@22.18.20 (190400-451484765):5)
    at wgq.y(:com.google.android.gms@221820044@22.18.20 (190400-451484765):13)
    at vpy.run(:com.google.android.gms@221820044@22.18.20 (190400-451484765):5)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at amoz.ki(:com.google.android.gms@221820044@22.18.20 (190400-451484765):0)
    at amoz.dispatchMessage(:com.google.android.gms@221820044@22.18.20 (190400-451484765):11)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.os.HandlerThread.run(HandlerThread.java:67)
Und weiter danach eine ganze Reihe Warnungen vom ActivityManager "Scheduled restart of crashed service" zu verschiedensten ...gms/* Diensten.

Allgemein konnte ich in den Logs auch nachverfolgen, dass der DuckduckGo Browser eine Webview Instanz startet.
 
Zuletzt bearbeitet:
Spike S. schrieb:
Wusstest du die Paketnamen aus dem Kopf?
Nein, nein. :-) Hatte Bromite schon drauf und die beiden anderen habe ich schnell aus dem Play Store installiert.

Logcat zeigt wieder nur die Play Services und das Problem mit Bluetooth. Die Meldung bzgl. duckduckgo ist nur ein Service, der gekillt wurde
 
Okay, dann bin ich beruhigt 😁

Ich hab ja jetzt nur das offensichtliche im Blick, hatte auch gefiltert. Problem ist, so ein Log möchte ich nicht gern in fremde Hände geben, da steht ja doch eine ganze Menge drin.

Hast du eventuell ein paar Stichworte nach denen ich suchen könnte?

Noch ein anderer Gedanke, warum crashen die GMS Dienste so, das andere Dienste gekillt werden? Google empfiehlt doch den Appentwicklern im Store auch immer, dass die Apps möglichst auch ohne Berechtigungen laufen sollen. Eine Exception ist doch aber eine unbehandelte Ausnahme 🤔

Und noch Dank an dich, dass du mich hier so führst @siggi%%44
 
  • Gefällt mir
Reaktionen: siggi%%44
Spike S. schrieb:
Noch ein anderer Gedanke, warum crashen die GMS Dienste so, das andere Dienste gekillt werden
Du wirst bei Android kein Log finden, das frei von Exceptions, Errors oder Warnings ist. Andauernd wird was gekillt und neu geöffnet. Nur wegen einer Meldung musst du dir keinen Kopf machen. Ein richtiger Fehler zieht min. 10 Meldungen nach sich.

Spike S. schrieb:
so ein Log möchte ich nicht gern in fremde Hände geben, da steht ja doch eine ganze Menge drin.
Das ist eine vernünftig Einstellung. Aber persönliche Daten wird man darin nicht finden. Nur die Nutzung des Gerätes und was genutzt wurde. Inhaltlich ist aber nichts dort festgehalten.


Spike S. schrieb:
Hast du eventuell ein paar Stichworte nach denen ich suchen könnte
Hast du ein Problem mit einer App, kannst du nur sinnvoll nach Paketnamen suchen. Wäre es z.B. eine Geräteeinstellung, würdest du auch nach com.android.settings suchen, also der Paketname. Sonst käme unter bestimmten Umständen noch ein Dateiname oder spezieller Dienst in Frage.
 
Das da etliche Fehler, Warnungen usw. in die Logs geschrieben werden, hatte mich schon unter GrapheneOS schockiert. Dort hatte ich nach einem Absturz von einem Spiel gesucht. Es stellte sich dann aber als eine Speicherzugriffsverletzung heraus, die der Entwickler beheben muss. Unter GrapheneOS ist die Speicherverwaltung restriktiver, nicht so larifari wie bei normalen Androiden. Der Support hatte natürlich noch nie was davon gehört und ich war dann schon wieder auf Stock und konnte so keine weiteren Infos liefern...
Auf jeden Fall hab ich dabei gesehen, dass dieses Spiel auch einfach mal eine Menge Debug Meldungen mit Geräteinfos produziert 🙄
Und wer weiß was andere Apps so ins Log schreiben.

Android macht es einem schwer die Kontrolle zu behalten...

Ich wüsste jetzt auch nicht wonach ich noch suchen sollte, es kann ja theoretisch auch an einem Nebeneffekt liegen, der in den Logs nicht im direkten Zusammenhang steht.
Hättest du Zeit und Lust mal über das Logcat zu schauen?
 
Spike S. schrieb:
Android macht es einem schwer die Kontrolle zu behalten...
Die Logs sind aber schon um einiges besser als z.B. bei Windows. Wenn man endlich grob den Überblick hat wie Android/Linux hinter den Kulissen funktioniert, dann geht es eigentlich.

Es ist nur wichtig zu wissen, dass die Logs im Grunde nur das Betriebssystem wiedergeben. Viele Prozesse oder Abläufe einzelner Apps sind dort nicht zu finden. Du siehst nur die Schnittstellen mit Systemkomponenten. Beispiel: Man kann sehen, welche App gestartet wird oder wenn der Screen innerhalb der App wechselt, weil ein Menü aufgerufen wird. Du wirst aber niemals im Log sehen, was du in diesem Menü machst und welche Buttons betätigt werden.

Spike S. schrieb:
Hättest du Zeit und Lust mal über das Logcat zu schauen?
Kein Problem, kann ich gerne machen. Aber Logcat ohne Root ist sehr begrenzt, was die Informationen angeht.
 
Zurück
Oben