📱 两大移动操作系统体验报告

从 Pixel 换到 iPhone 后日谈。

Pixel iPhone
开放性 🟠2025年,Android 还能称之为开放吗¹ 🟠支持侧载
文件管理器 🟢感谢开源社区 🟠答辩,应该是有三方替品,但是不在Github上?
通知管理 🔴什么是通知? 🟢支持通知AI总结
代理 🟢Root 后以 Linux 方式运行二进制,adb shell settings put global http_proxy 设置全局代理 🔴对自建用户完全不友好²
容器 🟢Termux + Chroot,支持XRDP 🟠iSH³
虚拟机 🔴Pixel 6 的虚拟机,到今天实现了吗? 🟠UTM + JIT
软件侧载 🟠未来可能受限 🟠SideStore 需 7 天续签
Switch 模拟器 🟢Torzu,但没有 Tensor GPU 驱动 🟢MeloNX
漫画 🟢Tachiyomi 🟢Aidoku
运营商 🟠仅 GrapheneOS 提供完整支持 🟢
NFC 公交卡 🔴Google Wallet 里刷八达通需要八达通 APP 常驻后台,何意味 🟢
归属地 🟢CC来电拦截+ 🟠闭源第三方,稍花哨
Circle to Search 🟢神中神 🟠也不是不能用
智能助手 🟢神中神 🔴纯纯的答辩,什么玩意儿
浏览器 🟢原生内核 🔴Safari 套壳,不支持扩展

¹ 2025年,Android 还能称之为开放吗

我最近一次通过刷机体验其他定制化UI应该是在什么时候?我记不太清了,也许是OnePlus 8 Pro上的Flyme OS。转投Pixel后,在享受原生Android优雅的同时,我也惊讶地发现:那些曾经活跃的第三方UI移植大都只剩GSI,类原生系统项目过的也不太好。

2012年,我拿到了第一部真正的安卓手机:摩托罗拉XT502。在Android 2.1的年代,你可以使用360安全卫士直接获取ROOT权限,第三方ROM项目,乐蛙、百度云、TencentOS、MIUI、FIUI、CyanogenMod百花齐放。到后来使用gucci、whyred、grus的时候,SuperSU/Superuser/Xposed刚挂,Magisk/EdXposed就出来继任。Flyme、魔趣、crDroid、Evolution X,那段时间XDA论坛每天都有新ROM发布,开发者社区异常活跃。

随着厂商对BL权限的收紧以及安卓系统本身的完善,刷机的人确实越来越少了。小米今年全面关闭了BL解锁通道,三星的OneUI 8直接移除了解锁BL的选项。现在还愿意开放BL的,基本只剩Pixel、黑厂系、索尼和摩托罗拉了。

说实话,对比iOS来说,开放性是安卓最核心的优势,但现在这个优势正在被谷歌自己丢掉。SafetyNet时代还能用模块直接绕过检测,但Play Integrity时代,整个游戏规则都变了。好不容易找到的密钥可能三天后就失效,然后又要陷入找密钥失效的循环,这种躲猫猫式的对抗让人难以接受。Google Wallet和部分Play商店应用彻底无法使用,不少App动不动就检测到Root直接闪退。

更讽刺的是,谷歌现在还打算限制安卓侧载APK,要求开发者签名验证。与此同时,欧盟的DMA法案反而逼着苹果在欧洲开放第三方应用商店。这算什么?安卓正在变成”有围墙的花园”,iOS反而在被迫拆墙。

从数据上看也能感受到这种衰落。LineageOS的用户量从2018年的300万跌到现在不足50万,XDA论坛ROM区从日均50多个新帖降到现在一周都凑不齐10个。开发者们要么转向了Magisk模块、LSPosed框架这些轻量化改造方案,要么干脆退圈了。

大刷机时代确实快要结束了。那些熬夜刷机、救砖、在论坛求助的日子,那些为了一个完美ROM反复折腾的执着,可能真的要成为时代的眼泪。但只要还有人愿意为自由付出代价,刷机精神就不会完全消亡。只是这个圈子会越来越小,越来越小众罢了。

² iOS代理体验谈

首先要感谢开源社区——V2Ray、Xray、Clash (Meta/mihomo)、sing-box这些代理平台,以及各种协议开发者的无私贡献。在使用了Surge的Snell后,才发现世界上原来有这么简陋的服务端:仅有绑定IP和端口、密钥和IPv6开关三个选项,最简单的Upstream居然都不支持,这样的协议还是闭源的,那iOS用户在代理这块吃的还是太差了。

Surge的迷思:当你不知道用户真正需要什么

用了Surge的Snell协议后,我才见识到什么叫”简陋”。服务端配置只有绑定IP端口、密钥和IPv6开关三个选项,连最基本的Upstream都不支持,这样的协议居然还是闭源的。Surge确实有强大的网络调试功能,MITM、脚本、模块系统做得很完善,但似乎忘了用户花几百块买这软件主要是用来干什么的——连VLESS都不支持,我还能说什么呢?

协议支持的尴尬现状

不少iOS客户端支持的直连协议只有VLESS Reality/Vision,对大部分自建用户来说这其实够了。但我没做过精确测试,凭使用感受来说,对于24小时挂着代理的人,VLESS的耗电确实比其他小众协议要高一些。

然后是ShadowTLS,我从形式上理解它是个链式代理,所以没怎么考虑。更让我困惑的是,许多客户端都支持了Juicity这个很久没更新的协议,而它甚至没有Android实现。

如果不是mihomo支持了Mieru,我可能真的没法继续用iOS了。顺便一提,我之前在Android上用的是NaiveProxy。Mieru在网络性能上确实比Naive好,而且支持UDP,但NaiveProxy基于Chrome网络栈伪装成正常HTTPS流量的思路应该是更优雅的。以上关于各个协议的推断都仅仅是我的猜想。

Karing:意外的救星

Karing是个基于sing-box的客户端,却神奇地支持了Mieru协议。考虑到sing-box的资源占用比Clash系要少很多,这可能是我目前的最佳选择了。虽然它是用Flutter写的,而我个人对Flutter这种跨平台框架没什么好感——界面总有种说不出的违和感,动画也不够原生流畅。

关于Clash系

说到Clash,Stash宣称自己基于Clash Premium,但那个版本早就停更了,主要是mihomo支持的协议他不支持。Pharos和ClashMi才更像一个Clash客户端该有的样子——直接导入完整配置文件而不是单个节点。Pharos虽然可调选项少了点,但至少核心功能是对的。

iOS用户在代理这块吃的确实太差了。

³ iOS上没有Termux的平替

Android毕竟有Linux内核加持,也没有二进制文件执行的限制,Termux这种终端模拟器用起来就很舒服,通过proot/chroot进完整的发行版后,基本能实现大多数Docker容器的功能,除了Systemd这种需要真正init系统的东西。想跑个服务、测试个脚本、编译个项目,都能直接在手机上搞定。转到iOS之前,我看到iSH是Alpine Linux实现,还挺期待的。结果用了才发现,这个基于Unicorn的x86 Linux Kernel 4.20虚拟机还有一堆Bug。不能运行Golang程序,那就丧失了七分乐趣。不得已转投UTM SE。没有JIT加持的UTM SE甚至表现不如超售到爆炸的E3,那还是自签吧。