
If you use Ubuntu Touch and would like install and run Android applications smoothlyYou've probably already heard of Waydroid. The idea of having your favorite Android apps embedded in your Ubuntu phone or tablet is very tempting, but when you actually try it, questions start to arise: requirements, performance, compatibility, battery consumption, and how to install APKs without losing your mind.
In the next lines you will find a A complete guide to understanding and using Waydroid on Ubuntu TouchThis guide covers everything from what this tool actually is, how it integrates with the system, its limitations, and how to install and manage Android applications (including stores like F-Droid). It's all explained in Spanish (Spain), using accessible language, but without neglecting the important technical aspects that make all the difference.
What is Waydroid and how does it work on Ubuntu and Ubuntu Touch?
Waydroid is, in short, a complete Android environment running inside a Linux containerIt is not a classic emulator or a heavy virtual machine: it is a compatibility layer that integrates Android with GNU/Linux systems, such as Ubuntu desktop, Ubuntu Touch or derivative distributions (Debian, Droidian, UBports, etc.).
This project was born as the evolution of Anbox-Halium, a variant of Anbox optimized for Linux phonesThe idea was to take much better advantage of the host device's native hardware by reducing the intermediate layers. Thanks to this, Android applications run with performance much closer to native, resulting in less lag and a significantly smoother experience than with a traditional virtual machine.
To achieve this, Waydroid relies on standard container technologies in Linux, especially namespaces (user, pid, uts, net, mount, ipc). These namespaces allow you to isolate processes, users, network, and other resources, so that the Android "enclosed" in the container functions as an independent system, but shares the same kernel as the rest of the distribution.
Container management is done with LXC (Linux Containers), a very mature tool for managing containerized environmentsSpecific modules are loaded onto that Linux kernel, such as binder_linux and ashmem_linuxwhich are essential for Android to run correctly without needing a separate “special” kernel.
In practice, this means that The Android system running inside Waydroid has fairly direct access to your hardwareGraphics, touch input, audio, etc. The CPU isn't simulated, nor is all the hardware recreated as a generic emulator would; instead, the device's own Linux kernel is used directly. This is why performance is far superior to that of a traditional virtual machine.
The Android system image that Waydroid uses is usually based on LineageOS, typically based on Android 10It is a minimalist but complete image, adapted to run inside a container and offer just what is necessary to run Android applications of all kinds.
In the specific case of Ubuntu Touch, Waydroid is designed to working on sessions based on the Wayland protocolThis is a key requirement: the integration and the way Android windows are rendered and interact with the rest of the environment depend on Wayland. On desktop computers running Ubuntu, this same requirement applies: if you're not using Wayland, Waydroid simply won't function correctly.
Advantages of Waydroid: near-native integration of Android apps
One of Waydroid's greatest strengths is the very natural integration of Android applications with the desktop environment or touch interfaceYou're not simply "opening a mobile phone within a mobile phone"; Android apps can coexist with native Linux applications quite transparently.
For example, you can have your native Ubuntu Touch browser open at the same time as an Android messaging app or a gameand switch between them in a way very similar to how you would on a conventional Android smartphone. This parallel coexistence is one of the project's key features.
Waydroid also allows that Android application shortcuts appear in the standard Ubuntu menu or app listIn Ubuntu Touch, this means that after Waydroid initializes, you'll see new Android app icons mixed in with the system apps. If they don't appear immediately, simply reload the app scope (swipe down from the center of the screen and release) to refresh the list.
Another very interesting feature is the Running Android apps in multi-window modeThe windows adapt to the visual style of your desktop environment, which is especially useful on tablets or devices where you're looking for a more PC-like experience. You can reposition and resize Android windows alongside native programs, making things much easier.
For those who use the device as a portable console or media center, Waydroid offers a full-screen mode for Android appsThis is ideal for gaming or video content, as it fully utilizes the screen without having to deal with additional system bars or frames.
If you prefer a more classic experience, that's also available. a mode in which the full Android interface is displayedThere you'll have your own home screen and application drawer, just like you're using an Android phone inside your Ubuntu Touch, without being limited to just individual windows.
Technical requirements and supported environment
For Waydroid to work properly, you must meet a series of requirements. technical requirements that should be followed to the letterSkipping any of them usually results in errors that are difficult to debug.
The first fundamental requirement is the use of Wayland as a graphical session protocolOn desktop systems, if you boot Ubuntu under X11 and try to launch Waydroid, you'll run into problems right away. For Ubuntu Touch and other Halium-based mobile systems, the session is already set up on Wayland, so this part is resolved out of the box.
On desktop GNU/Linux systems, it is also necessary to have Python 3 installedIt's not usually a problem because virtually all current distributions include it by default, but it's a dependency that the Waydroid toolkit needs to function.
Another crucial component is LXC, the container technology used by WaydroidBefore installing Waydroid on a desktop Ubuntu system, for example, you need to ensure that LXC is correctly installed. In a typical Ubuntu installation, the command to do this would be something like:
sudo apt install lxc
Without that package, Waydroid won't be able to create and manage the Android container, so it's worth checking that it's present from the start to avoid subsequent reinstallations.
Regarding distribution, Waydroid offers repositories prepared for various versions of Ubuntu and DebianFor example, there are packages for Ubuntu 20.04 (focal), 21.04 (hirsute), and Debian 11, as well as for derivative systems like Droidian and UBports. To add the repository, first define a variable with the version, obtain the GPG key, and register the source.
export DISTRO="hirsute"
curl https://repo.waydro.id/waydroid.gpg > /usr/share/keyrings/waydroid.gpg && \
echo "deb [signed-by=/usr/share/keyrings/waydroid.gpg] https://repo.waydro.id/ $DISTRO main" > /etc/apt/sources.list.d/waydroid.list && \
sudo apt update
With the repository now available, installation on desktop Ubuntu is reduced to a simple sudo apt install waydroidFrom there, the container is initialized and started with a few commands, such as sudo waydroid init y sudo systemctl start waydroid-container.
In Ubuntu Touch the situation is somewhat different: All devices based on Halium 9 or higher, starting from the Focal base, come with Waydroid pre-installed.In other words, you don't have to manually add repositories or install extra packages: simply initialize it from the terminal so it downloads the Android image and is ready to use.
Waydroid on Ubuntu Touch: Basic Setup
If your phone or tablet with Ubuntu Touch is relatively modern and based on Halium 9 or higher, it's normal that Waydroid is already on the system waiting for you to start it for the first timeInitial activation is done from a shell on the device.
To open that shell you have several options: Connect via ADB from your PC, use SSH if enabled, or use the terminal app included in Ubuntu TouchAny of those methods will give you a command line where you can type Waydroid commands.
Once the shell is open, the key step is to run the initialization command:
waydroid init
This process downloads the Android image, creates the container, and installs everything necessary to prepare the environment. It may take a while, depending on your connection and device performance, so please be patient.
When finished, simply Reload the Ubuntu Touch application list to check if Android app icons appear.If you don't see them at first, swipe down from the middle of the screen in the app view and release to refresh. From then on, any Android apps you install will be added to that same list.
Installing and restarting Waydroid on Ubuntu desktop
On a desktop installation with Ubuntu or Debian, in addition to the requirements already mentioned, the basic workflow for getting Waydroid up and running is relatively straightforward. Once the repository has been added and the package index updated, the process continues as follows: Install Waydroid with apt:
sudo apt install waydroid
The Android container initialization is then executed with:
sudo waydroid init
Once the image is ready, you have to Start the container service using systemd:
sudo systemctl start waydroid-container
In case something goes wrong because, for example, you didn't install LXC beforehand or you made a configuration mistake, you can always opt for Remove and reinstall Waydroid from scratchTo do this, the session and the container are first stopped:
waydroid session stop
sudo waydroid container stop
Then uninstall the package with:
sudo apt remove waydroid
Finally, the data folder is deleted from the container to leave everything clean:
sudo rm -rf /var/lib/waydroid
After this process, you can Repeat the installation, making sure to meet all prerequisites., starting with LXC, and run again sudo waydroid init and the start of the container service.
Install Android applications (APKs) on Waydroid on Ubuntu Touch
Once Waydroid is initialized, the next logical step is install your own Android applications in the form of APK filesIn Ubuntu Touch this is also done from the command line, but the procedure is quite simple.
The first is copy the APK to the device in an accessible pathThe typical folder is usually:
/home/phablet/Downloads
You can get the file there in many ways: downloading it directly from your mobile browser, transferring it via USB from your computer, using ADB to push it, or using any other tool you're comfortable with.
Once the APK is in place, open a shell on the device again (via ADB, SSH, or the terminal app) and use the Waydroid-specific command for installing applications, indicating the full file path:
waydroid app install /home/phablet/Downloads/mi-aplicacion.apk
If the file is valid and compatible, the installation will be completed and You should soon see the Android app icon in the Ubuntu Touch application list.As before, if it doesn't appear immediately, refresh the list by dragging down from the center of the screen.
Using app stores: F-Droid, Amazon Appstore and more
Installing APKs manually works, but it's much more convenient To have an app store within Waydroid to manage installations and updatesIn an environment without Google certification, the most common options are usually F-Droid and Amazon Appstore, among other alternative stores.
F-Droid stands out because It offers a catalog of free and open source applications (FOSS)It doesn't require a Google account or depend on the company's proprietary services, which fits perfectly with the philosophy of Ubuntu Touch and free software in general. To install it, simply download its APK from the official website or with a tool like wgetand then use the Waydroid command:
wget https://f-droid.org/F-Droid.apk
waydroid app install F-Droid.apk
Once you have F-Droid (or any other alternative store) installed, you will be able to search for applications, install them and keep them updated from an Android graphical interfaceHowever, due to the nature of Waydroid, these stores won't update apps completely automatically: you'll have to periodically open the store, check for updates, and confirm the installation of each one.
The general flow is usually the same: Find the app, tap install or update, wait for it to download, and accept the installation dialog box. which is displayed by Android itself within Waydroid. It's a bit more manual than on a certified Android phone, but perfectly usable.
For advanced users there is the possibility of Create custom Waydroid images that already include a specific app store pre-installed.This way, the Android environment can be deployed on multiple devices without having to manually repeat the installation of F-Droid or any other store on each one.
Uninstall Android apps and manage storage space
When you stop using an Android app, it's a good idea to Uninstall it to free up storage and reduce potential conflictsIn Ubuntu Touch with Waydroid, this task is also performed from the device shell.
First open a terminal (via ADB, SSH, or the Ubuntu Touch terminal app itself) and then Use Waydroid commands to list and remove appsFor example, you can see the installed apps with:
waydroid app list
That command will show you the application identifiers (APP_ID), which are what you need to uninstall. Once you've located the one you're interested in, you can run:
waydroid app remove [APP_ID]
Another alternative, if you have ADB configured, is to use the following command:
adb uninstall [APP_ID]
After removing the app using any of these methods, the icon may take a while to disappear from the Ubuntu Touch list. In that case, Reload the application list by dragging down from the apps view to force the update.
Accessing Android internal storage from Ubuntu Touch
In some scenarios it is very useful to be able to directly access the files of the Waydroid Android environment to back up, move data, or inspect what has been downloaded.
The internal storage that Android sees is usually located in a path similar to this:
/home/phablet/.local/share/waydroid/data/media/0
From Ubuntu Touch you can navigate through that folder using a file manager or from the terminalCopy files, sync data with other apps, or simply browse what's saved. It's practically the equivalent of the "internal storage" of a regular Android phone, but accessible from the Linux layer.
Important limitations: battery, compatibility, and hardware
Although Waydroid is a very powerful tool, it is important Be very aware of its limitations before starting to use it daily.It's not all advantages, and it's wise to know where the potential obstacles lie.
The first limitation that many users notice is increased battery consumption when Waydroid is activeUltimately, an entire Android system is running in parallel with Ubuntu Touch, complete with its services and processes. If you want to save battery, it's advisable to stop Waydroid when you don't need it.
You must also assume that Not all Android apps will work on WaydroidIn particular, applications that rely heavily on services such as Google Play Integrity or SafetyNet (online banking, some payment services, apps that are very sensitive from a security point of view) usually verify that the device is certified by Google and has the official Play services installed.
Like in Ubuntu Touch with Waydroid You do not have a certified environment or an official Play Store.Many of these apps will refuse to work or will display errors. This can also affect programs that require specific Google-certified devices or features closely tied to the company's proprietary ecosystem.
Another aspect to consider is the Possible conflict in the use of peripherals between Ubuntu Touch and WaydroidIf both systems try to access the camera, microphone, or other devices simultaneously, one of them may lose access. It's not uncommon to find Android apps complaining that they can't use the camera because it's being used by the main system.
For those who need functionalities similar to those offered by Google Play Services, there is microG, a free implementation of those servicesIn some cases, integrating it into Waydroid can improve compatibility with certain apps, but it's not a magic bullet: apps that require strict integrity checks or certification will still have problems.
Troubleshooting APK installation and daily use
One of the most frequent errors when installing applications on Waydroid is encountering the message “Invalid APK file” when running the installation commandAt first glance it sounds like a corrupted file, but often the problem is something much simpler.
The most common cause is that The system cannot find the APK file in the specified path.This could be due to a typo in the name, running the command from a different directory, or forgetting to include the full path. To avoid these kinds of errors, it's recommended to always use the absolute path, for example:
waydroid app install /home/phablet/Downloads/mi-aplicacion.apk
If the error still appears, then it is possible that The APK is corrupted, incomplete, or not compatible with your device's architecture.In that case, it's best to download it again from a reliable source or look for another version adapted to your hardware (ARM, ARM64, etc.).
Even for everyday use, minor integration glitches or occasional crashes may occur. In many cases, Restarting the Waydroid container resolves many issues.In Ubuntu desktop, for example, you can do it with:
sudo systemctl restart waydroid-container
If the problem persists or seems more serious, it's a good idea to review the logs, look for similar incidents, and, if necessary, Report the bug to the relevant project..
Google Play Store, Google services, and alternative options
A delicate point in this whole matter is the absence of Google Play Store and Google's proprietary services on WaydroidGoogle maintains a closed list of certified devices, and when a system is not part of that list, it blocks official access to its store and certain APIs.
This means that, even if you have a fully functional Android environment within WaydroidYou won't be able to use the Play Store officially. Many apps are only distributed through that store, so you'll have to resort to alternative APK repositories or third-party stores to install them.
That approach works reasonably well for much of the catalog, but It does not guarantee the same behavior as on a certified Android device.Apps that require SafetyNet, Play Integrity, or advanced security checks may refuse to launch or have limited functionality.
As already mentioned, microG can partially cover some of these shortcomings by offering a free implementation of certain Google APIsHowever, it doesn't solve all cases, and banking apps and other critical services, in particular, often maintain their restrictions.
Error management and reporting in the Waydroid + Ubuntu Touch ecosystem
Waydroid is a constantly evolving project and The integration with Ubuntu Touch and other systems is being refined over time.It's normal to encounter minor bugs, unusual behavior, or differences depending on the specific device you're using.
When you detect a fault, it is advisable to to differentiate whether it is a problem specific to Ubuntu Touch or to WaydroidErrors related to the base system (interface, session manager, etc.) should be reported in the Ubuntu Touch issue tracker. However, errors specific to the Android container, Waydroid commands, or the execution of Android apps are handled in the official Waydroid issue tracker.
When sending a report, try to include Please provide as much detail as possible: device model, Ubuntu Touch version, exact steps to reproduce the error, and error messages.This information makes it easier for developers to quickly diagnose the problem and propose fixes or temporary solutions.
With all the above, it is clear that Waydroid has become a key tool for those who want to combine the Android world with Ubuntu TouchIt allows you to run many applications in an integrated way, access alternative stores like F-Droid, manage APKs from the terminal and make better use of the device's hardware, always keeping in mind the limitations of Google's certification, the higher battery consumption and the possible hardware conflicts that may arise when combining two systems on the same core. Share the information so that more users can learn about the topic.


