三星s9(scv38)刷机root过程记录
地区编码KDI,是个日版手机,完整基带代码:SCV38KDU1BSG3,找官方固件包的时候就照着这个找。
所有文件上传123网盘
https://www.123pan.com/s/xMzAjv-WR7dv.html提取码:RNKk
1、刷4件套
刷4件套的过程网上很多,参考地址:https://onfix.cn/course/165?bid=3&mid=1083
需要用到文件:
SAMFW.COM_SCV38_KDI_SCV38KDU1BSG3_fac.zip 官方4件套固件
Odin3_v3.14.1_3B_PatcheD.rar 电脑端线刷工具
SAMSUNG_USB_Driver_for_Mobile_Phones.rar 三星手机驱动程序
其中
官方4件套固件可以在https://samfw.com/firmware/SM-G9600/ 下载KDI版的
Odin3可以在https://odindownload.com/download/ 下载最新版
三星手机驱动,我是网上搜索下载的,应该都是通用的
2、解锁OEM
这个简单,直接打开开发者选项,解锁OEM,如果没有这个选项,说明可能是KG锁没解开,解锁会要求恢复出厂设置,而恢复出厂设置会导致KG锁上锁。。。所以如果有OEM就先解锁OEM
3、解锁KG锁
刚刷完4件套,手机恢复为原版系统,此时kg锁被上锁。开始解锁:
开机配置手机时,不要联网,直接修改时间为8天前(日期减8)关闭自动同步时间,打开开发者选项,关闭系统自动更新,打开USB调试,重启(好像不重启也可以),连接wifi,设置->软件更新(会显示设备注册之类的信息或者处理失败什么的不用管),如果有更新,暂停,多点几次更新(感觉有用),然后重启(好像不重启也可以),打开自动同步时间(设置正确的时间),然后点击系统更新(多点击几次,感觉有用),然后关机,进入下载模式查看KG锁状态,一般是已经解锁了。
上面的“恢复正确时间再次点击系统更新”,好像有时候可以省略,有时候又不行。
4、刷机
4.1、刷twrp
很多版本可选,有人说这个版本选择很玄学,不是越新越好,我实际刷机中选择了:twrp-3.2.1-0-starqltechn.img.tar
4.1、刷国行第三方rom
我刷的是番茄rom(http://rom.tomatolei.com/g9600.html),找的Android 9 的(又叫Pie)
装过Android 10的,但是和内核不兼容(也许新版的内核能够兼容,但需要测试,我懒得折腾,找了Android 9 兼容的)
Tomato-S9-G9600-G9650-SKA-v21-free(卡刷版).zip
v21 是最新的Android 9,更新的是Android 10 的了
进入recovery,然后保持系统分区只读,连接电脑,将刷机包拷贝到手机sd卡,然后安装,选择存储位置为SD卡,找到rom包,刷入番茄rom
实际操作时,我尝试重启,但明显陷入了无限重启中,回到recovery继续
4.2、刷内核
内核文件卡刷包:g9600_klabit_pie_V5.8.zip
v5.8这个版本是支持Android 9 的,我在https://github.com/klabit87/android_kernel_samsung_sdm845/releases上找的,更新版本的好像适配Android 10,懒得折腾了,就用Android 9
进入recovery,连接电脑,将内核拷贝到sd卡,安装找到内核,刷入
4.3、解决data分区加密问题
本来刷好内核就完了,但是三星手机的data分区默认是加密的,启动的时候虽然内核启动了,有开机动画了,但是,启动到一半失败了,又重启,我就猜是data分区加密的问题,根据https://xdaforums.com/t/official-twrp-sm-g9600-starqlte-chn.3803297/的说法,刷入了[RMM_patch+forceencrypt_remover.zip](https://www.androidfilehost.com/?fid=6006931924117921399),然后就好了。
这步操作是试出来的,是为了禁用data分区加密,至于为什么要禁用分区加密,原理不是很清楚。
还是用recovery刷入,文件是:RMM_patch+forceencrypt_remover.zip
看名字,作用好像是RMM的补丁(RMM就是KG锁)和强制移除加密。
4.4、格式化data分区
没有为什么,刷了这么多遍的经验告诉我,清空没有坏处,不清空可能有影响,至于是不是真的有影响,不知道。
最后重启进入系统
5、问题汇总
为什么刷第三方rom?
一开始我是没刷第三方rom的,直接刷内核,然后重启,结果内核启动后马上有失败了,重启,感觉是data分区加密导致的
但是,重启,开不了机了,为什么呢?
刷入内核后强制要求恢复出厂设置,恢复出厂设置后,官方原版系统将KG锁上锁了,启动时,由于KG锁上锁,Bootloader会检测内核,发现不是官方内核,直接拒绝启动。。。所以不是不可以用官方系统,而是不能在用官方系统的同时把KG锁上锁。但是恢复出厂设置又必然导致KG锁上锁,也许可以在关机之前解锁,但没试过,也许不行,都刷了内核了,怎么改时间更新系统触发KG锁解锁?
为什么刷了第三方rom还要刷内核?
番茄的内核无法启动,无限重启,感觉连内核都没有启动,毕竟这是为国行/港版机器提供的rom,日版的机器刷了,可能内核不兼容硬件,导致重启。
总结就是番茄没有专门为日版手机制作rom,这个刷机包是为国行和港版制作的,其中的内核对应的硬件也是国行/港版手机硬件的。(这只是我的猜测,但他自带的内核启动不起来是事实)
总体思路就是:
需要一个第三方system分区(系统),防止恢复出厂设置后KG锁上锁
需要一个第三方内核,替代官方内核,因为官方内核会检验系统是不是官方系统。https://twrp.me/samsung/samsunggalaxys9qcom.html 中也说了:
This device uses dm-verity!
This means that swiping to allow system modifications will prevent you from being able to boot if you are using the stock kernel. In order to bypass dm-verity's boot prevention, you will have to install a kernel that has dm-verity disabled in the fstab.
一些设备有dm-verity,会校验system分区是否被修改过,需要一个第三方内核来禁用dm-verity
需要禁用data分区加密,防止系统启动失败(为什么第三方内核不能用data分区加密我也不知道)
6、研究过程中遇到的对我有启发或误导作用的信息
https://zmis.me/user/zmisgod/post/1665
国行三星s8 的root过程,和我一样遇到了无限重启,他通过输入内核解决了无限重启的问题,这里启发我往内核方面思考,但是也有误导我的地方,他说先刷内核再刷magisk,但是magisk会修改内核,这导致我操作的时候手机变成无限重启,我不知道为什么他的可以我的不行,但是我选择的内核是不需要内magisk修改的,它本身有root权限,而且禁用了dm-vertiy。
https://ministryofsolutions.com/2019/03/samsung-galaxy-s9-scv38-twrp-and-root.html
这是一篇误导我的文章,写明了是三星S9 SCV38的root教程,和我的机型一模一样,不知道咋回事,反正我按这个操作不成功,回过头来看,应该是no-verity-opt-encrypt-6.0-star没生效,对我的内核的修改无效。浪费了我很多时间。
对我的启发就是,让我明白,需要禁用启动过程中内核对系统的校验(dm-verity)。
https://bbs.ixmoe.com/t/topic/22450
https://pan.itj.me/s/J7Fc3zMBRMsFnTG?path=%2FArchive
这个记录了Android 9 去除dm-verity的方法,但是我用这种方法操作官方内核,并没有去除dm-verity,算是误导了我。浪费了我很多时间。
https://evilpan.com/2020/11/14/android-secure-boot/
这篇文章不是讲刷机的,而是讲Android系统启动过程中如何防止系统被篡改的。看的不是很懂,更深刻的理解了:bootloader校验内核(默认是拒绝启动非官方内核的,通过解锁各种锁(bl、kg)来启动非官方内核),内核校验系统分区(通过刷第三方内核来去除校验,或者修改官方内核来去除校验,但我找到的所有通过修改内核来去除校验的方法都不成功)
https://xdaforums.com/t/kernel-q-g9650-g9600-klabit-kernel.3900816/
提供内核的论坛,我root成功的基石之一
这个是不通过twrp来获取root,原理是通过修改内核,去除dm-verity,进而获得修改系统的能力,然后在系统中添加root权限。但是对我来说,修改官方内核的尝试并不成功,不知道这个日版的官方内核为啥这么顽固。
https://xdaforums.com/t/official-twrp-sm-g9600-starqlte-chn.3803297/
这个是论坛,可信度高,提供内核来源和禁用加密的补丁,但是禁用dm-verity方面说的语焉不详,有误导的嫌疑,说什么“确保在禁用 dm-verity 之前不允许修改系统”,其实修改了也无所谓,只有最后刷入内核,干掉了dm-verity,系统还是能启动。但是这篇文章还是非常重要,因为它我成功了一大半。
https://twrp.me/samsung/samsunggalaxys9qcom.html
提供recovery的网站,可选我没有认真取读它的说明,不然能更早意识到,需要刷第三方内核。
https://blog.csdn.net/iffy1/article/details/128344586
讲述安装分区的文章,没有细看,搜索到它的时候,我正在刷最后成功的一次机,用不到了,当课外知识吧。
误导文章,和我的机型没关系
https://github.com/topjohnwu/Magisk/issues/7254
让我意识到,magisk本身并不支持root三星s9,要换其他方法
https://highonandroid.com/android-smartphones/how-to-root-galaxy-s9-or-s9-plus-exynos-supersu/
煞有其事的root教程,有时修改官方内核的,可惜对我没用
https://highonandroid.com/android-smartphones/how-to-root-galaxy-s9-or-s9-plus-exynos-supersu/
同上类似
http://www.romleyuan.com/news/readnews?newsid=3126
没有认真看,说了遇到无限重启要刷入boot分区,可以它没有指出,这个“刷入boot分区”是指第三方解锁了dm-verity增加了root的第三方内核,但是这个网站(http://www.romleyuan.com/lec/read?id=443)让我对解锁kg锁有了方向,当时我的系统还是国行的,非原版系统用这个方法没法解锁。于是开始找原版系统。
https://www.cnblogs.com/nayitian/p/15201829.html
非常非常重要的文章,指出了卡在setupconnection是USB供电不足,我想破脑袋都想不出来了哪里的问题,这篇文章解决我真正刷机的最大障碍。试了用扩展坞提高USB供电,我才真正开始刷机,没有这个,后面的一切都免谈。
一键工具箱,看个热闹