How to Transfer a Split APK Between Android Test Devices

Last updated on October 23rd, 2026 at 12:44 pm

Copying only base.apk is often not enough. Modern Android apps can be installed as a base package plus several device-specific split APKs, and the destination device must support the same CPU architecture.

Why it happens

An app store may deliver a package tailored to one device. The installed files can include separate components for the CPU architecture, language, screen density, or optional features.

If any required component is missing, installation can fail or the app may not start. The safest approach is to copy every APK path reported for the installed package.

1. Check device compatibility

First, inspect the CPU architectures supported by both the source and destination test devices:

adb shell getprop ro.product.cpu.abilist

The destination must support the native architecture required by the copied package set, such as arm64-v8a. A package containing only 32-bit ARM native code will not run on an ARM64-only emulator.

2. Find every installed APK

Use the package manager to list the installed APK paths:

adb shell pm path com.example.app

The result may contain only base.apk, but it can also include architecture, language, and screen-density splits.

3. Copy the complete package set

Pull every path returned by the previous command into a local folder:

adb pull "/data/app/example/base.apk" extracted_app/
adb pull "/data/app/example/split_config.arm64_v8a.apk" extracted_app/
adb pull "/data/app/example/split_config.en.apk" extracted_app/

The paths above are examples; use the exact paths returned by pm path.

4. Install on the destination device

For a single APK, use:

adb install extracted_app/base.apk

For a split package, install all components together:

adb install-multiple extracted_app/*.apk

Common problems

  • No matching ABI: the destination does not support the package’s native architecture. Use a compatible build or device.

  • App will not launch: a required split or downloaded asset may be missing. Recheck every path reported on the source.

  • Licensing failure: copying APK files does not bypass account, subscription, or license checks.

  • Integrity failure: some apps reject rooted, modified, or sideloaded environments.

Target each device explicitly

When both test devices are connected, add -s SOURCE_SERIAL to every source command and -s DEST_SERIAL to installation commands. Run adb devices first. Matching CPU architecture alone is not enough: Android version, required features, density splits, and signing must also be compatible. This copies application packages, not account data or downloaded assets.

Treat a modern Android installation as a package set, not always as one file. The concrete next action is to compare both devices’ ABI lists before copying anything, then transfer and install every required split together.

Reference: Android Debug Bridge documentation.

Tags:

Leave a Comment

Discover more from Juzhax Technology

Subscribe now to keep reading and get access to the full archive.

Continue reading