APKpull provides reliability in downloading apps from Google Play from real Android devices or emulators
curl -sL bit.ly/apkpull | bash -s -- com.whatsapp
- APKpull get's PackageName as the first (required) argument.
- You can also pull the files into spesific path insted of
~/Downloads/apkpull_dl
by adding-d /path/to/directory
flag- Uninstall the app after the pulling is complete by adding
--uninstall
flag.--help
to get instructions.- For example:
curl -sL bit.ly/apkpull | bash -s -- com.tranzmate -d ~/Documents/my_apks_dir/ --uninstall
- Clone APKpull:
git clone https://github.com/david-lev/apkpull.git
- Go to script directory:
cd apkpull && chmod +x apkpull.sh
- Make your changes and run the script with package name:
./apkpull.sh com.whatsapp
- Because each device may have different splits, several devices can be connected at the same time. Only splits that do not already exist locally will be downloaded again.
- The script's exit codes are:
0
if all success,1
-9
for every faild device,10
if pkg not provided,20
if adb not found,30
for INT signal (Ctrl+C),40
if app not in play store, and50
if no devices connected - I would recommend following the device screen for the first few times to see how the automation works. Then you can already run it with your eyes closed...
- APKpull uses ADB to connect to devices, jump into the app page in Google Play, make the necessary clicks based on the existing data on the screen, download the app and finally pull it to local as an APK with Splits and even OBB's (if any).
- While running the script, many tests are performed: checking updates, locked screen, device compatibility or country restrictions, paid apps, network, sign in check and more.
- If there is an untreated end case, after several attempts (Can be increased by raising the number of
max_rounds
) a log will be created that will contain a screenshot and dump ui from the device, which can be attached to a new issue on github. - Due to the way Google Play app is built, most of the tests and clicks are based on text, so English and Hebrew are currently supported. If you want to support other languages as well, fork this repo, create a list of
buttons_lang
at the beginning of the script, fill in the values in the existing format in the other languages and open PR. - The files are saved by default to the
~/Downloads/apkpull_dl
folder in the next example format:
.
βββ com.flambestudios.picplaypost
βΒ Β βββ 451
βΒ Β βββ com.flambestudios.picplaypost_451
βΒ Β βΒ Β βββ config.arm64_v8a.apk
βΒ Β βΒ Β βββ config.armeabi_v7a.apk
βΒ Β βΒ Β βββ config.en.apk
βΒ Β βΒ Β βββ config.xhdpi.apk
βΒ Β βββ com.flambestudios.picplaypost-451_base.apk
βββ com.microsoft.office.officehubrow
βΒ Β βββ 42787678
βΒ Β βββ com.microsoft.office.officehubrow-42787678.apk
βΒ Β βββ main.42787678.com.microsoft.office.officehubrow.obb
βββ tfilon.tfilon
βββ 38
βββ tfilon.tfilon-38.apk