Skip to content

Instantly share code, notes, and snippets.

@labibmuhajir
Last active February 12, 2026 09:09
Show Gist options
  • Select an option

  • Save labibmuhajir/2c55effaf90b80d0fdb6a102bdae2009 to your computer and use it in GitHub Desktop.

Select an option

Save labibmuhajir/2c55effaf90b80d0fdb6a102bdae2009 to your computer and use it in GitHub Desktop.
docker compose redroid
# Redroid Setup Documentation
# 1. Image Creation Reference: ayasa520/redroid-script https://github.com/ayasa520/redroid-script
# Follow the link above to build your custom Redroid image (NDK, Magisk, etc.).
# 2. System Compatibility
# Tested OS: Linux Mint 22.3 (Cinnamon 64-bit) Software: Podman 4.9.3 & Podman-compose 1.0.6 (Tested with sudo)
# Prerequisites: Ensure the kernel modules for Android Binder are installed.
# If /dev/binderfs is missing check with `ls /dev/binderfs`, install the required modules:
# sudo apt update && sudo apt install linux-modules-extra-$(uname -r)
# 3. Kernel Module Activation To enable Binder devices, run the following commands:
# # Create the binderfs mount point
# sudo mkdir -p /dev/binderfs
# # Mount binderfs
# sudo mount -t binder binder /dev/binderfs
# # (Optional) If binder_linux is not loaded, load it with specific devices
# sudo modprobe binder_linux devices="binder,hwbinder,vndbinder"
# 4. Verification Ensure ls /dev/binderfs displays the following nodes:
# binder, binder-control, binder_logs, features, hwbinder, vndbinder.
version: "3.8"
services:
# VARIAN 1: TABLET (1080p, 160 DPI)
tab:
image: localhost/redroid/redroid:11.0.0_ndk_magisk_widevine
privileged: true
pull_policy: never
container_name: tab
network_mode: bridge
ports:
- "5555:5555"
volumes:
- ~/Development/emudata/tablet:/data
deploy:
resources:
limits:
memory: 2G
devices:
- /dev/binderfs/binder:/dev/binder
- /dev/binderfs/hwbinder:/dev/hwbinder
- /dev/binderfs/vndbinder:/dev/vndbinder
command:
- ro.product.cpu.abilist=x86_64,arm64-v8a,x86,armeabi-v7a,armeabi
- ro.product.cpu.abilist64=x86_64,arm64-v8a
- ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi
- ro.dalvik.vm.isa.arm=x86
- ro.dalvik.vm.isa.arm64=x86_64
- ro.enable.native.bridge.exec=1
- ro.vendor.enable.native.bridge.exec=1
- ro.vendor.enable.native.bridge.exec64=1
- ro.dalvik.vm.native.bridge=libndk_translation.so
- ro.ndk_translation.version=0.2.3
- androidboot.redroid_width=1920
- androidboot.redroid_height=1080
- androidboot.redroid_dpi=160
- androidboot.redroid_fps=60
# VARIAN 2: PHONE
phone:
image: localhost/redroid/redroid:11.0.0_ndk_magisk_widevine
privileged: true
pull_policy: never
container_name: phone
network_mode: bridge
ports:
- "5556:5555"
volumes:
- ~/Development/emudata/tablet:/data
deploy:
resources:
limits:
memory: 2G
devices:
- /dev/binderfs/binder:/dev/binder
- /dev/binderfs/hwbinder:/dev/hwbinder
- /dev/binderfs/vndbinder:/dev/vndbinder
command:
- ro.product.cpu.abilist=x86_64,arm64-v8a,x86,armeabi-v7a,armeabi
- ro.product.cpu.abilist64=x86_64,arm64-v8a
- ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi
- ro.dalvik.vm.isa.arm=x86
- ro.dalvik.vm.isa.arm64=x86_64
- ro.enable.native.bridge.exec=1
- ro.vendor.enable.native.bridge.exec=1
- ro.vendor.enable.native.bridge.exec64=1
- ro.dalvik.vm.native.bridge=libndk_translation.so
- ro.ndk_translation.version=0.2.3
- androidboot.redroid_width=720
- androidboot.redroid_height=1080
- androidboot.redroid_dpi=180
- androidboot.redroid_fps=60
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment