Skip to content

feat: ARM/ARM64 apps support via ndk_translation#41

Merged
Shmayro merged 1 commit into
mainfrom
copilot/add-arm64-support
May 29, 2026
Merged

feat: ARM/ARM64 apps support via ndk_translation#41
Shmayro merged 1 commit into
mainfrom
copilot/add-arm64-support

Conversation

Copilot AI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor

Android x86_64 emulator advertises only x86_64,x86 ABIs, blocking installation of ARM-only apps with INSTALL_FAILED_NO_MATCHING_ABIS. Many modern Play Store apps no longer ship x86 builds.

Changes

Core Implementation

  • ARM translation installation (first-boot.sh): Pushes Google's ndk_translation prebuilts to /system, drops ndk_translation.rc for binfmt_misc registration, then reboots so init re-reads the new properties.
  • Build property updates: Strips stale ABI / native-bridge entries from every build.prop, then writes the canonical set to /system/build.prop so the post-install reboot advertises x86_64,x86,arm64-v8a,armeabi-v7a,armeabi.
  • Environment control: ARM_TRANSLATION flag (default: enabled in compose, disabled in docs) gates the install during first boot or post-deployment.

Dependencies

  • Bakes ndk_translation prebuilts into the image (Kaz205 chromeos_guybrush fork — Chrome OS Android 11 / API 30 match) so first boot has no runtime dependency on a flaky upstream mirror.

Documentation

  • README updated: feature description, ARM_TRANSLATION env 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_ABIS

ARM apps run with translation overhead; x86 apps maintain native performance.

Original prompt

This section details on the original issue you should resolve

<issue_title>Feature request: ARM64 (arm64-v8a) app support</issue_title>
<issue_description>Hi,

I’m currently using dockerify-android for CI/testing and noticed that the emulator reports:

ro.product.cpu.abilist = x86_64,x86

This prevents installation of many modern Android apps that ship native libraries only for arm64-v8a, resulting in:

INSTALL_FAILED_NO_MATCHING_ABIS

Since many Play Store apps no longer provide x86/x86_64 builds, ARM64 support (or an ARM translation layer) would significantly improve compatibility.

Are there plans to support ARM64 system images or ARM translation in the near future?

Thanks for the project.
</issue_description>

Comments on the Issue (you are @copilot in this section)

@Shmayro ARM translation can be archived in short term. I will work on that and give you an update. Thanks for your feedback 🙏

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

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
Copilot AI requested a review from Shmayro February 9, 2026 13:55
@Shmayro Shmayro force-pushed the copilot/add-arm64-support branch from d20af27 to 1d37f54 Compare May 28, 2026 23:13
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
@Shmayro Shmayro force-pushed the copilot/add-arm64-support branch from 1d37f54 to 2a1139d Compare May 29, 2026 00:39
@Shmayro Shmayro changed the title Add ARM translation support via libhoudini for ARM64 app compatibility feat: ARM/ARM64 apps support via ndk_translation May 29, 2026
@Shmayro Shmayro marked this pull request as ready for review May 29, 2026 01:09
@Shmayro Shmayro merged commit 00f37c6 into main May 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature request: ARM64 (arm64-v8a) app support

2 participants