Android on Linux ARM
Android with Screen Copy (scrcpy)
Redroid with Malior-Droid Only works with old Panfrost Kernel 5.10 - Literally the best option.
You can run Android environments on your ARM-based Linux system using ReDroid in combination with scrcpy and Docker . This setup allows you to interact with Android through a high-performance GUI.
Best Performance Option - CNflysky
ReDroid with Malior-Droid
Only compatible with older Panfrost kernels (e.g., Kernel 5.10)
This offers the best performance and compatibility currently available.
Installing ReDroid with scrcpy and Docker
sudo apt install docker.io scrcpy android-tools-adb -y
Then run the ReDroid container:
sudo docker run -d -p 5555:5555 -v ~/redroid-data:/data \
--restart unless-stopped --name redroid --privileged \
cnflysky/redroid-rk3588:13.0.0-latest \
androidboot.redroid_height=1920 androidboot.redroid_width=1080
Note: This setup is currently only functional on devices using Panfrost .
Connecting and Launching with scrcpy
Use this command to connect to the container:
adb disconnect localhost:5555 && adb connect localhost:5555 && scrcpy -s localhost:5555
Optional: Create a Convenient Alias (Malior Shortcut)
Edit your .bash_aliases
file:
nano ~/.bash_aliases
Add the following alias:
alias malior="malior-droid stop && adb disconnect localhost:5555 && malior-droid start && adb connect localhost:5555 && scrcpy -s localhost:5555 && malior-droid resize 720x1280"
Then reload your aliases or restart your terminal. Run it by simply typing:
malior
Change Language to English
To switch the Android interface to English:
- Open the Android settings inside the container.
- Navigate to Language & Input .
- Select English from the list.
Installing APKs
Just drag and drop your .apk
file into the Android window launched via scrcpy
. It will automatically install.
π§π»βπ¬ Required Kernel Modules for Android Support
To ensure Android (especially via ReDroid ) functions correctly on your ARM-based Linux system, the following kernel configuration options must be enabled or set appropriately:
CONFIG_STAGING=y
CONFIG_ASHMEM=y
CONFIG_ANDROID_BINDER_IPC=y
# CONFIG_ANDROID_BINDERFS is not set
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
CONFIG_ESD_FS=y
Notes:
-
CONFIG_ASHMEM
andCONFIG_ANDROID_BINDER_IPC
are essential for Android compatibility. -
CONFIG_ANDROID_BINDER_DEVICES
must support the three primary binder interfaces:binder
,hwbinder
, andvndbinder
. - Do not enable
CONFIG_ANDROID_BINDERFS
unless specifically requiredβsome Android implementations may not yet support it. -
CONFIG_ESD_FS
enables ESD file system support, which may be required by specific Android runtime components.
π§π»βπ§ Fixing Google Play Store Certification (Device ID Registration)
To enable access to the Google Play Store and pass SafetyNet/Play Protect on your Android system (e.g., ReDroid via Malior-Droid), follow these steps:
Steps to Become Certified:
- Install a Device ID App
- Download and install any APK that shows your Google Services Framework (GSF) Device ID (e.g., Device ID by Evozi ).
- Register Your Device ID with Google
- Visit: Googleβs Device Registration Page
- Paste your GSF Device ID into the field and submit.
- Restart Malior-Droid
- Stop and start Malior-Droid again.
- Manually add your Google account via Settings > Accounts .
- Install Apps Easily
- Use tools like APKPure .
- Drag and drop APKs into the emulator window or install via ADB/Scrcpy.
- Enjoy full Play Store compatibility and app installations.
Waydroid on Panthor
Credit: Thanks to @Willzen β the Armbian vendor kernel now supports Panthor , making Waydroid installation and execution possible!
Installation Steps
- Install Required Packages
sudo apt install curl ca-certificates -y
curl https://repo.waydro.id | sudo bash
sudo apt install waydroid -y
- Download the Panthor Image
wget https://github.com/WillzenZou/armbian_fork_build/releases/download/willzen-armbian-24.5.0/2.waydroid-panthorv10-240416-v1.img.tar.gz
- Extract and Move the Image
cd /usr/share
sudo mkdir -p waydroid-extra/images
cd
sudo tar -xf 2.waydroid-panthorv10-240416-v1.img.tar.gz -C /usr/share/waydroid-extra/images
- Initialize Waydroid with the Panthor Image
sudo waydroid init -f -i /usr/share/waydroid-extra/images
Enable Multi-Window Support (Optional)
A. Basic Resizing Support
sudo waydroid container stop
waydroid session stop
sudo waydroid prop set persist.waydroid.multi_windows true
waydroid session start
waydroid show-full-ui
B. Manually Set Resolution
sudo waydroid container stop
waydroid session stop
sudo waydroid prop set persist.waydroid.multi_windows true
sudo waydroid prop set persist.waydroid.width 720
sudo waydroid prop set persist.waydroid.height 1280
systemctl restart waydroid-container
waydroid session start
Install Google Play Store
Use this community-maintained script to install OpenGApps, Magisk, libhoudini, and libndk:
A. Clone the Script
sudo apt install lzip -y
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python3 -m venv venv
venv/bin/pip install -r requirements.txt
sudo venv/bin/python3 main.py
B. In the Script UI:
- Select Android 13 β choose GApps and/or MicroG
- Works with Waydroid based on Android 11
Other Useful Commands
waydroid app install com.app.apk # Install app
waydroid app launch com.app # Launch installed app
waydroid app list # List all installed apps
Main Post > [Guide] Top Options for a Single-Board Computers!