Skip to content

Kryxan/Android-IPC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android IPC

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.

Supported Prebuilt Kernel Modules

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-neptune kernel 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.

.run Installer

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>.run

Use --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.

Android Container Hosts

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

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.

About

binder_linux and ashmem_linux kernel modules for Android container hosts (ReDroid / Waydroid), with DKMS fallback, ipcverify validation, and prebuilt .run installer

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors