July 30, 2026
How to Extract a Split APK from Your Android Device and Install It on Another (No Root Required)
If you’ve ever tried to manually back up an app installed from the Google Play Store, you may have noticed something confusing — there’s no…

By ROHIT SHARMA
3 min read
If you've ever tried to manually back up an app installed from the Google Play Store, you may have noticed something confusing — there's no single .apk file anymore. Modern Android apps are distributed as Split APKs (also called App Bundles), meaning the app is broken into multiple smaller files: a base.apk plus additional files for your device's processor architecture, screen density, and language.
This guide walks through exactly how to pull these split APK files off a non-rooted Android device using ADB, and install them on a second device — no root access needed.
What You'll Need
- A Windows PC with ADB (Android Debug Bridge) installed
- A USB cable
- The source Android device (where the app is already installed) with USB Debugging enabled
- A second Android device to install the app on
- The free SAI (Split APKs Installer) app from the Play Store, installed on the second device
Step 1: Install the App from the Play Store
Start simple — install the app you want to transfer from the Google Play Store as normal, on your first (source) device.
Step 2: Enable USB Debugging and Connect Your Device
- On the source device, go to Settings > About Phone, and tap Build Number seven times to unlock Developer Options.
- Go to Settings > Developer Options and enable USB Debugging.
- Connect the device to your PC via USB cable.
- On the phone, allow the "Allow USB Debugging" prompt when it appears.
Verify the connection in Command Prompt:
adb devicesadb devicesYou should see your device's ID listed with the word device next to it. If it says unauthorized, check your phone screen and tap Allow.
Step 3: Find the App's Package Name
If you don't already know the app's package name, search for it:
adb shell pm list packages | findstr appnameadb shell pm list packages | findstr appnameReplace appname with a keyword from the app's name. This returns something like:
package:com.example.myapppackage:com.example.myappThe part after package: is what you'll use in the next step.
Step 4: Fetch the Split APK File Paths
Run:
adb shell pm path com.example.myappadb shell pm path com.example.myappThis lists every APK file that makes up the installed app, for example:
package:/data/app/~~xxxx==/com.example.myapp-yyyy==/base.apk
package:/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.en.apk
package:/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.arm64_v8a.apk
package:/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.xxhdpi.apkpackage:/data/app/~~xxxx==/com.example.myapp-yyyy==/base.apk
package:/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.en.apk
package:/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.arm64_v8a.apk
package:/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.xxhdpi.apkEach line represents one piece of the app: the core code (base.apk), a language pack, a CPU architecture-specific file, and a screen-density resource file.
Step 5: Pull All Files into a Local Folder
First, create a folder to store everything:
mkdir app_apksmkdir app_apksThen pull each file listed in Step 4 (strip off the package: prefix from each path):
adb pull "/data/app/~~xxxx==/com.example.myapp-yyyy==/base.apk" app_apks\
adb pull "/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.en.apk" app_apks\
adb pull "/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.arm64_v8a.apk" app_apks\
adb pull "/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.xxhdpi.apk" app_apks\adb pull "/data/app/~~xxxx==/com.example.myapp-yyyy==/base.apk" app_apks\
adb pull "/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.en.apk" app_apks\
adb pull "/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.arm64_v8a.apk" app_apks\
adb pull "/data/app/~~xxxx==/com.example.myapp-yyyy==/split_config.xxhdpi.apk" app_apks\Confirm everything downloaded correctly:
dir app_apksdir app_apksYou should see all the .apk files sitting in that folder on your PC.
Step 6: Check Architecture Compatibility
Before moving to the second device, it's worth confirming both devices use the same CPU architecture — otherwise the app may fail to install or crash on launch. Common architectures include arm64-v8a (most modern phones) and x86_64 (mostly emulators or a few tablets/Chromebooks).
Check the architecture of any connected device with:
adb shell getprop ro.product.cpu.abiadb shell getprop ro.product.cpu.abiMake sure this matches the architecture of the split APK you pulled (e.g. split_config.arm64_v8a.apk).
Step 7: Turn On the Second Device and Transfer the Folder
Power on the second device and connect it to the same PC (or use any file transfer method you prefer — USB cable, cloud storage, or a cable/adapter).
Copy the entire app_apks folder from your PC directly into the second device's storage:
/sdcard/Download//sdcard/Download/You can do this by dragging and dropping the folder in File Explorer once the device is connected and recognized as a media device, or by using adb push:
adb push app_apks /sdcard/Download/app_apksadb push app_apks /sdcard/Download/app_apksStep 8: Install Using SAI (Split APKs Installer)
On the second device:
- Open the Play Store and install SAI — Split APKs Installer (it's free).
- Open SAI and navigate to
Download/app_apks. - Select all the files in the folder (base.apk plus all split_config files).
- Tap Install.
SAI will automatically combine all the pieces and install the complete app, just as if it had been downloaded through the Play Store.
Final Notes
- This method only works for apps you already have installed and own on the source device — it pulls files that already exist locally, it doesn't download anything from Google's servers directly.
- No root access is required for regular user-installed apps; root is only needed for system apps.
- Always double check CPU architecture between devices before installing, as mismatched split files are the most common cause of installation failures.
That's it — a clean, root-free way to move any Play Store app between two Android devices using nothing but ADB and a free installer app.
✉️ Connect with me on https://www.linkedin.com/in/r0x5r if you're into Android security, bug hunting, or want to discuss anything related to app pentesting!