一加6刷机记录

前不久域主收来一台一加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找到替代。

目前我使用的模块有:

LSPosed我还没尝试过,据说是一种Xposed框架分支(基于EdXposed),不过我并不打算折腾国内应用,也几乎没有Xposed的需求,何况都还是酷安难民的产品嘛……


最后

也没什么想说的了,就放几张图片纪念一下吧,希望还能再战几年……至少也换掉了用了快10多年的三星S6了

最近在听鱼韵(サカナクション)的专辑 834.194,抛开出圈梗不提,听一听有时也是另一番风味。

至少,以后可以用手机版的WordPress记录想法了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)