Anbox : un projet open source pour exécuter des applications Android sur des OS basés sur Linux
De manière native, sur PC et mobiles

Le , par Michael Guilloux, Chroniqueur Actualités
Simon Fels, un Lead Software Engineer chez Canonical travaillant sur Ubuntu Core vient de rendre open source un projet personnel qui vise à faire tourner des applications Android sur des distributions Linux de manière native.

Il existe déjà des projets qui permettent de lancer des applications Android sur un PC, mais il s’agit en général d’émulateurs. Il y a également des solutions comme Remix OS, une version personnalisée d’Android destinée à s’exécuter sur PC, et qui permet de lancer n’importe quelle application Android. Google a lui-même un projet similaire. On parlait tantôt de la possibilité de lancer des applications Android sur les Chromebook, tantôt de la possibilité de fusionner Android et Chrome OS pour donner naissance à un nouvel OS connu sous le nom de code Andromeda.

Le projet de Simon Fels est baptisé Anbox (pour Android in a Box) et est complètement open source. La majorité du code est sous licence GPLv3, et le reste sous licence Apache 2.0 pour des raisons de compatibilité avec le code emprunté à d'autres projets. Anbox utilise une approche de conteneur pour exécuter un système Android complet sur un système GNU/Linux standard comme Ubuntu.

Sur GitHub, il est expliqué qu’Anbox utilise des namespaces Linux pour exécuter un système Android complet dans un conteneur basé sur LXC. Le système Android à l'intérieur du conteneur n'a aucun accès direct au matériel, encore moins aux données du système hôte. Il utilise différents canaux pour communiquer avec le système hôte et envoie toutes les commandes d'accès matériel à travers ces canaux. Pour son projet, Simon Fels réutilise également une partie du code de l’implémentation de l’émulateur Android basé sur QEMU pour le rendu accéléré Open GL ES.

Lorsque vous installez Anbox pour la première fois, vous disposez de quelques applications Android de base telles que les applications Calculatrice, Contacts, Courrier électronique, Galerie et Fichiers. Il permet en principe d’exécuter n’importe quelle application Android. Il n’y a pas d’émulation requise. Anbox exécute Android sur le même noyau que le système hôte, ce qui assure une meilleure intégration des applications Android avec le système hôte.


Le processus d'installation comporte actuellement quelques étapes qui permettent d'ajouter des composants supplémentaires au système hôte. Pour rendre ce processus aussi simple que possible, les étapes nécessaires sont empaquetées dans un snap « anbox-installer ». Pour information, un snap est un package Linux universel, c'est-à-dire qui peut fonctionner sur n'importe quelle distribution et n'importe quel périphérique (IoT, serveurs, desktop, mobile, etc.). Le programme d'installation effectuera toutes les étapes nécessaires, mais Anbox ne peut donc être installé que sur des systèmes prenant en charge les snaps, donc éventuellement sur Ubuntu, Arch Linux, Debian, Fedora, OpenSUSE et plusieurs autres systèmes d'exploitation populaires basés sur Linux.

Anbox est actuellement adapté pour être utilisé sur des PC. Il a été officiellement testé sur Ubuntu 16.04, mais il est susceptible de fonctionner également sur Ubuntu 14.04, 16.10 et 17.04, comme il est indiqué sur GitHub. Après quelques modifications de la version actuelle, il peut aussi être utilisé sur les systèmes d'exploitation mobiles comme Ubuntu Touch, Sailfish OS ou Lune OS. « La preuve de concept initiale a en effet été effectuée sur un appareil Ubuntu Touch. Depuis lors, Anbox a évolué un peu et l'objectif principal de développement a été axé sur les dispositifs de bureau. Cependant, des expériences récentes montrent qu'Anbox fonctionne toujours bien (avec quelques réglages) sur les appareils mobiles basés sur Ubuntu Touch », explique Simon Fels.

Anbox est encore en version préalpha, avec donc des bogues et une certaine instabilité. Simon ouvre son projet pour se concentrer sur la stabilité et la correction des bogues, mais aussi ajouter plus de fonctionnalités nécessaires pour une meilleure intégration avec le système d'exploitation hôte.

Sources : Anbox.io, Blog personnel de Simon Fels, GitHub

Et vous ?

Que pensez-vous de ce projet ? Pour vous, qu’est-ce qu’il apporte de différent des alternatives existantes ?

Voir aussi :

Remix OS 2.0 : une version personnalisée d'Android exécutable sur PC ou sur un mini-ordinateur dédié de 70 $
Google annonce que tous les Chromebook de 2017 pourront lancer des applications Android, et met à jour la liste des anciens modèles compatibles
Andromeda : Google pourrait annoncer la fusion de Chrome OS et Android le 4 octobre, le système hybride serait en phase de test sur le Nexus 9


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de michel.bosseaux michel.bosseaux - Membre averti https://www.developpez.com
le 15/04/2017 à 15:45
Pas mal pas mal ... pouvoir faire mes tests d'appli android directement dans ma machine virtuelle ubuntu, ça va me simplifier la vie ^^
Avatar de hotcryx hotcryx - Membre émérite https://www.developpez.com
le 15/04/2017 à 21:42
Waw c'est du lourd, cherchons comment l'installer

Edit: la version est alpha et demande les droits root => j'ai préféré passer pour le moment, sur cette machine (petit sur le coup lol)

Sinon, faites un:
Code : Sélectionner tout
sudo snap install --classic anbox-installer
et ensuite:
Code : Sélectionner tout
anbox-installer
(pour commencer l'install)
Avatar de hotcryx hotcryx - Membre émérite https://www.developpez.com
le 15/04/2017 à 22:09
Voici la liste actuelle des applications disponibles (préinstallées):

Rem: un terminal est installé ainsi que Packageinstaller

<project path="packages/apps/BasicSmsReceiver" name="platform/packages/apps/BasicSmsReceiver" groups="pdk-cw-fs,pdk-fs" />
<project path="packages/apps/Bluetooth" name="platform/packages/apps/Bluetooth" groups="pdk-cw-fs,pdk-fs" />
<project path="packages/apps/Browser2" name="platform/packages/apps/Browser2" />
<project path="packages/apps/Calculator" name="platform/packages/apps/Calculator" groups="pdk-fs" />
<project path="packages/apps/Calendar" name="platform/packages/apps/Calendar" groups="pdk-fs" />
<project path="packages/apps/Camera2" name="platform/packages/apps/Camera2" groups="pdk-fs" />
<project path="packages/apps/CarrierConfig" name="platform/packages/apps/CarrierConfig" groups="pdk-fs" />
<project path="packages/apps/CellBroadcastReceiver" name="platform/packages/apps/CellBroadcastReceiver" groups="pdk-fs" />
<project path="packages/apps/CertInstaller" name="platform/packages/apps/CertInstaller" groups="pdk-cw-fs,pdk-fs" />
<project path="packages/apps/Contacts" name="platform/packages/apps/Contacts" groups="pdk-fs" />
<project path="packages/apps/ContactsCommon" name="platform/packages/apps/ContactsCommon" groups="pdk-fs" />
<project path="packages/apps/DeskClock" name="platform/packages/apps/DeskClock" groups="pdk-fs" />
<project path="packages/apps/DevCamera" name="platform/packages/apps/DevCamera" groups="pdk" />
<project path="packages/apps/Dialer" name="platform/packages/apps/Dialer" groups="pdk-fs" />
<project path="packages/apps/Email" name="platform/packages/apps/Email" groups="pdk-fs" />
<project path="packages/apps/EmergencyInfo" name="platform/packages/apps/EmergencyInfo" />
<project path="packages/apps/ExactCalculator" name="platform/packages/apps/ExactCalculator" groups="pdk-fs" />
<project path="packages/apps/Gallery" name="platform/packages/apps/Gallery" groups="pdk-fs" />
<project path="packages/apps/Gallery2" name="platform/packages/apps/Gallery2" groups="pdk-fs" />
<project path="packages/apps/HTMLViewer" name="platform/packages/apps/HTMLViewer" groups="pdk-fs" />
<project path="packages/apps/KeyChain" name="platform/packages/apps/KeyChain" groups="pdk-fs" />
<project path="packages/apps/Launcher2" name="platform/packages/apps/Launcher2" groups="pdk-fs" />
<project path="packages/apps/Launcher3" name="platform/packages/apps/Launcher3" groups="pdk-fs" />
<project path="packages/apps/LegacyCamera" name="platform/packages/apps/LegacyCamera" groups="pdk-fs" />
<project path="packages/apps/ManagedProvisioning" name="platform/packages/apps/ManagedProvisioning" groups="pdk-fs" />
<project path="packages/apps/Messaging" name="platform/packages/apps/Messaging" groups="pdk-fs" />
<project path="packages/apps/Music" name="platform/packages/apps/Music" groups="pdk-fs" />
<project path="packages/apps/MusicFX" name="platform/packages/apps/MusicFX" groups="pdk-fs" />
<project path="packages/apps/Nfc" name="platform/packages/apps/Nfc" groups="apps_nfc,pdk-fs" />
<project path="packages/apps/OneTimeInitializer" name="platform/packages/apps/OneTimeInitializer" groups="pdk-fs" />
<project path="packages/apps/PackageInstaller" name="platform/packages/apps/PackageInstaller" groups="pdk-fs" />
<project path="packages/apps/Phone" name="platform/packages/apps/Phone" groups="pdk-fs" />
<project path="packages/apps/PhoneCommon" name="platform/packages/apps/PhoneCommon" groups="pdk-cw-fs,pdk-fs" />
<project path="packages/apps/Protips" name="platform/packages/apps/Protips" groups="pdk-fs" />
<project path="packages/apps/Provision" name="platform/packages/apps/Provision" groups="pdk-fs" />
<project path="packages/apps/QuickSearchBox" name="platform/packages/apps/QuickSearchBox" groups="pdk-fs" />
<project path="packages/apps/SafetyRegulatoryInfo" name="platform/packages/apps/SafetyRegulatoryInfo" />
<project path="packages/apps/Settings" name="platform/packages/apps/Settings" groups="pdk-fs" />
<project path="packages/apps/SoundRecorder" name="platform/packages/apps/SoundRecorder" groups="pdk-fs" />
<project path="packages/apps/SpareParts" name="platform/packages/apps/SpareParts" groups="pdk-fs" />
<project path="packages/apps/SpeechRecorder" name="platform/packages/apps/SpeechRecorder" groups="pdk-fs" />
<project path="packages/apps/Stk" name="platform/packages/apps/Stk" groups="apps_stk,pdk-fs" />
<project path="packages/apps/StorageManager" name="platform/packages/apps/StorageManager" />
<project path="packages/apps/Tag" name="platform/packages/apps/Tag" groups="pdk-fs" />
<project path="packages/apps/Terminal" name="platform/packages/apps/Terminal" groups="pdk-fs" />
<project path="packages/apps/Test/connectivity" name="platform/packages/apps/Test/connectivity" />
<project path="packages/apps/TvSettings" name="platform/packages/apps/TvSettings" groups="generic_fs" />
<project path="packages/apps/TV" name="platform/packages/apps/TV" />
<project path="packages/apps/UnifiedEmail" name="platform/packages/apps/UnifiedEmail" groups="pdk-fs" />
Avatar de SurferIX SurferIX - Membre chevronné https://www.developpez.com
le 19/04/2017 à 19:27
Citation Envoyé par hotcryx  Voir le message
......
<project path="packages/apps/UnifiedEmail" name="platform/packages/apps/UnifiedEmail" groups="pdk-fs" />

Enfin du concret et du constructif, merci pour tout (+1 partout pour toi )
Offres d'emploi IT
Développeur .Net
SATELLIT - Belgique - Bruxelles
Ingénieur PHP (H/F)
ekino - Ile de France - Levallois Perret
Développeur .NET & Sharepoint F/H
Atos - Nord Pas-de-Calais - Lille/ Seclin (59000)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil