时光

时光的时光轴

寄以时间,予以文字
telegram
github
微信公众号

在iPhone上安装任意App

你可能对聊天软件双开有着不小的需求(比如小而美),又或是从朋友那了解到一些奇奇怪怪的 App,但是因为苹果的 App 机制,他们并不能直接让你安装在设备上使用。

所以了解的多的朋友会看到一些熟悉的名词:XX 签,企业证书,开发者证书,AltStore 之类的。这里要再提及一下 AltStore 的原理:

这些软件都是通过苹果为开发者准备的 “自签证书” 实现的,为的就是方便开发者在 App 没上架前,在自己的设备上开发。AltStore 通过在局域网内运行起来一个服务器,模拟一台 Mac 去完成证书的申请和签名,最后将签名的软件发送到手机上安装。

不过这么搞起来还是不太方便:

  • 开发者自签证书只有 7 天有效期,时间一过你的 App 就运行不了了。
  • 你只能在运行了 AltStore 服务器的局域网内安装与重新签名软件。

第一个问题好解决,时间不够次数凑,快到 7 天了重新签名就是。第二个呢?那本文就要介绍由开源社区驱动的 Altstore 分支SideStore

它通过配合 WireGuard,来欺骗系统,让他以为现在正在安装的软件包是局域网内来的,并且 SideStore 通过HTTP协议开发了签名服务端。这样,便可在任何地点去完成签名。

安装 SideStore#

SideStore 官方暂时还没有开发Windows版本的安装服务器,所以此部分会分别写下来。

开启开发者模式#

如果你的手机系统版本更新到了iOS16.0,那么你需要在系统中打开开发者模式

开启路径是设置App 隐私与安全性 开发者模式

open_developer_mode-2.png

你会被要求重启设备,重启之后会要求输入一次密码,这样就完成了开启。

在 Mac 上安装#

访问SideServer-Macos 项目,在Releases中下载最新版本,然后打开。

SideServer 会运行在状态栏,和 AltStore 的安装方式一样,将你需要安装的设备连接到 Mac,然后点击SideServer图标 选择Install SideStore...然后选择你的设备名即可。

iShot_2023-02-11_18.53.21.png

你会被要求使用一个Apple ID,在这一步里,使用你设备上的登陆了的账户就行,如果你有已知的开发者账户那会更好。

在 Windows 上安装#

目前SideServer-Windows项目还没有开发出第一个 Release,但是我们可以通过AltServer来安装SideStore
SideStore 的.ipa可以从SideStore 项目下载。

根据目前的教程描述,你的电脑上需要安装iCloudiTunes

访问AltStore,然后下载 Windows 版本客户端并运行。连接你的设备,按住Shift并单击 Altserver 的图标,选择Sideload.ipa,然后选择SideStore.ipa

26e1a4ae-570c-4641-b17c-f8b5b81496ab.png
图片来源:https://www.feng.com/post/13660328

在设备上信任#

稍等一会你会在设备上看到SideStore的图标,尝试打开它,如果提示未信任之类的信息,请前往设置App 通用 设备管理然后选择你刚刚登陆的Apple ID,然后信任它。

如果你开启了开发者模式并在刚才使用设备上已登陆的账户来安装 SideStore,你可能无需操作此步骤。

sidestore-2.png

软件长得和 AltStore 差不多,换了个颜色。

搭建 Anisette 服务#

先别急着在 SideStore 里面登陆,Anisette是用来为 SideStore 提供签名软件功能的部分,使用D 语言编写(你就把它当作 Java 和 C++ 的混血就行),怎么运行我们不用管,直接使用官方提供的 Docker 镜像来完成部署即可。

镜像名:dadoum/anisette-serverAnisette 项目地址

官方提供的docker run命令:docker run -d -v lib_cache:/opt/lib/ --restart=always -p 6969:6969 --name anisette dadoum/anisette-server:latest

如果你需要自定义部署,解读命令可知,Anisette 需要提供一个目录映射到容器/opt/lib/,并且转发6969端口出来,你可以根据自己的实际需要来更改部分。比如lib_cache可以修改为一个路径而非存储卷。

运行之后当你看到日志里面出现了这些:

Archive:  applemusic.apk
  inflating: lib/x86_64/libCoreADI.so
  inflating: lib/x86_64/libstoreservicescore.so
Machine requires provisioning... done !

就代表成功运行起来了,用浏览器访问开放出来的6969端口,应该返回类似内容:

{"X-Apple-I-Client-Time":"时间","X-Apple-I-MD":"xxx","X-Apple-I-MD-LU":"xxx","X-Apple-I-MD-M":"xxx","X-Apple-I-MD-RINFO":"50660608","X-Apple-I-SRL-NO":"0","X-Apple-I-TimeZone":"UTC","X-Apple-Locale":"en_US","X-MMe-Client-Info":"<MacBookPro17,1> <macOS;12.2.1;21D62> <com.apple.AuthKit/1 (com.apple.dt.Xcode/3594.4.19)>","X-Mme-Device-Id":"xxx"}

没有可以运行 Docker 的设备怎么办#

官方考虑到了这个情况,所以官方文档中提到了使用Render服务来运行的方法,你可以在安装文档中了解详细。

不过使用同类支持运行 Docker 容器的服务也能安装,比如Heroku,不过现在不免费了。你应该可以在网上搜到不少提供类似服务的产品。

家用电脑也可以#

也许你家里有软路由之类的东西,反正能运行 Docker 就行,不难看出,这个 Anisette 通过HTTP协议来完成交互,意味着你可以通过Cloudflare ZeroTrust Tunnel之类的产品,将 http 服务器放到公网上。

提一嘴这个想法,本文不会记录操作。

修改 SideStore 里的 Anisette Server#

搭建好 Anisette 服务后,打开设置App SideStore关闭Use preferred servers然后在Anisette URL里面输入你刚刚搭建好的地址。

setup-2.png

如你在图片里面看到的,我使用反向代理来为 Anisette 服务添加了 HTTPS,这样输入的时候也可以省掉端口。

安装 WireGuard#

此步骤需要一个非国区的 AppleID 完成,直接在 App Store 里面下载就行,当然,通过AltStore先安装一个也不是不可以...

然后下载提供的WireGuard 配置文件,如果链接失效,也可以试试直接新建一个SideStore.conf文件,然后写入如下内容:

[Interface]
PrivateKey = AIIeeUDvk3NeAFJ9BWCQvPJize/9WZibMnGJ/0rt5k4=
Address = 10.7.0.10/24

[Peer]
PublicKey = kHDoekeYhBvfW9a9UQ+UCmpbG423eejTjcjW+DT+JF0=
AllowedIPs = 10.7.0.1/32
Endpoint = 127.0.0.1:51820
PersistentKeepalive = 25

然后启动!

0988e41d-d036-4d41-b035-50e3d3aed46c.png

安装一个 App 试试看#

打开 SideStore,在Settings登陆你的 Apple ID,如果你的 Anisette 服务器工作正常,那么你会正常登陆。

然后来到Browse,找一个软件下载试试,我看中了Flappy Bird

e5dfc48e-3215-4689-be9d-121bb735d45c.png

如果你之前的步骤都没问题,那么这个Flappy Bird不久将出现在你的主屏幕上,并且可以正常打开游玩。

安装 IPA#

安装的过程很简单,在My Apps里,左上角的+加号,然后选择保存在手机里面的 App 即可。

如果你是相关软件开发者,可以参考SideStore URL 定义来方便你的用户安装。

注意事项#

  • 安装完成后记得断开WireGuard的连接。
  • 如果你是免费开发者账户(没有向果子贡献过 688)每个账户只能同时激活三个 App
  • 如果你是免费账户,那么每 7 天就需要重新签名,记得打开Settings里面的Background Refresh,如果在 7 天内你没有更新SideStore的签名,那么你需要重复安装SideStore章节。
  • 尽量避免不搭建私人的 Anisette 服务,公共的服务器就目前来说,因为模拟的设备固定,苹果会看到一台设备同时登陆了很多 Apple ID,这样会导致你的账号也一起被一锅端。
  • 避免安装未知来源的第三方 App,虽然有沙箱机制保护,但是就像unc0ver越狱一样,一个 App 就能拿到系统最高权限。
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。