Ist das Löschen der Datei /system/bin/dex2oat sicher?

Ich habe mir ein paar Android-Tombstone-Dateien eines alten Samsung-Telefons angesehen, auf dem Marshmallow läuft. Fand einen Absturz in jedem einzelnen mit demselben Schuldigen, dex2oat.

Nach meinem begrenzten Verständnis ist es ein Compiler, der Argumente aus der Android-Laufzeit nimmt und dexDateien in Android-optimierte oatFormate konvertiert.

Ich bin auf das gleiche Problem gestoßen, selbst wenn ich viele Apps auf die Werkseinstellungen zurückgesetzt oder eingefroren habe. Ich habe dieses Gerät gerootet und mich für einen riskanten Schritt entschieden. Ich habe zuerst gesichert und dex2oatgelöscht /system/bin. Dann habe ich das System neu gestartet, mit dem Risiko, dass es gemauert wird.

Bisher funktioniert es gut.

Aufgrund meines Unverständnisses weiß ich nicht, wie wichtig dies dex2oatfür die Systemstabilität ist, und ich möchte wissen, welche Auswirkungen dies hat.

ART läuft auch im dexInterpreter- oder JIT-Compiler-Modus. Daher ist die AOT-Kompilierung nicht unbedingt erforderlich, kann sich jedoch auf die Leistung auswirken. installdAuch die mit Binärdateien verbundenen Prozesse (wie ) dex2oatkönnen abbrechen, wenn Binärdatei fehlt, z. B. bei einer neuen App-Installation oder bei einer Profilaktualisierung von zuvor installierten Apps.

Antworten (1)

Runtime ist eine Umgebung, in der Programme ausgeführt werden, die in einer bestimmten Sprache geschrieben sind. apkAndroid Runtime (ART) ist eine Java-ähnliche Laufzeit, die Dalvik Executable (DEX) Bytecode (aus Dateien) in einer virtuellen Maschine ausführt . Wie andere Laufzeitumgebungen kann ART den Code in drei verschiedenen Modi ausführen:

  • Deutung
  • Just-in-Time (JIT)-Kompilierung
  • Ahead of Time (AOT)-Zusammenstellung

Um die Leistung zu verbessern, übersetzen JIT- und AOT-Compiler DEX-Bytecode (während bzw. vor der Ausführung) in die native Maschinensprache. Der JIT-Compiler war Teil von DVM und wurde in Android 7 zu ART hinzugefügt . Seitdem unterstützt der AOT-Compiler auch die profilgeführte Hintergrundkompilierung. App-Profile werden während JIT-kompilierter Ausführungen erstellt.

Während der Interpreter Teil der ART-Bibliotheken ist, dex2oatwird das Tool als JIT- und AOT-Compiler verwendet. Dokumentation heißt es:

Bei der Installation kompiliert ART Apps mit dem geräteinternen dex2oat- Tool. Dieses Dienstprogramm akzeptiert DEX-Dateien als Eingabe und generiert eine kompilierte ausführbare App für das Zielgerät.

Und hier :

JIT und AOT verwenden denselben Compiler mit ähnlichen Optimierungen

Auf Ihrem Marshmallow-ROM funktioniert die AOT-Kompilierung nicht, da dies dex2oatdie Leistung der Apps beeinträchtigen kann. Auch der installdnative Dienst und der PackageManagerJava-Dienst verlassen sich dex2oatwährend der App-Installation oder Profilaktualisierung auf zuvor installierte Apps. Sie können also aufgrund fehlender Dateien brechen.

Zusammenfassend sind installdAbstürze dex2oatschwerwiegende Fehler in Ihrem ROM, die behoben werden müssen. Das Löschen von dex2oatBinärdateien ist keine Lösung, sondern eine Problemumgehung, die sehr wahrscheinlich fehlschlägt.


VERWANDT: