网易首页 > 网易号 > 正文 申请入驻

一日一技|免电脑续签,让你的 iOS 侧载应用更无缝

0
分享至

编注:本文首发于 Lan Tian @ Blog,作者 @Lan Tian,少数派经授权转载。

SideStore 是一款常用的 iOS 应用侧载工具,可以绕过 App Store 安装第三方应用。它的工作原理是用你的 Apple ID 获取免费的苹果开发者证书,给你要安装的应用签名,从而让应用可以在 iOS 设备上正常运行。


然而,苹果为了维护其对 iOS 生态系统的控制,阻止第三方应用商店使用开发者证书大规模地绕过限制,对开发者证书设置了 7 天的过期时间。用户需要定期获取新的开发者证书,重新给应用签名,才能一直使用自己安装的第三方应用。

传统的侧载工具,例如 AltStore,都依赖电脑上的 iTunes 等软件进行重新签名的操作。但 SideStore 与其它侧载工具不同,它只有首次安装时需要电脑辅助。安装完成后,SideStore 可以自己模拟一台安装了 iTunes 的电脑,让 iOS 系统通过虚拟网络与其通信,从而实现无需电脑就能给应用重新签名,甚至安装新的第三方应用的效果。

SideStore 的虚拟网络一般可以用下面两种方式实现:

  • WireGuard:SideStore 可以在本机上创建一个 WireGuard 服务器。用户可以自行安装 WireGuard 客户端,并连接到这个服务器上,从而让 iOS 系统可以通过网络和模拟出的电脑通信。

    • 这种方法的缺点是,受到 iOS 系统限制,当 iPhone/iPad 通过移动网络上网时,WireGuard 客户端是连不上 SideStore 本地创建的 WireGuard 服务器的。因此,SideStore 只有在设备连接到 Wi-Fi 时才能正常工作。

    • 同时,由于 iOS 系统只支持同时连接一个 VPN,如果用户需要使用别的 VPN 软件,就只能手动切换 VPN,操作比较麻烦。

  • StosVPN:是 SideStore 团队开发的专用 VPN 客户端,只能用于 SideStore。

    • 相比于 WireGuard,StosVPN 不会受到 iOS 的限制,可以在设备通过移动网络上网时正常工作。但是我试用后发现,StosVPN 无法长时间保持在后台运行,经常会自动断开。如果有一段时间没有使用 iOS 设备,同时 StosVPN 断开了连接,SideStore 以及其它第三方应用没能及时续期,就只能重新连接电脑,给这些应用签名了。

    • 同时,由于 StosVPN 也是 VPN,它同样受到 iOS 系统只支持同时连接一个 VPN 的限制。

于是我就想尝试分析 SideStore/StosVPN 的工作原理,看看能不能把它们集成到我的家庭网络或者 ZeroTier SDN 网络里,让 SideStore 无需额外的 VPN 配置就能正常刷新。

StosVPN 的工作原理

根据 StosVPN 的关键数据包处理逻辑,StosVPN 大致做了以下几件事:

  • 给 iOS 设备分配 IP10.7.0.0,让 iOS 把10.7.0.0/24这个网段的数据包发送到 StosVPN。

  • 定义了一个 IP10.7.0.1,StosVPN 将在这个 IP 上模拟装了 iTunes 的电脑。

  • 对于每个数据包:

    • 如果数据包是从10.7.0.0发给10.7.0.1的,就交换数据包的来源和目标 IP,从而把数据包发回给 iOS 设备。

这个逻辑看起来很简单,实际上也一点都不复杂。实际上,SideStore 就是在 iOS 设备本地打开了一系列端口,模拟安装了 iTunes 的电脑。假设 iOS 在尝试连接模拟出的电脑时创建了这样一条连接:

TCP

10.7.0.0:12345

10.7.0.1:54321

那么 WireGuard 或者 StosVPN 就会交换来源和目标 IP(但不交换端口号),将数据包改写成以下的样子并发回 iOS 设备:

TCP

10.7.0.1:12345

10.7.0.0:54321

从 iOS 设备看来,这是一条从10.7.0.1发来的新 TCP 连接,与上一条发往电脑的连接没什么关系。由于 iOS 尝试连接到的端口(此处以54321示例)应当是 iTunes 的端口,而 SideStore 又在本地模拟了 iTunes,所以 SideStore 此时也应在监听54321端口,并收到了数据。

SideStore 模拟 iTunes 的逻辑处理完数据,并生成一个回复:

TCP

10.7.0.0:54321

10.7.0.1:12345

WireGuard 或者 StosVPN 又会交换来源和目标 IP:

TCP

10.7.0.1:54321

10.7.0.0:12345

这一个回复数据包就对上了最开始发往电脑的连接。iOS 因此认为自己收到了电脑上 iTunes 的回复,从而继续更新开发者证书。

用 Nftables 模拟 StosVPN 的工作逻辑

了解了 StosVPN 的工作原理,我们只需要在自己的网络里模仿它的工作逻辑就可以了。

如果你只有少量的 iOS 设备,并且给它们都分配了固定 IP,而且有一台运行 OpenWrt 或其它 Linux 系统的路由器,你直接用以下 Nftables 规则就可以了:

table inet sidestore {

chain RAW_PREROUTING {

type filter hook prerouting priority raw; policy accept;

# Replace 192.168.0.xxx here with your iOS device's IP address

ip saddr 192.168.0.123 ip daddr 10.7.0.1 ip saddr set 10.7.0.1 ip daddr set 192.168.0.123 notrack;

ip saddr 192.168.0.234 ip daddr 10.7.0.1 ip saddr set 10.7.0.1 ip daddr set 192.168.0.234 notrack;

# Add more rules as needed

上述规则的用途是,如果收到了来自你的 iOS 设备(192.168.0.123192.168.0.234)发往10.7.0.1(虚拟电脑)的数据包,就把数据包的源 IP 改成10.7.0.1(虚拟电脑),目标 IP 改成你的 iOS 设备(192.168.0.123192.168.0.234),然后发送出去。此处的notrack是关闭连接跟踪,防止 Linux 用这些数据包去匹配之前收到的数据包和连接跟踪条目,导致规则不生效。

由于 Nftables 不支持将数据包的来源/目标 IP 等信息用作变量,无法用一组规则实现「交换来源和目标地址」的目的,所以我们需要给每台 iOS 设备都添加一条规则。如果你的 iOS 设备比较少,可以给每个设备的 IP 都单独写一条规则。但如果你的设备很多,或者没有固定 IP,你就需要给家庭网段内的每一个 IP 都写一条规则,非常麻烦。同时,如果你的路由器不支持 Nftables 或类似的防火墙功能,无法用类似的方式改写数据包,也无法实现这样的功能。

SideStore VPN 工具

https://github.com/xddxdd/sidestore-vpn

如果你无法使用上面的方法,我也写了一个实现上述逻辑的小工具:SideStore VPN 工具。它可以在 Linux 设备上创建一个 TUN 接口,监听发往10.7.0.1的数据包,并用和 StosVPN 相同的逻辑处理这些数据包。

要在你的网络内使用这个工具,你需要准备一台运行 Linux 的设备(例如树莓派或者虚拟机),将它连接到 iOS 设备所在的同一个内网中,并设置一个固定 IP。由于工具改写后的数据包可以看作是从这个 Linux 设备向 iOS 设备的一条新连接,所以 iOS 设备和这个 Linux 设备之间不能有防火墙或者 NAT,否则这条新连接会被拦截,导致 SideStore 的模拟电脑无法正常收到请求。

然后,执行以下操作:

  • 在 Linux 设备上开启 IP 转发(IP Forwarding):

echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf

sudo sysctl -p

  • 在设备上安装 Rust 和 Cargo。

  • 运行以下命令,安装并启动 SideStore VPN 工具:

git clone https://github.com/xddxdd/sidestore-vpn.git

cd sidestore-vpn

cargo build --release

sudo target/release/sidestore-vpn

SideStore VPN 工具会创建一个名为sidestore的 TUN 设备,并设置系统路由将发往10.7.0.1的流量全部交给工具处理。

  • 在你的主路由器上添加一条静态路由:

路由: 10.7.0.1/32 子网掩码 (如果需要): 255.255.255.255 网关: 前文中 Linux 设备的 IP 地址。

为了最大限度地避免 IP 冲突,这条静态路由只影响10.7.0.1一个 IP 地址。但如果你的路由器不支持创建 /32 路由,你可以调整子网掩码,扩大这条路由规则的影响范围,只要不与其他设备冲突即可:

路由: 10.7.0.0/24 子网掩码 (如果需要): 255.255.255.0 网关: 前文中 Linux 设备的 IP 地址。
  • 用内网中的任何一个设备 Ping10.7.0.1,此时应该可以 Ping 通。

现在在你的 iOS 设备上断开 WireGuard 或者 StosVPN,然后用 SideStore 尝试刷新应用。即使不开 VPN,SideStore 应该也可以正常刷新证书了。

https://sspai.com/post/103368?utm_source=wechat&utm_medium=social

作者:Lan Tian

责编:克莱德

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
俄特种部队嘲讽美军抓马杜罗:这不算什么,我们也能抓泽连斯基

俄特种部队嘲讽美军抓马杜罗:这不算什么,我们也能抓泽连斯基

桂系007
2026-01-06 01:44:56
市井、病榻与战场,晚清影像里的时代肌理

市井、病榻与战场,晚清影像里的时代肌理

历史小破站
2025-12-17 05:00:03
田朴珺删光王石合影,王石:每晚最难熬是等她回家,不知道回不回

田朴珺删光王石合影,王石:每晚最难熬是等她回家,不知道回不回

眉眼动人
2026-01-04 11:41:23
《逍遥》大结局被骂烂尾?红烨献祭、秉烛黑化,观众气到弃剧!

《逍遥》大结局被骂烂尾?红烨献祭、秉烛黑化,观众气到弃剧!

草莓解说体育
2026-01-07 09:42:41
创业板指刷新阶段高点

创业板指刷新阶段高点

界面新闻
2026-01-07 09:35:34
英法德意等欧洲七国领导人发布联合声明:格陵兰岛属于其人民

英法德意等欧洲七国领导人发布联合声明:格陵兰岛属于其人民

环球网资讯
2026-01-06 21:26:12
演员关凌发文称自己用针挑开儿子脸上的“痘”,导致儿子做手术缝了4针:脸上长东西千万不要用手挤

演员关凌发文称自己用针挑开儿子脸上的“痘”,导致儿子做手术缝了4针:脸上长东西千万不要用手挤

观威海
2026-01-06 14:42:11
考辛斯:湖人的问题在于防守,东契奇与哈登弱点相同却不同命

考辛斯:湖人的问题在于防守,东契奇与哈登弱点相同却不同命

林子说事
2026-01-07 05:33:45
上海出现“雷打雪”?气象台回应了!

上海出现“雷打雪”?气象台回应了!

看看新闻Knews
2026-01-06 22:21:09
杜文秀之乱多惨烈?攻占云南五十三州县 人口减半,曾向英、土求援,最终结局如何

杜文秀之乱多惨烈?攻占云南五十三州县 人口减半,曾向英、土求援,最终结局如何

历史回忆室
2026-01-06 15:54:21
博主:周定洋被推给多个俱乐部但有价无市,深圳也不想破例

博主:周定洋被推给多个俱乐部但有价无市,深圳也不想破例

懂球帝
2026-01-06 17:53:13
白嫖摄影师后续:单位传开已社死,朋友曝更多,白嫖只是冰山一角

白嫖摄影师后续:单位传开已社死,朋友曝更多,白嫖只是冰山一角

蜉蝣说
2026-01-04 15:46:13
医院实习生里的卧龙凤雏,闯的祸堪比犯天规,带教:差点踩缝纫机

医院实习生里的卧龙凤雏,闯的祸堪比犯天规,带教:差点踩缝纫机

王二哥老搞笑
2025-12-28 11:00:37
高中生扶老人被讹50万,15年后老人孙子考上清华,在校门口跪下求饶

高中生扶老人被讹50万,15年后老人孙子考上清华,在校门口跪下求饶

红豆讲堂
2025-07-14 17:21:43
中美达成默契共识,委内瑞拉要交给关键人物?马杜罗已被带上法庭

中美达成默契共识,委内瑞拉要交给关键人物?马杜罗已被带上法庭

博览历史
2026-01-06 15:06:00
演都不演了!田朴珺承认嫌王石烦,她给所有的老夫少妻都提了个醒

演都不演了!田朴珺承认嫌王石烦,她给所有的老夫少妻都提了个醒

涵豆说娱
2026-01-04 18:40:14
最新 | 取消期末统考?多地突然宣布!专家回应!

最新 | 取消期末统考?多地突然宣布!专家回应!

天津广播
2026-01-06 23:35:44
王石与田朴珺视频流出!她没了仰慕和爱意,他的眼睛透出一股寒意

王石与田朴珺视频流出!她没了仰慕和爱意,他的眼睛透出一股寒意

火山詩话
2026-01-07 06:53:05
伊朗示威抗议活动进入第十天,至少已有36人死亡

伊朗示威抗议活动进入第十天,至少已有36人死亡

紫京讲谈
2026-01-07 09:30:47
上海铁路局禁止售卖泡面?站内多个便利店证实车站不让卖;客服中心:未禁止,但不提倡吃

上海铁路局禁止售卖泡面?站内多个便利店证实车站不让卖;客服中心:未禁止,但不提倡吃

大风新闻
2026-01-06 20:28:05
2026-01-07 11:12:49
少数派sspai incentive-icons
少数派sspai
高品质数字消费指南
4964文章数 28294关注度
往期回顾 全部

数码要闻

纯秀肌肉:海信发布163英寸巨型电视 3317万个发光像素

头条要闻

李文荣被公诉:泄露尚未公开企业重组信息 搞权色交易

头条要闻

李文荣被公诉:泄露尚未公开企业重组信息 搞权色交易

体育要闻

全明星次轮票数:东契奇票王 詹皇超KD升西部第8

娱乐要闻

2026年央视春晚彩排:沈腾确定回归

财经要闻

茅台为何要和分销商彻底说拜拜?

科技要闻

马斯克杀疯了!xAI官宣200亿美元融资

汽车要闻

摩登出街潮品 实拍奇瑞QQ冰淇淋女王版

态度原创

教育
数码
家居
手机
军事航空

教育要闻

定了!多所高校发布2026保送新政

数码要闻

联想官宣6月推SteamOS版Legion Go 2掌机

家居要闻

宁静不单调 恰到好处的美

手机要闻

2亿像素还得等等 苹果计划2028年首次搭载

军事要闻

美称对“占领”委内瑞拉保留选择权

无障碍浏览 进入关怀版