Ejecutar software de Android ARM en Linux x86

Dado mi reciente migración completa a Arch como distribución principal, una de mis prioridades fue la de ejecutar mi juego de monitas chinas “favorito”, que solo existe para dispositivos moviles. En windows era algo simple lograrlo usando programas como Bluestacks, que da una maquina virtual con todo lo que necesitaba. Al buscar algo similar en linux me encontré con waydroid, que ejecuta android en contenedores, y que solo funciona en wayland.
Grande fue mi sorpresa al ir leyendo la documentación y descubrir que waydroid solo puede ejecutar software que se haya construido para la misma arquitectura que la del sistema host. Es decir, solo podia instalar y usar programas en Android que tuviesen versiones para x86. Claro que eso no me iba a detener, era obvio que debia existir una manera de ejecutar el software que solo tuviese versiones para ARM, despues de todo si en windows podia, por qué en linux no?
Con eso empezó mi busqueda de nuevo conocimiento. Lo primero con lo que me topé fue con la propuesta de usar Android Studio, que ofrece imagenes con soporte para ARM, pero el rendimiento era terrible. Poco despues encontré la solución que necesitaba.

libhoudini, traducción de ARM a x86

De repente, en un foro de reddit (donde más) alguien recomendaba un script que modificaba una instalación ya existente de waydroid para darle soporte a aplicaciones ARM en x86.
Como pueden ir intuyendo, el script agrega la libreria mencionada.
Libhoudini es una libreria no libre (ni siquiera llega a codigo abierto, pero de momento es lo que hay) desarrollada principalmente por Intel, comenzando en las epocas en las que los procesadores Atom buscaban competir en el entonces emergente mercado movil. En tiempos más recientes, tambien se usó en el no tan exitoso subsistema de windows para android.
Basicamente traduce codigo maquina ARM en tiempo de ejecución (podrán imaginar que el rendimiento no es precisamente el mejor)


Pero a pesar del no tan buen rendimiento, la cosa funciona más o menos bien para mis propositos, el juego no crashea más de como ya lo hace de manera normal.

No he probado usar cosas como WhatsApp, pero en un principio, con un poco de suerte podría funcionar.


Para quien le interese puede encontrar el script aquí.
Incluye alguna que otra cosa más o menos interesante para quienes usen waydroid.


PD: si quieren saber sobre el juego, les hago un favor al no decirles nada, ni esta tan bueno… malditos gachas…

2 Me gusta

¡Hola!
Una vez yo intenté instalar Waydroid para poder jugar Roblox en Arch (ahora pues ya no lo necesito porque migré 100% al software open-source) pero si no mal me acuerdo habían dos bibliotecas para poder ejecutar programas Android compilados en ARM en x86:

  • Libhoudini: (el que te haz dado cuenta que está)
  • Libndk: muchos lo recomiendan para procesadores AMD

aparte también podés instalar otras utilidades con ese mismo script, como MicroG que es básicamente una alternativa open-source del Google Mobile Services.