Sign inSign up

erstt/redroid

By erstt

•Updated over 1 year ago

Adding ARM / ARM64 Support to Redroid via Houdini / NDK

Image
Operating systems
7

50K+

erstt/redroid repository overview

⁠English / 简体中文⁠

⁠Redroid Docker Images with ARM / ARM64 Support

This repository provides Redroid Docker images integrated with Houdini or NDK Translation, making it possible to run ARM architecture Android apps on an x86_64 platform (such as Intel / AMD processors). These images are especially useful for application testing and integration development.

⁠Image List

NDK Translation Image TagSource PlatformNDK Translation VersionSupported PlatformsNotes
erstt/redroid:11.0.0_ndk_ChromeOSChromeOS grunt R1340.2.2Intel / AMDVerified stable on Intel / AMD platforms.
erstt/redroid:12.0.0_ndk_ChromeOSChromeOS skyrim R1340.2.3Intel / AMDVerified stable on Intel / AMD platforms.
erstt/redroid:13.0.0_ndk_ChromeOSChromeOS skyrim R1340.2.3Intel / AMDVerified stable on Intel / AMD platforms.
erstt/redroid:15.0.0_ndk_AVDAVD_35_ext15_r010.2.3Intel / AMDVerified stable on Intel / AMD platforms. Translation supports arm64-v8a only.
Houdini Image TagSource PlatformHoudini VersionHoudini64 VersionSupported PlatformsNotes
erstt/redroid:11.0.0_houdini_ChromeOSChromeOS brya R11211.0.1f_y.38795.g11.0.1f_z.38795.gIntelVerified stable on Intel platform.
erstt/redroid:12.0.0_houdini_WSAWSA 12L12.0.0a_y.38818.m12.0.0a_z.38818.mIntel / AMDPotential compatibility issues with some apps; testing recommended.
erstt/redroid:13.0.0_houdini_ChromeOSChromeOS nissa R13413.0.1_y.39540.g13.0.1_z.39540.gIntelPotential compatibility issues with some apps; testing recommended.
⁠Additional Notes:

The following image variants are also available:

erstt/<android_version>_<houdini_or_ndk><_magisk><_litegapps>_ChromeOS

  • _magisk (optional): Magisk pre-installed
  • _litegapps (optional): Lightweight Google Apps pre-installed

⁠Usage Suggestions

  • The images are only suitable for x86_64 architecture devices.

  • When starting the container, make sure to configure device mapping and mount options properly.

  • Where to file issues: https://github.com/ERSTT/redroid/issues⁠⁠

  • If you only need to run games supporting arm64-v8a (e.g., Arknights), it’s suggested to remove the armeabi-v7a and armeabi ABIs for better stability.

  • The device has not been certified by the Play Protect mechanism. To proceed, follow these steps:

    1. Use ADB to retrieve the device ID:

      adb root
      adb shell 'sqlite3 /data/data/com.google.android.gsf/databases/gservices.db \
      "select * from main where name = \"android_id\";"'
      

      Or

      adb shell
      su
      sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
      
    2. Register the device ID at the following URL:

      https://www.google.com/android/uncertified/⁠

⁠Configuration

⁠NDK Image

⁠Docker / Podman Run Example
docker run -itd --rm --privileged \
  --pull always \
  -v /path/to/your/directory:/data \
  -p 5555:5555 \
  <ndk_image_tag>
podman run -itd --rm --privileged \
  --pull always \
  -v /path/to/your/directory:/data \
  -p 5555:5555 \
  <ndk_image_tag>
⁠Docker Compose Example
services:
  redroid:
    image: <ndk_image_tag>
    tty: true
    stdin_open: true
    privileged: true
    ports:
      - 5555:5555
    volumes:
      - /path/to/your/directory:/data

⁠Houdini Image

⁠Docker / Podman Run Example
docker run -itd --rm --privileged \
  --pull always \
  -v /path/to/your/directory:/data \
  -p 5555:5555 \
  <houdini_image_tag> \
  ro.enable.native.bridge.exec64=1 \
  ro.dalvik.vm.native.bridge=libhoudini.so
podman run -itd --rm --privileged \
  --pull always \
  -v /path/to/your/directory:/data \
  -p 5555:5555 \
  <houdini_image_tag> \
  ro.enable.native.bridge.exec64=1 \
  ro.dalvik.vm.native.bridge=libhoudini.so
⁠Docker Compose Example
services:
  redroid:
    image: <houdini_image_tag>
    tty: true
    stdin_open: true
    privileged: true
    ports:
      - 5555:5555
    volumes:
      - /path/to/your/directory:/data
    command:
      - ro.enable.native.bridge.exec64=1
      - ro.dalvik.vm.native.bridge=libhoudini.so
⁠Other custom settings
ParamDescriptionDefault
androidboot.redroid_widthdisplay width720
androidboot.redroid_heightdisplay height1280
androidboot.redroid_fpsdisplay FPS30(GPU enabled)
15 (GPU not enabled)
androidboot.redroid_dpidisplay DPI320
androidboot.use_memfduse memfd to replace deprecated ashmem
plan to enable by default
false
androidboot.use_redroid_overlayfsuse overlayfs to share data partition
/data-base: shared data
/data-diff: private data
0
androidboot.redroid_net_ndnsnumber of DNS server, 8.8.8.8 will be used if no DNS server specified0
androidboot.redroid_net_dns<1..N>DNS
androidboot.redroid_net_proxy_typeProxy type; choose from: static, pac, none, unassigned
androidboot.redroid_net_proxy_host
androidboot.redroid_net_proxy_port3128
androidboot.redroid_net_proxy_exclude_listcomma separated list
androidboot.redroid_net_proxy_pac
androidboot.redroid_gpu_modechoose from: auto, host, guest;
guest: use software rendering;
host: use GPU accelerated rendering;
auto: auto detect
guest
androidboot.redroid_gpu_nodeauto-detect
ro.xxxDEBUG purpose, allow override ro.xxx prop; For example, set ro.secure=0, then root adb shell provided by default

⁠License

This project is based on the Redroid Project⁠.

  • redroid itself is under Apache License⁠, since redroid includes many 3rd party modules, you may need to examine license carefully.
  • redroid kernel modules are under GPL v2⁠

⁠Credits

Tag summary

Content type

Image

Digest

sha256:6c2597228…

Size

856.9 MB

Last updated

over 1 year ago

docker pull erstt/redroid:15.0.0_ndk_AVD