Cambiar manualmente de ART a Dalvik

21

Quería probar el nuevo tiempo de ejecución de ART, pero no me di cuenta de que mi ROM personalizada no lo admite. Así que ahora recibo mensajes recurrentes de Force Closed después del arranque, y no puedo acceder al menú de configuración para volver a Dalvik. Entonces, antes de borrar todo y pasar horas configurando mi teléfono desde cero, ¿hay alguna forma de cambiar manualmente a Dalvik desde el menú de recuperación? Creo que debería haber una bandera en alguna parte, que indique a Android que haga la 'recompilación' después de un reinicio.

A través del menú de recuperación, tengo acceso completo a la raíz sobre un shell adb y puedo montar todos los sistemas de archivos.

David B.
fuente
Tuve un problema con ART en un stock 4.4.4 ROM. Unos días después de cambiar de dalvik, me quedé atrapado en un bucle de arranque con adb logcat que muestra muchos errores de bloqueo, incluidos `art / runtime / runtime.cc: 203] Runtime aborting ... Volviendo a dalvik, tuve que reiniciar en recuperación y use el comando echo para volver a Dalvik. Eso solucionó el problema
Stan Kurdziel

Respuestas:

18

Acabo de hacer esto!

/data/property/persist.sys.dalvik.vm.libes un archivo de texto que contiene uno de dos valores: 'libart.so' o 'libdvm.so'. Puede cambiar de ART a Dalvik simplemente editando este archivo.

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

misteriosollama
fuente
55
FWIW, hacer "setprop persist.sys.dalvik.vm.lib libdvm.so" tendría el mismo efecto: las propiedades "persistir" persisten escribiéndolas en un archivo.
fadden
Cuando esto me sucedió, no tenía acceso a adb shell mientras se ejecutaba Android. Sin embargo, pude reiniciar en ClockworkMod Recovery, borrar mi partición de caché y dalvik cache para liberar espacio de almacenamiento flash, montar mi / partición de datos y luego (finalmente) usar adb shell como se describe en esta respuesta. ¡Uf!
ɈsәɹoɈ
Probé esto en Android 5.0.1 (Omega V28) en mi Galaxy S4 GT-I9500. El archivo fue llamado /data/property/persist.sys.dalvik.vm.lib.2en mi caso. Después de reiniciar, de alguna manera volvió a "libart.so". ¿Alguna idea de por qué está haciendo eso y cómo cambiarlo permanentemente?
EM0
Esto sucedió incluso cuando cambié el contenido del archivo a través de adb shell en recovery. Por lo tanto, no se sobrescribe en el apagado, sino en el arranque, parece.
EM0