手机选择

如果是为了刷原生而买手机,买一加,或者小米吧。这两个适配的很快(还是用户群体比较给力),一加 8T 在发布后一个半月后就有了官方 Pixel Experience,而一年前的小米 10 现在还只有 Unofficial PE。

一定要买膏通削龙的 SoC,联发科和麒麟目前暂时别想用原生了。

ROM 选择

有条件还是搞个梯子,不然 ROM 很难下的。

  • Lineage OS,不过似乎已经很久没有适配新机型了
  • Pixel Experience,自带 Gapps,主推(当然前提是你有梯子并且想用 Google Play 服务)。
  • CRDroid,没用过、
  • ArrowOS

Recovery 选择

无脑选 TWRP

Root 选择

Magisk

在 Magisk v22 搞了一个 MAGIC™🌈 操作,把 Manager 和 zip 包集成到一个 apk 里了,卡刷前把 apk 改为 zip 即可刷入。

数据备份

敢玩原生的,应该对重要数据应该一直都有数据备份吧。

需要备份的:

  • 联系人(导出为 vcf)
  • 图片视频(安利 Syncthing,可以自动和电脑双向同步文件夹,并且可以 p2p 内网穿透)
  • 便签
  • 200 个 apps 的 apk(由于跨系统刷机,这里不做数据备份,只备份apk。由于我有 200+ 个 apk,包含能在酷安下载的、不能在酷安下载的,因此直接备份 apk 是有必要的;数据备份可以使用钛备份专业版,不过需要旧手机拿到 root)
  • xykey(密码本子,无联网权限,只能导出文件进行备份)
  • Nova Launcher 的布局(导出一个 .novabackup)
  • WiFi 密码,后面会细说

驱动安装

如果不安装驱动,adb 和 fastboot 就不能识别到手机。注意 adb 和 fastboot 的驱动是两种驱动,adb 能工作不代表 fastboot 能工作。

安装原始设备制造商 (OEM) USB 驱动程序 | Android 开发者 | Android Developers 最下面有各个厂商的驱动

adb fastboot 命令

进入 fastboot 状态后

1
2
3
fastboot devices
fastboot flash recovery <twrp.img>
fastboot reboot

我的小米 Mix 2s 一刷就报错,换电脑换线都没用,很奇怪。后来发现一个解决方法:

  1. 手机进入 fastboot 不连接电脑
  2. 电脑 fastboot flash recovery twrp.img,卡在 <waiting for any devices>
  3. 手机连接电脑,连接以后就会自动刷入,不会报错

进入 recovery

图形界面,比较好操作,但是由于系统等原因可能还是会比较复杂。可能会有以下一些操作:

  • 格式化 /data:如果原分区有加密,twrp 显示无法挂载 /data,就需要格式化 /data(注意,这不等于清除 /data)。
  • Pixel Experience 等类原生会对 /data 加密,密码为开机密码。在 TWRP 3.5 以上输入密码即可解密,而 TWRP 3.4 是不支持解密的,故尽量使用 3.5 以上的 TWRP

用 adb 批量安装 apps

200+ 个 app 安装起来可不是说着玩的。由于 apk 全部备份在电脑,就直接走 adb 安装了:

1
2
3
:: 在 App 同目录下执行
adb devices
for /f "delims=" %i in ('dir /b /a-d /s .') do adb install "%%~nxi"

Wifi 密码备份、恢复

这里只讨论通过 config 文件对 Wifi 密码进行备份、恢复。Google 账户似乎有同步功能,但我的没法用。

Wifi 密码的存储路径,几个安卓版本都稍有区别。据不完全统计,Android 不同版本的 Wifi 存储路径如下表。

Android 版本 存储路径
Android 7.1 (N) /data/misc/wifi/wpa_supplicant.conf
Android 9 (P) /data/misc/wifi/WifiConfigStore.xml
Android 11 (R) /data/misc/apexdata/com.android.wifi/WifiConfiStore.xml

不同系统还可能有差别,具体以你的系统为准。

其中 wpa_supplicant.confWifiConfigStore.xml 需要转换,可参考万能的 GitHub

密码的备份无非就是把文件复制出来,而恢复就会稍微麻烦一点了,如果直接覆盖后重启,会发现文件又被改回去了。

万能的 GitHub 也给出了方案,以下是中文描述:

  1. 关闭 Wifi
  2. WifiConfigStore.xml 复制并覆盖对应文件
  3. 修改 WifiConfigStore.xml 的权限为 600,owner 为 system:system
  4. 删除 /data/misc/wifi/WifiConfigStore.xml.encrypted-checksum(我的 Android 11 并没有这个文件,于是跳过)
  5. 重启,重启后可以看到连过的 Wifi 都回来啦
  6. 开启 Wifi

原生管理

原生确实流畅,不过上了原生就得自己控制国内 app 自启了。常用工具有:

  • 冰箱(需 root,也可以用空调狗代替)
  • 黑阈(每次开机需要连电脑 adb,也可以用 root 替代 adb)
  • 绿色守护(需 root)

国内 OS 工具的替代