Passer manuellement de ART à Dalvik

21

Je voulais essayer le nouveau runtime ART, mais je ne savais pas que ma ROM personnalisée ne le supportait pas. Alors maintenant, je reçois des messages récurrents Force Closed après le démarrage et je ne peux pas accéder au menu des paramètres pour revenir à Dalvik. Donc, avant de tout effacer et de passer des heures à configurer mon téléphone à partir de zéro, existe-t-il un moyen de revenir manuellement à Dalvik à partir du menu de récupération? Je pense qu'il devrait y avoir un drapeau quelque part, qui indique à Android de faire la «recompilation» après un redémarrage.

Via le menu de récupération, j'ai un accès root complet sur un shell adb et je peux monter tous les systèmes de fichiers.

David B.
la source
J'ai eu un problème avec ART sur une ROM 4.4.4 d'origine. Quelques jours après avoir quitté dalvik, j'étais coincé dans une boucle de démarrage avec adb logcat montrant beaucoup d'erreurs de plantage, y compris `art / runtime / runtime.cc: 203] Arrêt du runtime ... En revenant à dalvik, j'ai dû redémarrer dans la récupération et utilisez la commande echo pour revenir à dalvik. Cela a résolu le problème
Stan Kurdziel

Réponses:

18

Je viens de faire ça!

/data/property/persist.sys.dalvik.vm.libest un fichier texte contenant l'une des deux valeurs: 'libart.so' ou 'libdvm.so'. Vous pouvez passer de ART à Dalvik simplement en modifiant ce fichier.

Ex: shell adb 'echo libdvm.so> /data/property/persist.sys.dalvik.vm.lib'

mysteriousllama
la source
5
FWIW, faire "setprop persist.sys.dalvik.vm.lib libdvm.so" aurait le même effet - les propriétés "persist" sont persistées en les écrivant dans un fichier.
fadden
Lorsque cela m'est arrivé, je n'avais pas d'accès au shell adb pendant que Android fonctionnait. Cependant, j'ai pu redémarrer dans ClockworkMod Recovery, effacer ma partition de cache et le cache dalvik pour libérer de l'espace de stockage flash, monter ma partition / data, puis (enfin) utiliser le shell adb comme décrit dans cette réponse. Ouf!
ʇsәɹoɈ
J'ai essayé cela sur Android 5.0.1 (Omega V28) sur mon Galaxy S4 GT-I9500. Le dossier a été appelé /data/property/persist.sys.dalvik.vm.lib.2dans mon cas. Après le redémarrage, il est en quelque sorte revenu à "libart.so". Une idée pourquoi il fait ça et comment le changer définitivement?
EM0
Cela s'est produit même lorsque j'ai changé le contenu du fichier via le shell adb lors de la récupération. Il n'est donc pas écrasé à l'arrêt, mais au démarrage, semble-t-il.
EM0