All people who have not analyzed the issue in depth have this doubt. If Android and Linux, why don’t Android Apps run on Desktop distros, like Debian, Ubuntu, Manjaro, Fedora, etc?
In addition to answering this question, today you will know the project Anbox, which has exactly this objective.
This week I received several messages about the Anbox, whether by email, Facebook, Twitter, the channel and even in person, believe it or not, that is, this software caught people’s attention for its proposal.
Abstracting the technical side, in short, Anbox allows you to run Android applications on your Linux desktop distribution in an “almost” native way.
Honestly, as long as it works well, I don’t care about the technical definition of native or not, the same goes for Wine with Windows Apps.
As I don’t like to just put things «out of the blue» here for you, I decided to do several tests before, but before we talk about it, let me answer the question raised at the beginning of the article. If Android is also Linux, why doesn’t your distro run the “little robot system” apps?
Let’s see from the image above that was taken directly Android website, what is your Desktop distro like with Android? If you looked at the red «brick», the Kernel, then you got it right.
If you follow Diolinux on the YouTube channel, on social networks, etc., you must have realized what the most repeated phrase must have been: «Linux is a kernel», nothing more. Well, in fact, that’s right, just to emphasize.
Linux distributions are operating systems (for desktops, smartphones, servers, IoT, etc.) that use the Linux Kernel as a project base. The so-called “Linux Desktop” follows a certain standard that goes beyond simply using the Linux Kernel only, but other libraries, tools, graphics servers, sound servers, are common among distros, so programs that run on Ubuntu usually run on Fedora, programs that run on Manjaro often run on openSUSE and so on. Many of these tools originate from the GNU project (and many others are not), like Bash itself, very popular in several distros (practically all), including even Apple’s macOS.
Android is different. It also uses the Linux Kernel, as well as its desktop distro, but what comes above the Kernel is that it is different from a common “Linux desktop” system. They are different libraries and frameworks, and since the kernel itself does not run at all (the function of the kernel is to create a “bridge” between applications and hardware), we have this incompatibility. The simple fact that Ubuntu and Android share the same type of kernel does not make them run the same type of application. Simply put, that’s basically it.
The Smartphones Kernel is also commonly built only with the device drivers and features that the Smartphone itself will have, looking to optimize the system and make it faster, which is why the Android that Samsung uses on the Galaxy you can install on the Moto Z, and vice versa, since this rule is valid for almost any manufacturer, I’m just giving an example.
It is the same thing that happens between macOS applications and systems with BSD Kernel, although Darwin (macOS kernel) has its roots in BSD, the “part that runs” the system’s applications is different, generating incompatibility.
Now comes the Anbox
Anbox is a very smart name and it expresses in a compact way the functioning of the project. Anbox, Android in a Box. Since the operation of the project consists of using a container to run the system.
When I first read about Anbox, I remembered the Shashlik, remember? But reading a little more about the project I ended up discovering that they work in very different ways.
While projects like Shashlik or others available for Linux to run Android Apps, like Genymotion (Genymobile), where an Android system with its own kernel is emulated and applications are run in this way, in the case of Anbox, it promotes a different abstraction layer, using the system’s own kernel, which, according to the developers, guarantees a better integration with the system itself.
Anbox does not virtualize Android, it simply creates this compatibility with the resources needed to make Apps run on the distribution’s own Linux Kernel.
This video was produced by the developers of Anbox and shows what the program would look like in practice.
It didn’t work so well… at least for me
Okay, as it is on the website, Anbox is still an alpha, so there is still a lot of work to come, however, I really couldn’t even test it properly, I installed it, but the program just doesn’t run.
Theoretically, Anbox was tested on Ubuntu 16.04 LTS using Snap packages and so it should work, in fact, this is the main form of distribution of the program. No Shell Script, no deb or rpm, no PPA, no Flatpak (for now), just via Snap.
Fortunately you can use Snaps in any distribution, even though the tests were only on Ubuntu.
Well, I tried… I swear!
I used Ubuntu 16.04 LTS, I used Ubuntu 16.10, Ubuntu 17.04, Deepin 15.4 RC2 and Manjaro 17, I tried to use the Snap package on everyone and had the same result, nothing.
Like the Anbox code is in Git, the Arch guys have already “moved the sticks” and we have an AUR version of Anbox, look for the “anbox-git” package, however, even that didn’t work.
So, I invite you to test it, if you make it work, it would be great if you shared your results through the comments and how you did to run Anbox too.
Theoretically, you need to install the snap:
sudo snap install anbox-installer
And once installed, you need to run it:
snap run anbox-installer
It will be necessary to type the number “1” in the Script to choose the option to install and then it will be necessary to type in capital letters “I AGREE” to accept the terms of the program, if everything goes well, you will have Anbox in your system menu. I’ve always come this far, but I never managed to open it.
Anyway, it is a project that promises, if we achieve this integration it will be great, many more applications will be available for Linux in the destkops too.
It’s worth keeping an eye out, until next time!