大概一个月前捡了个垃圾--Xperia X Performance,坑爹的索尼香港,没给港版 XP 推送 Oreo 的更新,无奈之下只能刷了台版,感觉食用良好。有个问题困扰了我很久,就是冰箱和 AppOps 每次重启都要 adb 一下才能工作很麻烦,于是有想 ROOT 掉手机的想法,之前是顾虑到会丢失算法,但当我了解到可以通过备份 TA 然后作为补丁修到内核里去完美实现“无损”解锁之后就毫无顾忌了,于是开始以下的折腾。所需的东西我分享到了以下地方
- 工具 - OneDrive
- FTF - 百度云,密码:a6kc
注:如果你的手机没有备份到 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。刷机
遵循以下步骤进行刷机
- 备份数据
- 将 Magisk 和 DRM-Fix_System_Mode(如果你的手机没备份 TA 就刷这个)放入手机内部存储不会被刷掉的地方(外部 SD 卡或者带 MicroUSB 口的 U 盘最好)
- 用 flashtool 刷入官方 Oreo 的 FTF,Wipe 掉所有,exclude 里选择 fotakernel
- 刷完之后不要开机
- 进入 fastboot 模式。进入姿势:按住音量加,然后连接 USB。看到呼吸灯变成蓝色
- 运行命令,
fastboot flash boot boot.img
- 刷入 rec,
fastboot flash recovery twrp-3.2.3-0-dora.img
- 拔掉 USB,进入 twrp,进入姿势:音量减+电源键,屏幕亮起松开电源键,保持音量减。
- 在 twrp 里刷入 DRM-Fix_System_Mode(如果没有备份 TA)
- 刷入 Magisk
修改/system 分区应用
刷了 Magisk 后我们就有 ROOT 权限了,可以将系统一些用不着的东西从系统分区里去掉,比如谷歌全家桶的大部分,也可以放些应用进去。在分享的资源的addons里有些 apk,其中有个谷歌的电话可以放入,比自带的多了一点东西(比如:“来电显示和骚扰电话”这个功能)。还有 XZ2 里自带的主题和桌面,这个桌面其中一个特性是会将图标统一成圆形,不过没有双击锁屏很可惜,不然我就用它了。后续发现有不错的会继续放入 OneDrive。