从ART手动切换到Dalvik


21

我想尝试新的ART运行时,但是没有意识到我的自定义ROM不支持它。因此,现在启动后,我会收到反复出现的“强制关闭”消息,并且无法进入设置菜单以切换回Dalvik。因此,在擦除所有内容并花费数小时从头开始设置手机之前,是否有办法从恢复菜单手动更改回Dalvik?我认为应该在某处标记,指示Android在重新启动后进行“重新编译”。

通过恢复菜单,我可以通过adb shell进行完全root访问,并且可以挂载所有文件系统。


我在库存4.4.4 ROM上的ART有问题。从dalvik切换几天后,我陷入了adb logcat的启动循环,显示了很多崩溃错误,包括`art / runtime / runtime.cc:203]运行时中止...切换回dalvik,我不得不重新启动恢复,并使用echo命令切换回dalvik。解决了这个问题
Stan Kurdziel

Answers:


18

我就是这样做的!

/data/property/persist.sys.dalvik.vm.lib是一个文本文件,包含以下两个值之一:'libart.so'或'libdvm.so'。您只需编辑此文件,即可从ART更改为Dalvik。

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


5
FWIW,执行“ setproppersist.sys.dalvik.vm.lib libdvm.so”将具有相同的效果-通过将“ persist”属性写入文件来保留它们。
fadden

当这发生在我身上时,我在运行Android时无法访问adb shell。但是,我能够重新启动到ClockworkMod Recovery,清除我的缓存分区和dalvik缓存以释放一些闪存存储空间,挂载我的/ data分区,然后按此答案所述(最终)使用adb shell。ew!
ʇsәɹoɈ

我在Galaxy S4 GT-I9500的Android 5.0.1(Omega V28)上尝试了此操作。/data/property/persist.sys.dalvik.vm.lib.2在我的情况下,该文件被调用。重新启动后,它以某种方式恢复为“ libart.so”。知道为什么这样做以及如何永久更改吗?
EM0

即使在恢复中通过adb shell更改文件内容时,也会发生这种情况。因此,它似乎不会在关机时被覆盖,而是在启动时被覆盖。
EM0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.