Mis je die handige Android-app of wil je die leuke game van je smartphone ook op Linux spelen? Met Anbox is dat geen probleem. Je moet wat meer moeite doen dan op je mobieltje, maar dan ben je ook niet meer gebonden aan een klein touchscreen. Desnoods speel je de game fullscreen of gebruik je het toetsenbord voor je app.
Door: Serge Gielkens.
Er bestaan verschillende manieren om Android apps op een desktopsysteem te draaien. Wellicht het meest voor de hand liggend is een emulator. Dat komt neer op een gevirtualiseerde omgeving van je mobieltje. Omdat die een ARM-processor gebruikt in plaats van Intel of AMD, kost dat veel rekenkracht. De instructies moeten immers constant vertaald worden tussen beide architecturen.
Anbox doet dat juist niet en de apps praten direct met de Linux-kernel van je PC. Daarvoor gebruikt Anbox LXC, dat wil zeggen Linux Containers. De container voorziet in de Android runtime omgeving met bijbehorende directorystructuur. Daarnaast zorgt die er meteen voor dat de Android-apps geïsoleerd draaien van de rest van je applicaties. Dat verhoogt dus de veiligheid. Doordat LXC-onderdeel is van de standaard kernel, hoef je daarvoor geen extra software te installeren.
Hoewel voor de containers niks geregeld hoeft te worden, heeft Anbox wel twee kernelmodules nodig die specifiek zijn voor Android. Die zijn niet standaard aanwezig op je systeem. Gelukkig is de installatie niet moeilijk voor Mint en Ubuntu. Daarvoor heb je namelijk een PPA-repository. Voeg die als volgt toe:
sudo add-apt-repository ppa:morphis/anbox-support
Update de lijst met beschikbare pakketten:
sudo apt-get update
En installeer vervolgens de kernel headers en modules:
sudo apt-get install linux-headers-generic anbox-modules-dkms
De kernelmodules worden nu ter plekke voor je gebouwd via DKMS. Dit systeem zorgt ervoor dat de modules overeenstemmen met de kernelversie op je systeem. Bovendien hoef je bij een update niks meer te doen. DKMS zorgt er automatisch voor dat voor de nieuwe kernel de benodigde modules opnieuw gebouwd worden.
De kernelmodules voor Anbox worden automatisch ingeladen bij een herstart van je systeem. Handmatig doe je dat nu als volgt:
sudo modprobe ashmem_linux
sudo modprobe binder_linux
Je vindt nu twee extra bestanden in de directory /dev, namelijk /dev/ashmem en /dev/binder.
Anbox is niet aanwezig in de officiële repositories van de bekende distributies. Als je Ubuntu 18.10 of later gebruikt, vind je daar toch het pakket anbox-installer. Deze manier van installeren wordt echter niet meer ondersteund en daarom raden we het gebruik van dit pakket af. Anbox is namelijk overgegaan op het pakketbeheersysteem snap. Pakketten heten hier snaps en die bevatten alles wat de applicatie nodig heeft om te draaien. Daardoor zijn snaps niet distributieafhankelijk.
Snap is voor alle populaire distributies beschikbaar. Op Ubuntu is dit zelfs als sinds versie 16.04 standaard aanwezig op je systeem. Dat komt omdat Ubuntu aan de wieg stond van dit pakketbeheersysteem. Op andere distributies moet je daartoe het pakket snapd installeren. Op Mint bijvoorbeeld doe je dat als volgt:
sudo apt-get install snapd
Om de installatie af te ronden is een herstart van je systeem nodig, of je logt uit en dan meteen weer in. Installeer tenslotte Anbox:
sudo snap install --devmode --beta anbox
De optie devmode geeft aan dat de snap niet als geïsoleerde applicatie draait, maar toegang heeft tot je systeem net als een gewoon pakket. Let wel, het gaat hier om de Anbox applicatie zelf, niet om de Android-apps die je straks gaat beheren via Anbox. Met de optie beta bepaal je dat je de beta-versie wil hebben. Anbox levert namelijk nog geen stabiele versies. Om de Anbox snap te updaten tik je het volgende in:
sudo snap refresh --devmode --beta anbox
Zodra Anbox een stabiele versie uitbrengt, zijn de opties beta en devmode niet meer nodig. Updates worden dan automatisch uitgevoerd, zodat je het commando refresh zelfs niet meer hoeft uit te voeren. Om Anbox van je systeem te verwijderen doe je het volgende:
sudo snap remove anbox
Hoewel Anbox nu gereed staat, bleek dat we op Mint eerst moesten uit- en inloggen, voordat Anbox in het startmenu verscheen. Je vindt hem daar vervolgens als Anbox Application Manager onder de optie Other. Natuurlijk kun je Anbox ook meteen via de commandoregel starten. Daartoe gebruik je het volgende commando:
anbox.appmgr
Je ziet dan in een venster een aantal standaard apps staan, waaronder een kalender en een beheerder voor je contacten. Merk op dat je niet hoeft te dubbelklikken om een dergelijke app op te starten. Een enkele klik volstaat, net als op je mobiel. In tegenstelling tot je smartphone echter verschijnen geopende apps als aparte vensters. In dat opzicht lijkt het weer op de window manager van je desktop. Scrollen met je muisknop werkt overigens niet. Je moet de linkermuisknop ingedrukt houden en dan de muis naar beneden of boven bewegen. Dit komt overeen met het swipen op je mobieltje.
Er mist wel een belangrijke app die je van Android gewend bent. Dat is de Google Play Store om andere apps te installeren. Dat komt omdat Google niet toestaat dat deze app gedistribueerd wordt op niet gecertificeerde apparaten. Helaas moet je daarom apps uit de Play Store eerst downloaden en dan zelf installeren.
Android-apps zijn niets anders dan pakketten. In plaats van de extensie deb of rpm hebben die apk. Dat staat voor Android Package. Om apps te downloaden van de Play Store heb je een extensie voor je browser nodig. Voor Firefox bijvoorbeeld ga je rechtsboven in het hamburgermenu naar Add-ons. Tik dan in het zoekveld apk downloader in en druk op Enter. In een nieuw tabblad krijg je dan de lijst met resultaten te zien.
Nu moet je oppassen welke extensie je gaat gebruiken. Sommige zijn namelijk bedoeld om apk-pakketten voor je mobiele telefoon uit de Play Store te downloaden. Je mobieltje gebruikt echter andere hardware dan je PC. Op je smartphone draait namelijk een ARM-processor in plaats van Intel of AMD. Zoals je aan het begin van dit artikel las, draaien bij Anbox de apps echter rechtstreeks op je Intel of AMD. Daardoor werken apps bedoeld voor je mobieltje niet op Anbox.
Je hebt dus een extensie nodig die je de keuze geeft voor welke hardware je het apk-pakket wil gebruiken. Je kunt dat alleen achterhalen door de informatie over de betreffende extensie erop na te slaan. Als voorbeeld gebruiken wij hier als add-on de APK Downloader van APKCombo. Die vind je bijna helemaal bovenaan in de resultaatlijst. Selecteer die en klik dan op de blauwe knop Add to Firefox. Je vindt nu helemaal rechtsboven in Firefox een klein icoontje van APKCombo.
Klik daarop en er verschijnt een nieuw tabblad. Hier kies je nu helemaal bovenaan de juiste architectuur. Alle moderne laptops zijn tegenwoordig 64 bits. Vink daarom de optie x86_64 aan. Geef daarna in het zoekveld eronder de naam op van je pakket en klik op Search. Selecteer in de lijst van resultaten het juiste pakket. Scroll helemaal naar beneden en klik tot slot op Download APK.
Als je toch liever via de Google Play Store zoekt, ga je eerst naar de website hiervan. De link staat aan het einde van dit artikel. Kies linksboven in het menu op Apps en zoek hier naar je app. Selecteer hem en klik vervolgens op het icoontje van APKCombo. Hetzelfde venster als hierboven verschijnt. Je moet nog wel even als architectuur x86_64 aanvinken alvorens op de downloadknop te drukken.
Normaal gesproken installeer je op je smartphone een APK-bestand automatisch via de Google Play Store. Om een los pakket te installeren, zoals nu, heb je een tool nodig. Dat is de Android Debug Bridge, kortweg adb. Android ontwikkelaars gebruiken dit om hun programma’s op een device te installeren en te testen. Wij hebben het nodig om de APK-file op Anbox te installeren.
De tool adb vind je bij alle bekende distributies terug in de officiële repositories. Alleen de naamgeving varieert wat. Bij Fedora is het Android-tools, terwijl je bij Mint het pakket Android-tools-adb moet installeren:
sudo apt-get install android-tools-adb
Ga nu op de commandoregel naar de directory waar je de APK-file opgeslagen hebt. Installeer dan dit pakket in Anbox door:
adb install <je_apk>
Je hoeft geen sudo te gebruiken. De app verschijnt terstond in het venster van Anbox. Klik erop en ga met je favoriete Android-app of game aan de slag op Linux.
Om een pakket te verwijderen gebruik je wel gewoon Anbox. Klik in het hoofdvenster op Settings en vervolgens opApps. Selecteer de te verwijderen app. Je komt nu in het informatievenster van de app. Klik hier tenslotte op UNINSTALL. Merk op dat je de standaard apps zoals de kalender niet kunt verwijderen. Dat is te vergelijken met de voorgeïnstalleerde apps op je mobieltje.
Behalve de officiële Play Store van Google heb je ook tal van andere sites met APK-pakketten. Een populaire is bijvoorbeeld APKMirror. Voor deze site heb je geen add-on voor je browser nodig, maar kun je de APK-file gewoon rechtstreeks downloaden. Lang niet alle pakketten zijn hier overigens als variant voor x86_64 beschikbaar. Verder moet je altijd nagaan hoe betrouwbaar pakketten van derden zijn. Hoewel Anbox een container voor het draaien van de apps gebruikt, blijven veiligheidsrisico’s aanwezig.
Het installeren van Anbox is niet bijzonder moeilijk, maar je moet wel een aantal stappen doorlopen. Hoewel Google Play Store niet beschikbaar is voor Anbox, is het installeren van een app evenmin lastig. Het komt feitelijk neer op de handmatig installatie van een gedownload pakket en dat werkt voor Anbox niet anders dan bij Linux. Zo heb je toch op je distro de beschikking over je favoriete Android apps en games.