callcc.dev

大概一个月前捡了个垃圾--Xperia X Performance,坑爹的索尼香港,没给港版 XP 推送 Oreo 的更新,无奈之下只能刷了台版,感觉食用良好。有个问题困扰了我很久,就是冰箱和 AppOps 每次重启都要 adb 一下才能工作很麻烦,于是有想 ROOT 掉手机的想法,之前是顾虑到会丢失算法,但当我了解到可以通过备份 TA 然后作为补丁修到内核里去完美实现“无损”解锁之后就毫无顾忌了,于是开始以下的折腾。所需的东西我分享到了以下地方
注:如果你的手机没有备份到 TA 就解锁了,那么可以直接跳到制作内核镜像那部分。

Δ备份 TA

最先我们要备份 TA,在这之前要先装flashtool,具体如何安装略过。确保系统是 6.0,不然要先降级,用 flashtool 刷 FTF 即可。然后将backupTA_v2解压出来,开启 USB 调试,连接手机,命令行切换到解压目录下运行backupTA.cmd,完成之后会得到一个大小刚好是 2,097,152 bytes 的镜像文件。这个镜像文件要好好保管,以后想养老回锁也用得到/_ \

Δ解锁

备份好 TA 之后手机就可以随意折腾了,前提是我们要将手机解锁,在索尼开发者中心的这个页面选择机型然后获取解锁码,根据官方的指示操作即可。

Δ制作内核镜像

把 rootkernel 压缩包解压,在filesystem_files里有个 txt 文件,内容是
adb pull /system/vendor/etc/fstab.qcom
adb pull /system/vendor/etc/init/hw/init.qcom.rc
adb pull /system/vendor/etc/init/hw/init.target.rc
明显,需要用到这三个文件,因此用 adb 取出来,运行上边的命令即可(确保 3 个文件在filesystem_files下)。 取出 8.0 FTF 包里的 kernel.sin,在 flashtool 的工具栏中选择 Tools->Sin Editor,选择内核,然后点击Extract data,然后我们就可以得到一个名为kernel.elf的镜像文件,接下来我们对它进行加工。
将 kernel.elf 和 TA 镜像放入 rootkernel 文件夹下,并把 TA 镜像命名为TA.img,这里注意大小写敏感。然后在这个目录下运行命令行,敲入命令rootkernel.cmd kernel.elf boot.img。提问全部敲入 Y,如果没有 TA 镜像,那么在问**Install DRM fix? [Y/n]**的时候敲入 n。

Δ刷机

遵循以下步骤进行刷机
  1. 备份数据
  2. 将 Magisk 和 DRM-Fix_System_Mode(如果你的手机没备份 TA 就刷这个)放入手机内部存储不会被刷掉的地方(外部 SD 卡或者带 MicroUSB 口的 U 盘最好)
  3. 用 flashtool 刷入官方 Oreo 的 FTF,Wipe 掉所有,exclude 里选择 fotakernel
  4. 刷完之后不要开机
  5. 进入 fastboot 模式。进入姿势:按住音量加,然后连接 USB。看到呼吸灯变成蓝色
  6. 运行命令,fastboot flash boot boot.img
  7. 刷入 rec,fastboot flash recovery twrp-3.2.3-0-dora.img
  8. 拔掉 USB,进入 twrp,进入姿势:音量减+电源键,屏幕亮起松开电源键,保持音量减。
  9. 在 twrp 里刷入 DRM-Fix_System_Mode(如果没有备份 TA)
  10. 刷入 Magisk

Δ修改/system 分区应用

刷了 Magisk 后我们就有 ROOT 权限了,可以将系统一些用不着的东西从系统分区里去掉,比如谷歌全家桶的大部分,也可以放些应用进去。在分享的资源的addons里有些 apk,其中有个谷歌的电话可以放入,比自带的多了一点东西(比如:“来电显示和骚扰电话”这个功能)。还有 XZ2 里自带的主题和桌面,这个桌面其中一个特性是会将图标统一成圆形,不过没有双击锁屏很可惜,不然我就用它了。后续发现有不错的会继续放入 OneDrive。