使用 Brook 下载任意 iOS App 的旧版本

Updated at: 2024-12-25

English

目的

从 AppStore 下载旧版本的 App,这里以 YouTube v17.15.1 为例

需要软件

  1. Brook.exe,并且已经安装了 CA
  2. iTunes64Setup.exe v12.6.5.3 此链接是从 apple.com 下载。(小提示:仅从软件相关官方网站下载是个好习惯)

理论上在 macOS 也行,但我没找到对应版本 iTunes 的下载地址

登录 iTunes 并设置下载无需密码

  1. 断开 Brook
  2. iTunes 菜单 -> 账户 -> 登录
  3. iTunes 菜单 -> 编辑 -> Preferences -> Store -> Purchases: Never Require. Free Downloads: Never Require

我们需要找到两个东西

找到 App ID 和历史版本 ID 列表

  1. 开启 Fake DNS
  2. 开启模块: Block google secure DNS
  3. 关闭 Bypass 相关的模块
  4. 开启模块: iOS app version list
  5. 连接 Brook。然后从 iTunes 里下载 YouTube iPhone App。
  6. MITM 日志里,你应该能看到一个 POST https://p52-buy.itunes.apple.com/WebObjects/MZBuy.woa/wa/buyProduct,body 里即是。域名不一定和上面完全一样
  7. appid: body 里的 songId 即是。这里是 544007664
  8. versionid: body 里的 softwareVersionExternalldentifiers 这是个列表,你可以先记录一下

下载旧版本 App

  1. 修改模块: iOS app downgrade 里的 appid 为前面步骤看到的,比如 544007664
  2. 修改模块: iOS app downgrade 里的 versionid 为前面步骤看到的列表中的其中一个,比如 848374799
  3. 开启模块: iOS app downgrade
  4. 断开 Brook,重新连接。
  5. 从 iTunes 资料库 Library 右键删除刚才下载 YouTube App。重新下载 YouTube iPhone App。从资料库 Library 能看到已经下载的旧版本 YouTube,右键可以查看 ipa 位置。

如果发现下载的版本不是期望的版本。历史版本 ID 列表是顺序排列的,自己跳跃着下载下来看看,修改 versionid 并重复以上步骤重新下载

安装 ipa 文件到手机

这里使用 ideviceinstaller,macOS 有 brew 可以直接安装。Windows 不想自己编译的话,这里有编译好的,用这个吧先。

必须是同一个 Apple ID

  1. 先卸载 iPhone 上的 YouTube
  2. 把 iPhone USB 连线到 Windows
  3. 我用的是 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

遇到的情况分享一下:

视频

https://www.youtube.com/watch?v=-njbSgXRlAo

视频可能过时,但大体步骤仍可以参考