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

Estaba investigando un par de archivos de lápidas de Android de un viejo teléfono Samsung con Marshmallow. Encontré un accidente en cada uno con el mismo culpable, dex2oat.

Desde mi comprensión limitada, es un compilador que toma argumentos de Android Runtime y convierte dexarchivos a oatformatos optimizados para Android.

Me encontré con el mismo problema incluso si reiniciaba de fábrica o congelaba muchas aplicaciones. Tengo este dispositivo rooteado y decidí dar un paso arriesgado. Primero hice una copia de seguridad y eliminé dex2oatde /system/bin. Luego reinicié el sistema con riesgo de bloquearlo.

Hasta ahora está funcionando bien.

Debido a mi falta de comprensión, no sé cuán crucial es esto dex2oatpara la estabilidad del sistema y quiero saber cuál es el impacto en él.

ART también se ejecuta en dexmodo intérprete o compilador JIT. Por lo tanto, la compilación AOT no es necesariamente necesaria, pero puede afectar el rendimiento. Además, los procesos (como installd) relacionados con dex2oatel binario pueden fallar si falta el binario, por ejemplo, en una nueva instalación de aplicación o en la actualización del perfil de aplicaciones instaladas anteriormente.

Respuestas (1)

Runtime 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 código de bytes Dalvik Executable (DEX) (desde apkarchivos) 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 justo a tiempo (JIT)
  • Compilación antes de tiempo (AOT)

Para mejorar el rendimiento, los compiladores JIT y AOT traducen el código de bytes DEX (durante o antes de la ejecución, respectivamente) al lenguaje de máquina nativo. El compilador JIT era parte de DVM, agregado a ART en Android 7. Desde entonces, el compilador AOT también es compatible con la compilación en segundo plano guiada por perfiles. Los perfiles de aplicaciones se crean durante las ejecuciones compiladas JIT.

Si bien el intérprete es parte de las bibliotecas ART, dex2oatla herramienta se usa como compilador JIT y AOT. La documentación dice:

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

Y aquí :

JIT y AOT usan el mismo compilador con un conjunto similar de optimizaciones

En su Marshmallow ROM, la compilación AOT no funcionará en ausencia de dex2oatla cual puede afectar negativamente el rendimiento de las aplicaciones. Además, el installdservicio nativo y PackageManagerel servicio de Java dependen dex2oatdurante la instalación de la aplicación o la actualización del perfil de las aplicaciones instaladas previamente. Por lo tanto, pueden romperse debido a la falta de un archivo.

Para resumir, installdlos dex2oatbloqueos son errores graves en su ROM que deben corregirse. La eliminación de dex2oatbinarios no es una solución, sino una solución alternativa que es muy probable que falle.


RELACIONADO: