Este tutorial sirve para las distribuciones Ubuntu y sus derivadas.
Hace tiempo que había escuchado hablar de Anbox, pero hasta hoy no me había puesto a probarlo. Así que he aprovechado para explicar como lo he hecho y compartirlo con vosotrxs.
Para empezar pegaré la definición de Wikipedia Anbox:
"Anbox es una capa de compatibilidad de código abierto y libre que tiene como objetivo permitir que programas (software de aplicación y juegos) desarrollados para Android se ejecuten en otros sistemas operativos basados en Linux."
Una de las características que más me ha interesado es que a diferencia de otros proyectos como Shashlik o Genimobile, Anbox ejecuta el sistema Android en el mismo kernel/núcleo que nuestro ordenador, sin la necesidad de emularlo como lo hacen los otros, todo se ejecuta directamente en el hardware.
Lo que he hecho para la instalación ha sido seguir los pasos de la documentación. Por lo tanto lo que os explicaré serán los pasos de la documentación y la solución a los problemas que me he encontrado.
Índice
Empezaremos instalando el paquete snapd, dado que Anbox sólo se distribuye oficialmente como paquete Snap:
1 |
sudo apt install snapd |
Una vez instalado, ya podemos empezar a instalar Anbox:
1 |
sudo snap install --devmode --beta anbox |
Quizás te estés preguntando el motivo del “--devmode”, esto es así porque el paquete snap de Anbox todavía no esta terminado. También por esto Anbox no se actualizará automáticamente y tendremos que actualizarlo con este comando:
1 |
sudo snap refresh --beta --devmode anbox |
Para que Anbox funcione, el kernel necesita unos módulos especiales de Anbox. Por ello, añadiremos el PPA de Anbox e instalaremos los módulos:
Si tienes un kernel que no es el predeterminado, instala el correspondiente paquete header para tu kernel.
1 2 3 |
sudo add-apt-repository ppa:morphis/anbox-support sudo apt update sudo apt install linux-headers-generic anbox-modules-dkms |
Ahora activamos los módulos:
1 2 |
sudo modprobe ashmem_linux sudo modprobe binder_linux |
Puede que al activar los módulos, nos salga un error como este:
1 |
modprobe: ERROR: could not insert 'ashmem_linux': Required key not available |
Para solucionarlo, debemos desactivar el Secure Boot desde la BIOS y volver a intentarlo.
Si todo ha salido bien, ejecutamos esto:
1 |
ls -1 /dev/{ashmem,binder} |
Y deberíamos tener una salida como esta:
Ahora reiniciamos.
Para instalar las aplicaciones utilizaremos ADB (herramienta para comunicarte con un emulador/dispositivo Android):
1 |
sudo apt install android-tools-adb |
Ahora sólo tendremos que descargar el APK de la aplicación que queramos instalar. F-Droid tiene un buen catalogo de aplicaciones libres. Yo he descargado unos cuantos APKs y los he instalado de la siguiente manera:
1 |
adb install mi_aplicacion.apk |
Lo mas seguro es que os salte este error o algo por el estilo:
1 2 3 4 |
* daemon not running. starting it now on port 5037 * * daemon started successfully * error: device not found - waiting for device - |
Esto es porque todavía no hemos iniciado Anbox y éste no esta disponible para la conexión ADB. Lo podemos iniciar como una programa cualquiera desde el menú de aplicaciones buscando ‘anbox’ o ejecutándolo desde el terminal:
1 |
anbox.appmgr |
Ahora ya sabemos instalar la aplicaciones mediante ADB. Las aplicaciones instaladas se añadirán automáticamente a Anbox.
Si lo que queremos es instalar las aplicaciones directamente sin comandos. Seguro que se os ha ocurrido instalar F-Droid y desde ahí utilizarla como si de un móvil se tratara.
Con todo lo que hasta aquí hemos aprendido, seguro que ya sabéis hacerlo solos. Sólo tenemos que descargar el APK de F-Droid, instalarlo vía ADB y con la aplicación instalada ya podemos instalar todas las aplicaciones que queramos haciendo clics 🙂 .
Este error lo encontramos al intentar iniciar Anbox
1 |
[daemon.cpp:59@Run] Application manager service is not running yet |
La solución fue reiniciar/iniciar el servicio tal y como nos dice el mensaje:
1 2 |
sudo snap stop anbox sudo snap start anbox |
Después de instalar unas 15 aplicaciones, tres de ellas al iniciarlas se quedan con la ventana en negro y una de ellas (SuperTuxKart) no me ha dejado instalarla debido a que no es compatible con la arquitectura del procesador de mi ordenador, me saltaba esto:
1 |
Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113] |
Para solucionarlo, podéis buscar en internet el error y encontraréis algo relacionado con libhoudini (es una capa para que los procesadores x86 puedan ejecutar ordenes para arquitecturas ARM). Cuando tenga tiempo miraré cómo solucionar este error, y quizás haga otro artículo o actualice éste. Si tenéis problemas, lo mas sencillo, es mirar si hay un APK de la aplicación para arquitecturas x86.
Por último, quiero remarcar que yo no he podido reproducir ni audio ni video con las aplicaciones de Anbox.
Si tenéis alguna duda podéis preguntar por los comentarios o por el grupo de Telegram de LiGNUx @liGNUx. Hasta pronto.