github Shmayro/dockerify-android v1.0.0
v1.0.0 — ARM apps, Magisk modules, and full Docker bake-in

17 hours ago

First tagged release of dockerify-android. Brings ARM/ARM64 app compatibility, automatic Magisk setup, and a more reliable first-boot.

Highlights

ARM/ARM64 app support (closes #38)

Modern Play Store apps that ship only with arm64-v8a / armeabi-v7a native libraries now install and run on the x86_64 emulator. Powered by Google's ndk_translation native bridge.

Opt-in via ARM_TRANSLATION=1 in your docker-compose.yml. After enabling:

$ adb shell getprop ro.product.cpu.abilist
x86_64,x86,arm64-v8a,armeabi-v7a,armeabi

$ adb install arm64-only-app.apk
Success   # previously: INSTALL_FAILED_NO_MATCHING_ABIS

Verified end-to-end with arm64-only APKs (v2rayNG used as the reference test).

Automatic Magisk setup, addons install as Magisk modules

When ROOT_SETUP=1:

  • The Magisk environment under /data/adb/magisk/ is bootstrapped during first-boot — no manual "Additional setup required" tap in the Magisk app after install.
  • ARM translation and GAPPS install as proper Magisk modules under /data/adb/modules/<id>/, manageable from the Magisk app (toggle / disable / uninstall).
  • Toggling an addon on a previously rooted container now works correctly (previously Magisk's read-only magic mount silently blocked /system pushes).

Reliable, self-contained installs

Each addon (install_root, install_gapps, install_arm_translation) reboots and adb wait-for-devices before writing its done-marker. A container killed mid-install can no longer leave a "marked done but not actually applied" state.

Faster, hermetic image

  • rootAVD no longer cloned from gitlab at runtime — baked into the image as a tar.gz (saves ~84 MB of git history that was being fetched per first-boot).
  • ndk_translation prebuilts also stored as tar.gz in /opt/ (~26 MB smaller image disk after pull).
  • No runtime gitlab.com dependency for rooting.

Docker image tags

This release publishes (via #47's tagging pipeline):

  • shmayro/dockerify-android:1.0.0
  • shmayro/dockerify-android:1.0
  • shmayro/dockerify-android:1
  • shmayro/dockerify-android:latest

Upgrade notes

Default docker-compose.yml:

environment:
  ROOT_SETUP: 0
  GAPPS_SETUP: 0
  ARM_TRANSLATION: 1

If you have an existing ./data volume from a previous version:

  • ARM apps will install on next container restart (the install path runs once based on a per-addon marker).
  • Toggling ROOT_SETUP=1 later on an existing data volume works without needing to manually open the Magisk app.

For a fully clean start: docker compose down && rm -rf data && docker compose up -d.

PRs in this release

  • #47 — ci: versioning infrastructure
  • #41 — feat: ARM/ARM64 app support via ndk_translation
  • #50 — refactor: self-contained install functions in first-boot.sh
  • #51 — feat: install addons as Magisk modules when root is active
  • #52 — chore: bake rootAVD and use tar.gz storage for addon payloads

Thanks

Thanks to @Raulsc9 for opening #38 and pushing for ARM support, and to @snaike00 for reporting that the early attempt didn't work — that pointed us at the bugs in the first implementation.

Don't miss a new dockerify-android release

NewReleases is sending notifications on new releases.