使用 Brook 下载任意 iOS App 的旧版本
Updated at: 2024-12-25
最新:我发布了一个独立的 App 来简化下载历史 iOS app。
iOS Old App Downloader: https://www.txthinking.com/iosoldappdownloader.html
目的
从 AppStore 下载旧版本的 App,这里以 YouTube v17.15.1 为例
需要软件
Brook.exe,并且已经安装了 CA
iTunes64Setup.exe v12.6.5.3 此链接是从 apple.com 下载。(小提示:仅从软件相关官方网站下载是个好习惯)
理论上在 macOS 也行,但我没找到对应版本 iTunes 的下载地址
登录 iTunes 并设置下载无需密码
断开 Brook
iTunes 菜单 -> 账户 -> 登录
iTunes 菜单 -> 编辑 -> Preferences -> Store -> Purchases: Never Require. Free Downloads: Never Require
我们需要找到两个东西
appid: App ID
versionid: 历史版本 ID
找到 App ID 和历史版本 ID 列表
开启 Fake DNS
开启模块: Block google secure DNS
关闭 Bypass 相关的模块
开启模块: iOS app version list
连接 Brook。然后从 iTunes 里下载 YouTube iPhone App。
MITM 日志里,你应该能看到一个 POST https://p52-buy.itunes.apple.com/WebObjects/MZBuy.woa/wa/buyProduct,body 里即是。域名不一定和上面完全一样
appid: body 里的 songId 即是。这里是 544007664
versionid: body 里的 softwareVersionExternalldentifiers 这是个列表,你可以先记录一下
下载旧版本 App
修改模块: iOS app downgrade 里的 appid 为前面步骤看到的,比如 544007664
修改模块: iOS app downgrade 里的 versionid 为前面步骤看到的列表中的其中一个,比如 848374799
开启模块: iOS app downgrade
断开 Brook,重新连接。
从 iTunes 资料库 Library 右键删除刚才下载 YouTube App。重新下载 YouTube iPhone App。从资料库 Library 能看到已经下载的旧版本 YouTube,右键可以查看 ipa 位置。
如果发现下载的版本不是期望的版本。历史版本 ID 列表是顺序排列的,自己跳跃着下载下来看看,修改 versionid 并重复以上步骤重新下载
安装 ipa 文件到手机
这里使用 ideviceinstaller,macOS 有 brew 可以直接安装。Windows 不想自己编译的话,这里有编译好的,用这个吧先。
必须是同一个 Apple ID
先卸载 iPhone 上的 YouTube
把 iPhone USB 连线到 Windows
我用的是 GitBash
git clone https://github.com/iFred09/libimobiledevice-windows.git
cd libimobiledevice-windows
./ideviceinstaller.exe --install ~/Music/iTunes/iTunes\ Media/Mobile\ Applications/YouTube\ 17.15.1.ipa
遇到的情况分享一下:
ideviceinstaller 提示 Could not connect to lockdownd. Exiting.,我重新插拔了几次 USB 就可以了
视频
https://www.youtube.com/watch?v=-njbSgXRlAo
视频可能过时,但大体步骤仍可以参考