Viele Nutzer sind sehr auf ihr Smartphone angewiesen und benötigen überhaupt ein funktionierendes Gerät. . Es kann jedoch vorkommen, dass Geräte immer wieder neu starten, was dazu führt, Support-Tickets oder Garantieanfragen einreichen. Dieser Vorgang ist frustrierend für und teuer für Gerätehersteller und Mobilfunkanbieter.
Android 8.0 enthält eine Funktion, die eine „Rettungsparty“ sendet wenn es feststellt, in Absturzschleifen hängen geblieben sind. Rescue Party eskaliert dann durch eine Reihe von Aktionen, um das Gerät wiederherzustellen. Als letzte Option: Rescue Party startet das Gerät im Wiederherstellungsmodus neu und fordert den Nutzer auf, das Gerät auf die Werkseinstellungen zurückzusetzen zurückgesetzt werden.
Diese Rettungsfunktionen sind für die Android-App Kompatibilitätsdefinitionsdokument, kann aber trotzdem nützlich sein, um die Anzahl der Supportanfragen zu reduzieren.
Implementierung
Rescue Party ist in Android 8.0 standardmäßig aktiviert und die Implementierung erfolgt in
/services/core/java/com/android/server/RescueParty.java
Rescue Party erhält Informationen zu Boot- und Absturzereignissen und startet in folgenden Fällen:
- Der Systemserver wird in fünf Minuten mehr als fünfmal neu gestartet.
- Eine persistente System-App stürzt innerhalb von 30 Sekunden mehr als fünfmal ab.
Wenn eine dieser Situationen erkannt wird, eskaliert die Rettungspartei verarbeitet die mit diesem Level verknüpfte Aufgabe und lässt das Gerät fahre fort, um zu sehen, ob sich das Problem erholt. Mit jedem Level wird die was gelöscht oder zurückgesetzt wird. Auf der letzten Ebene wird der Nutzer aufgefordert, .
Für die Unterstützung von Rescue Party ist kein spezieller Hardware-Support erforderlich. Bei der Implementierung
muss das Wiederherstellungssystem des Geräts
--prompt_and_wipe_data
-Befehl und Geräte müssen
Nutzern eine Möglichkeit bieten, die Vernichtung von Nutzerdaten zu bestätigen, bevor
fortfahren. Das Wiederherstellungssystem sollte dem Nutzer auch die Möglichkeit geben,
versuchen, das Gerät neu zu starten.
Weil jedes Rettungslevel bis zu 5 Minuten dauern kann, bevor ein Gerät betriebsbereit ist Gerätehersteller sollten keine benutzerdefinierten Rettungsstufen hinzufügen. Mehr Zeit mit einem nicht funktionierenden Gerät erhöht die Wahrscheinlichkeit, dass die Nutzenden eine Anfrage zur beschränkten Garantie stellen, anstatt das Gerät selbst zu reparieren.
Zertifizierungsstufe
Wenn auf dem Gerät USB-Daten aktiv sind, werden alle Rettungsereignisse unterdrückt da dies ein starkes Signal dafür ist, dass jemand das Gerät debuggt.
Führen Sie folgenden Befehl aus, um diese Unterdrückung zu überschreiben:
adb shell setprop persist.sys.enable_rescue 1
Von dort aus können Sie eine System- oder UI-Absturzschleife auslösen.
Führen Sie folgenden Befehl aus, um eine Low-Level-system_server
-Absturzschleife auszulösen:
adb shell setprop debug.crash_system 1
Führen Sie folgenden Befehl aus, um eine SystemUI-Absturzschleife mittlerer Ebene auszulösen:
adb shell setprop debug.crash_sysui 1
Beide Absturzschleifen initiieren die Rettungslogik. Alle Rettungseinsätze sind ebenfalls
in den persistenten PackageManager-Protokollen protokolliert, die unter
/data/system/uiderrors.txt
zur späteren Prüfung und Fehlerbehebung.
Diese permanenten Protokolle sind auch in jedem Fehlerbericht im Paket
„Warnmeldungen“ .