feat: ARM/ARM64 apps support via ndk_translation#41
Merged
Conversation
Copilot
AI
changed the title
[WIP] Add ARM64 app support to dockerify-android
Add ARM translation support via libhoudini for ARM64 app compatibility
Feb 9, 2026
d20af27 to
1d37f54
Compare
Run modern Android apps that ship only with ARM native libraries (arm64-v8a, armeabi-v7a) on the x86_64 emulator using Google's ndk_translation, without needing a native ARM Android image. - Add ARM_TRANSLATION env var (opt-in, default 0; enabled in compose) - Bake ndk_translation prebuilts into the image (Kaz205 chromeos_guybrush fork, Android 11 / API 30 match) for an offline, deterministic install - Push translator + ARM system libs to /system, drop ndk_translation.rc for binfmt_misc registration, then reboot so init re-reads build.prop - Strip stale ABI / native bridge props from all build.prop files and write the canonical set to /system/build.prop - Document the feature, env var, install step, and troubleshooting
1d37f54 to
2a1139d
Compare
Shmayro
approved these changes
May 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Android x86_64 emulator advertises only
x86_64,x86ABIs, blocking installation of ARM-only apps withINSTALL_FAILED_NO_MATCHING_ABIS. Many modern Play Store apps no longer ship x86 builds.Changes
Core Implementation
first-boot.sh): Pushes Google's ndk_translation prebuilts to/system, dropsndk_translation.rcfor binfmt_misc registration, then reboots so init re-reads the new properties.build.prop, then writes the canonical set to/system/build.propso the post-install reboot advertisesx86_64,x86,arm64-v8a,armeabi-v7a,armeabi.ARM_TRANSLATIONflag (default: enabled in compose, disabled in docs) gates the install during first boot or post-deployment.Dependencies
chromeos_guybrushfork — Chrome OS Android 11 / API 30 match) so first boot has no runtime dependency on a flaky upstream mirror.Documentation
ARM_TRANSLATIONenv var, first-boot step, troubleshooting.Result
After enabling
ARM_TRANSLATION=1:$ adb shell getprop ro.product.cpu.abilist x86_64,x86,arm64-v8a,armeabi-v7a,armeabi $ adb install arm-only-app.apk Success # Previously: INSTALL_FAILED_NO_MATCHING_ABISARM apps run with translation overhead; x86 apps maintain native performance.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.