binder_linux and ashmem_linux modules for ReDroid / Waydroid style Android container hosts, with release packaging, DKMS fallback, and ipcverify validation.
Some Distros come packaged with binder support or it can be installed as an extra module from the distro's repositories. For those that don't, this project provides a unified installer with prebuilt modules for popular distros and a DKMS fallback for others. See the table below for details on supported prebuilt modules.
Note: ashmem is only needed for android versions 8-11. As such, it will be depricated next release. This release, 2.4.5 will be the last release to include ashmem support.
| Distro / Family | Kernel Headers Package | Notes |
|---|---|---|
| Ubuntu 22.04 / 24.04 / 25.04 / 25.10 / 26.04 LTS | linux-headers-generic |
Fully supported* |
| Debian 12 / 13 (trixie) / 14 (forky) | linux-headers-amd64 |
Fully supported* |
| Proxmox VE 8 / 9 | pve-headers |
Fully supported |
| Fedora 40 / 41 / 42 / 43 / 44 | kernel-devel |
Silverblue requires layered headers |
| RHEL / CentOS Stream 9 / 10 | kernel-devel |
Fully supported* |
| AlmaLinux 9 / 10 | kernel-devel |
Fully supported* |
| Rocky Linux 9 / 10 | kernel-devel |
Fully supported* |
| CloudLinux 8 / 9 / 10 | kernel-devel |
Fully supported* |
| Azure Linux 4 | kernel-devel |
Fully supported* |
| Amazon Linux 2 / 2023 | kernel-devel |
Fully supported* |
| openEuler 24.03 LTS / 25.03 | kernel-devel |
Fully supported* |
| Alibaba Cloud Linux (Anolis 23) | kernel-devel |
Fully supported* |
| Arch Linux (rolling) | linux-headers |
Fully supported |
| SteamOS 3.7+ | linux-lts-headers |
Best‑effort (custom kernel)* |
* see docs/KERNEL_COMPAT.md for details on kernel version compatibility, known issues, and distro-specific quirks.
SteamOS note: Valve's
linux-neptunekernel headers are not publicly available in Arch repositories. The SteamOS prebuilt is compiled against the closest public LTS headers. If anyone has the actual headers please make them available. If you can report successful installation on SteamOS with the current prebuilt, please let me know.
Prebuilt modules are assembled from both DEB-family and RPM-family release CI matrices. The exact bundled kernel version for each distro row depends on what the release matrix produced at build time. If your running kernel is not in prebuilt/<kernel-release>/, the installer falls back to a distro-matched nearest prebuilt (same distro, same major.minor), then any same-major.minor prebuilt, then DKMS automatically; use --no-dkms to disable that fallback, or use install-mod.sh with locally-built .ko files.
The self-extracting installer keeps installation simple for users. It ships workflow-built prebuilt modules under prebuilt/<kernel-release>/, the bundled binder/ and ashmem/ DKMS trees, load_modules.sh, and both ipcverify helpers. It verifies the embedded bundle manifest at install time, detects uname -r, installs matching prebuilt modules first, and falls back to DKMS only when no exact prebuilt module exists and the host can provide usable headers/build tools; use --no-dkms to disable that fallback.
On rpm-ostree / immutable hosts such as Fedora Silverblue, current-boot module installation is supported, but persistent build-tool availability may still require package layering for DKMS-based rebuilds.
sudo ./Android-IPC-<version>.runUse --extract-only --target <dir> when you want to inspect the bundle without installing it.
For out-of-band user-built modules, install-mod.sh can sign and install local .ko artifacts without the full .run flow.
Secure Boot note: if MOK enrollment is required, you will set a temporary password during mokutil --import, then enter that same password after reboot in MOK Manager during Enroll MOK.
As per the notes on redroid's Github & Docker Hub pages:
redroid should capabale running on any linux (with some kernel features enabled). These are those kernel features. After installing the modules, you can run redroid in a container.
Add these flags to your docker run command to expose the binder and ashmem devices to the container:
-v /dev/binderfs/binder:/dev/binder \
-v /dev/binderfs/hwbinder:/dev/hwbinder \
-v /dev/binderfs/vndbinder:/dev/vndbinder \
-v /dev/ashmem:/dev/ashmem \Redroid: https://hub.docker.com/r/redroid/redroid/
To connect to your Android container's GUI, you can use scrcpy for a responsive experience.
scrcpy: https://github.com/Genymobile/scrcpy
ipcverify(Linux + Android) is an idempotent verification tool used by the installer to validate binder/ashmem functionality. It can also run independently of the kernel modules.
See docs/BUILD.md, docs/KERNEL_COMPAT.md, docs/release_bundle.md, docs/ipcverify.md, docs/versioning.md, and docs/design.md for the detailed behavior.