Python version of IPATool!
Now Supports:
--purchase
pip3 install -r requirements.txt
There're three commands: lookup, historyver, download. Each command's usage can be found by -h
option.
You can also chain multiple command, last command's output will be passed to next command (so you don't need to supply some arguments like appVerId)
Download an app using bundleID (-o can be omited)
python3 main.py lookup -b com.touchingapp.potatsolite -c JP download -e APPLE_EMAIL -p APPLE_PWD -o DIR
Or appID (XXXXX
in the apps.apple.com/app/xxxx/idXXXXXX
)
python3 main.py download -i XXXXX
You can also purchase apps when downloading using --purchase
:
python3 main.py lookup -b com.touchingapp.potatsolite -c JP download --purchase -e APPLE_EMAIL -p APPLE_PWD -o DIR
Old versions must be downloaded together with iTunes Server
. You can get iTunes Server
in several ways:
actions-iTunes-header/workflow_helper/iTunesInstall/patch_itunes.py
pip3 install frida
actions-iTunes-header/workflow_helper/iTunesDownload/get_header.py
com.darwindev.kbsync_XXX.deb
on your jailbroken devicekbsynctool -s 9000
on your jailbroken deviceUsing -s http://192.168.100.227:9000/...
, use it as server address in next stepAfter setting up the server, you can run this tool to download a specific version
python3 main.py lookup -b com.touchingapp.potatsolite -c JP download -s http://127.0.0.1:9000 --appVerId 833889087
NOTE: Some users are reporting that you need to authorize computer and make first purchase in iTunes with marked "do not ask for password" before using the iTunes server. (See #26)
Get all appVerId of app from Apple
python3 main.py lookup -b com.touchingapp.potatsolite -c JP historyver -e APPLE_EMAIL -p APPLE_PWD
Query app basic information:
python3 main.py lookup -b com.touchingapp.potatsolite -c JP
python3 main.py lookup -i 1239860606 -c JP
Query appVerId:
python3 main.py lookup -b com.touchingapp.potatsolite -c JP --get-verid
For each command you can use --json
switch to get result of command in JSON
python3 main.py --json lookup -b com.touchingapp.potatsolite -c JP --get-verid
python3 main.py --json lookup -b com.touchingapp.potatsolite -c JP historyver -e APPLE_EMAIL -p APPLE_PWD
You can download all versions of an app like this:
python3 main.py --json download --itunes-server http://XXX.XXX.XXX.XXX:9000 --appId 414478124 --purchase --downloadAllVersion
{"appName": "WeChat", "appBundleId": "com.tencent.xin", "appVer": "6.5.13.34", "appId": 414478124, "appVerId": 822899148, "downloadedIPA": "wechat\\com.tencent.xin-6.5.13.34-414478124-822899148.ipa", "downloadedVerId": 822899148}
Logs will only be printed to stderr, so you can parse this line for automation.
reqs/schemas
and execute python3 -m schema_defs