前不久域主收来一台一加6,但迟迟未有时间折腾,所以还在一直用没有更新的锤子坚果Pro2S,这几天手机满了,打算直接换成新机了。
虽然我这个用惯AOSP的安卓土著,试试锤子系统的感觉也还可以,今天来看Android 8.1的内核还是太过时了:很多应用开始要求安卓9才能运行了(好似KitKat 4.4的时候),一眨眼间安卓已经迭代到14版了,索性我就在一加6上重新研究搞起刷机的兴趣了……
前言
域主我从Android 2.3开始玩,刷过小米、谷歌Nexus、Pixel、三星等等各种手机,也折腾过一些二合一平板,后面还拿到了Unihertz Titan和Fxtec Pro1X这些奇葩键盘机……
不过现在的我早已和时代脱节了,现在我更喜欢玩电脑硬件装机。哎,青春真是一去不复返……
这部一加6用途主要是用那些中国国内的软件,只需要能稳定快速的运行那些“财团A&T的毒瘤”,能用指纹支付、基本的GMS应用运行,就满足了。
我一直是双持用户,现在家里屯了好几个海外手机,那些海外的网络生态还是交给那些(机子)处理吧,虽然我现在才知道Twitter变成了一个X(笑)
版本选择
虽然一加6的H2OS可以升级到安卓10,不是不能用,但是我并不喜欢OPPO的后门,而且一些在线功能貌似已经失效(虽然并不多,可是锤子都还能用呢!);最重要的是:
大氢亡了(悲)
OxygenOS的话虽然有稳定的安卓11,但是功能偏少,既没有本地化优势(其实就是指纹支付),也没有以前玩CM系ROM的那些独特的个性化界面的功能。因此,我决定刷一个第三方ROM系统。
于是本来刷了一个Lineage OS 20,但后来知道安卓13开始对文件系统进行了管控,导致我用第三方文件管理器(比如Mixplorer)不提权root就不能正常访问内部存储的文件系统,Google的操作越来越像苹果了,溜了溜了。
(不过看我硬盘上的文件,貌似还刷过ArrowOS?记得个性化程度比LOS高,但我没找到12的版本)
据说目前还保留以前文件机制的最后一个版本是Android 12,同时对权限管理也做得不错,正好还没怎么玩过安卓12,就去XDA翻来覆去,我把目光放在了12L的几个ROM上,候选剩下Syberia OS、crDroid
另外就是资源的时效性问题,很多ROM可能会不时删库,我现在才知道魔趣已经解散了,也有其他的ROM项目仓库为了给13腾地方就把12的编译发布(Build Release)清空了……
实践
根据以前刷Nexus、刷Pixel的经验,我就先去找了一下TWRP,就像用Windows的PE工具箱一样。滑动、高级、adb sideload、刷完成功启动、备份……结果换系统恢复的时候就出问题了。
不出意料是解密的问题,后来又知道钛备份已经不支持安卓11以上的版本了。去ROM的页面一看,CrDroid的作者也不再推荐使用TWRP的方式刷进去,crDroid是Lineage系的,有专用的Recovery可以刷。看来不得不告别TWRP了。
以下是XDA上crDroid的官方帖子 First-time installation ,首次安装的步骤原文:
- *Back up anything you want to keep from the phone’s internal storage to your computer/cloud storage, because we’re going to format the userdata partition in this process.*
- Download boot.img & rom zip to computer.
- Reboot phone to bootloader.
- Flash boot image to both slots (‘
fastboot flash boot_a boot.img
‘ then ‘fastboot flash boot_b boot.img
‘). - Reboot phone to bootloader.
- Use vol +/- keys to select recovery mode & press power button to enter recovery.
- On phone, choose “Apply update” > “ADB sideload” & then from computer, ‘
adb sideload path/to/rom.zip
‘ (substituting the actual path to the actual filename) to sideload the installation zip; the orange recovery header graphic will disappear until the process has completed (“error” messages like “no error”, or finishing at 47% on the computer are normal). - On phone, choose “Factory reset / Wipe data”, and confirm (note: this will erase everything from the phone’s internal storage; make sure that you have backed up anything you want to keep first!). If you want to try out f2fs as a filesystem for userdata, give it a shot. It should be stable. If you don’t know, just pick ext4; that’s what we’ve been using forever.
- On phone, choose “Advanced” > “Reboot recovery” to reboot into recovery on the newly-flashed slot.
- Use adb sideload to flash GApps or microG installer zips (MinMicroG installer requires you to choose “Advanced” > “Mount/unmount system” first, others might as well).
- Reboot into system.
- If you want to root with Magisk, complete the initial first boot setup, then reboot the phone back into recovery, choose “Apply update” > “ADB sideload”, and then from the computer, ‘
adb sideload path/to/latest_magisk.apk
‘ to flash Magisk, and reboot back to System afterwards. - ???
- Profit!
首先需要一个ADB工具包,可以自己配置到Shell,也可以用Scoop或者别的工具安装(我个人推荐晨钟、秋之盒,它们是可视化的调试工具,不过基本还是需要用到命令行执行)
根据上面的步骤来看,由于采用了AB分区机制,需要下载专用的boot recovery启动恢复包,用fastboot将boot.img分别刷进boot_a和b的分区中
fastboot flash boot_a boot.img fastboot flash boot_b boot.img
随后重启bootloader,用音量键进入专用的Recovery,在主界面选择Apply Update (应用更新)> ADB sideload模式,随后转到电脑上的终端命令行,输入adb sideload,再将刷机包本体拖进去,在adb sideload后方附加刷机包路径:
adb sideload ..\crDroidAndroid-12.1-20230415-enchilada-v8.14.zip
随后回到主界面,选择 Factory reset / Wipe data 恢复出厂双清,可选择格式化EXT4或者F2FS格式,为了运行稳定,我没有选择随机读写速度更快的F2FS,毕竟还是打算装点老游戏玩。
随后选择 Advanced > Reboot recovery,重启恢复分区, 此举是为了在AB分区中切换到新的活动分区。
至此,系统本体已基本安装完毕,可直接重启进系统初始化手机设置了。但如果要安装GApps和Magisk等组件,还需要做更多的设置。不过同样也需要初始化设置一次。
GApps
GApps我使用的是 NikGApps ,相较于OpenGApps可以定制编译需要的组件,甚至可以包含Lawnchair等其他应用。
预编译默认分为Core、Go、Basic、Omni、Stock、Full六种版本:最基本的Core只包括GMS运行库所需组件,而从Basic开始增加谷歌拨号器、通讯录之类的应用,依次增加“谷歌Pixel口味”,具体可参考 nikgapps.com/downloads 页面。
对我而言,我只需Core版本足矣,其他的谷歌应用于我几乎无用,何况还可以从Play商店下载。唯独最需要的是输入法键盘——Gboard,包含在1GB左右的Omni版本中,总不能杀鸡取卵吧?
好在NikGApps不是完全捆绑,具有Addons附加组件的概念,将许多Core外的Google应用单独做成了附加包,其中就包含了Gboard的,可以随Core后一起刷入。
另外NikGApps还有一个Elite的编译版本,专门为那些知名的ROM开发者量身定制GApps安装包,crDroid便在此列:基于Core版,并附加了Google搜索和Assistant等谷歌应用,但没有替换拨号器之类的系统应用,偏向于Nexus原生而不是Pixel。
不过有时效性,目前只有安卓13的GApps,我就装不上了……
手机初始设置了系统以后,重启至Recovery打开ADB sideload,仍然是回到电脑上的终端窗口,输入adb sideload + 刷机包命令,不过此时刷的就是GApps了。注意的是,每次刷完一个包以后,要在手机上重新打开sideload模式才能继续刷入。
> adb sideload ..\NikGapps-core-arm64-12.1-20230716-signed.zip Total xfer: 1.00x ... > adb sideload ..\NikGapps-Addon-12.1-GBoard-20230716-signed.zip Total xfer: 1.00x > adb sideload ..\NikGapps-Addon-12.1-AndroidAuto-20230716-signed.zip Total xfer: 1.00x > adb sideload ..\NikGapps-Addon-12.1-MarkupGoogle-20230716-signed.zip Total xfer: 1.00x ...
随后重启,进入系统可见Play商店,但是打开即闪退,Gboard也不能正常使用。原因是目前的系统用户没有Google GMS应用所需的数据,这时只需恢复出厂重新设置,便可以使用Google的应用了。
严重的时候Google的所有网站都打不开、而Twitter可以访问(可见是ROM系统的谷歌DNS解析问题),使用系统的恢复出厂设置无法修复,可能就需要双清重刷了。
Magisk/Zygisk和相关插件
Magisk就是老生常谈了,apk本体便是zip安装包,内置Shell命令脚本,一样是在Rec中通过adb sideload刷入,刷起来还是很容易的,在GitHub仓库 topjohnwu/Magisk 获取Release安装包。
> adb sideload ..\Magisk-v26.1.apk Total xfer: 0.84x
时隔多年,随着Magisk作者入职Google后,发生很多变化,Magisk Hide的功能已经去除了,取而代之的是Zygisk API模块。以前折腾Pixel用的Riru模块不再更新,但几乎都可以在Zygisk找到替代。
目前我使用的模块有:
- Zygisk – FingerprintPay 指纹支付
- Zygisk – Sui (用于App Ops权限管理)
- Universal SafetyNet Fix
- NotoCJK(增强Noto Sans中日韩文字字体字重)
- Shamiko(类似Magisk Hide功能的Zygisk模块)(可参考大侠阿木的教程)
LSPosed我还没尝试过,据说是一种Xposed框架分支(基于EdXposed),不过我并不打算折腾国内应用,也几乎没有Xposed的需求,何况都还是酷安难民的产品嘛……
最后
也没什么想说的了,就放几张图片纪念一下吧,希望还能再战几年……至少也换掉了用了快10多年的三星S6了
最近在听鱼韵(サカナクション)的专辑 834.194,抛开出圈梗不提,听一听有时也是另一番风味。
至少,以后可以用手机版的WordPress记录想法了。