2 votos

¿Es seguro eliminar el archivo /system/bin/dex2oat?

Estaba revisando un par de archivos de lápidas de Android de un antiguo teléfono Samsung que ejecutaba Marshmallow. Encontré un fallo en cada uno con el mismo culpable, dex2oat.

Según mi limitado entendimiento, es un compilador que toma argumentos de Android Runtime y convierte archivos dex en unos optimizados para Android en formato oat.

Me topé con el mismo problema incluso si restauraba los valores de fábrica o congelaba muchas aplicaciones. Tengo este dispositivo rooteado y decidí tomar un paso arriesgado. Primero hice una copia de seguridad y eliminé dex2oat de /system/bin. Luego reinicié el sistema con el riesgo de brickearlo.

Hasta ahora está funcionando bien.

Debido a mi falta de entendimiento, no sé qué tan crucial es este dex2oat para la estabilidad del sistema y quiero saber cuál es su impacto en él.

1 votos

ART también se ejecuta en modos de intérprete dex o compilador JIT. Por lo tanto, la compilación AOT no es necesariamente requerida pero puede afectar el rendimiento. Además, los procesos (como installd) involucrados con el binario dex2oat pueden fallar si el binario está ausente, por ejemplo, en una nueva instalación de aplicación o en una actualización de perfil de aplicaciones previamente instaladas.

0voto

Jack Wade Puntos 231

El tiempo de ejecución es un entorno en el que se ejecutan programas escritos en un lenguaje específico. Android Runtime (ART) es un tiempo de ejecución similar a Java que ejecuta el bytecode ejecutable de Dalvik (DEX) (desde archivos apk) en una Máquina Virtual. Al igual que otros entornos de ejecución, ART puede ejecutar el código en tres modos diferentes:

  • Interpretación
  • Compilación Just-in-Time (JIT)
  • Compilación Ahead of Time (AOT)

Para mejorar el rendimiento, los compiladores JIT y AOT traducen el bytecode DEX (durante o antes de la ejecución, respectivamente) a lenguaje máquina nativo. El compilador JIT formaba parte de DVM, y fue agregado nuevamente a ART en Android 7. Desde entonces, el compilador AOT también admite la compilación en segundo plano guiada por perfiles. Se crean perfiles de aplicaciones durante las ejecuciones compiladas por JIT.

Mientras que el intérprete forma parte de las bibliotecas de ART, la herramienta dex2oat se utiliza como compilador JIT y AOT. La documentación afirma:

En el momento de la instalación, ART compila aplicaciones utilizando la herramienta dex2oat en el dispositivo. Esta utilidad acepta archivos DEX como entrada y genera un ejecutable de aplicación compilado para el dispositivo de destino.

Y aquí:

Tanto JIT como AOT utilizan el mismo compilador con un conjunto similar de optimizaciones

En tu ROM Marshmallow, la compilación AOT no funcionará en ausencia de dex2oat, lo que puede afectar negativamente el rendimiento de las aplicaciones. Además, el servicio nativo installd y el servicio Java PackageManager dependen de dex2oat durante la instalación de la aplicación o la actualización del perfil de aplicaciones previamente instaladas. Por lo tanto, podrían dejar de funcionar debido a la falta del archivo.

En resumen, los errores de installd o dex2oat son problemas graves en tu ROM que deben solucionarse. Eliminar el binario dex2oat no es una solución, sino una solución temporal que muy probablemente fallará.


RELACIONADO:

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X