以前高中的时候刷机也刷过很多次了,但是都是上论坛里面找的一键刷机套装,即使不是一键刷机也是一步步跟着教程来的,完全不知道自己做了什么。这次参加了Xman的冬令营学习Android逆向才大概弄清楚刷机的过程到底做了些什么,下面写几个我遇到的问题。
所谓线刷和卡刷到底是什么?
这个问题现在我大概清楚了,线刷就是通过bootloader刷机,而卡刷就是通过recovery刷机。而bootloader和recovery都是广义上的操作系统,这两个系统和我们平时用的Android系统到底是什么关系呢?
通过学习我了解了,recovery系统和Android系统实际上是并列的关系,他们都是通过bootloader来启动的。这个有点像在电脑上BIOS启动的时候分为安全模式和正常windows这种感觉。
三个系统的关系
我们正常刷机的话用小米官方给的工具完全足够用,但是我为了学习Android逆向的知识需要安装一些框架比如xposed和frida这时候就需要root权限。
至于root权限到底是什么我现在理解就是能够修改system分区文件的权限。小米官方开发版rom给了一个root权限管理的工具,可以自己打开rom但是system分区仍是只读的,这样就不能安装xposed框架了。
现在经过一天的努力,我知道了目前来看root手机最绿色实用的方式就是先通过bootloader刷入第三方的recovery再利用第三方的recovery安装supersu。这样才能保证系统能够完全受自己控制。因为官方原装的recovery往往很简陋不允许用户通过recovery系统再去安装其他框架。
刷入recovery的过程很艰辛,查了很多资料目前最好用的第三方recovery应该是TWRP团队做的,好像各个教程都有提到,而且出了官方的中文版。不过第一次用的话还是有点蒙的。通过bootloader刷入recovery之后我发现重启之后recovery根本没有刷入,经过查询资料发现不是我操作错了,其实是输入系统之后要马上进入一次第三方的recovery不然的话官方的系统会重新将recovery刷回。。。这就很尴尬花了我好多时间,但是实际上这些内容在TWRP的官方文档里都有提到,这再一次让我体会到了好好学习英语的重要性。
就是上面这段
最后就是xposed框架和miui9会有一些冲突,我试了好多次都没有安装成功,网上有教程说是禁用钩子资源之后可以安装xposed,可是我试了好几次安装完之后都卡在了白米。最初几次我不知道卸载掉xposed就可以开机于是我用bootloader(对于小米俩说就是fastboot模式)重新刷了好几次整个系统。后来理解了android系统和recovery之间的关系才减少了这个步骤。在recovery模式下一样可以通过adb push指令将卸载xposed的压缩包装入系统的scard中,然后再用recovery系统卸载xposed.............我要是早知道这几个系统之间的关系就不用重启这么多次浪费这么多时间了啊。 嗯......还有一开始不知道recovery模式下adb push指令的我已经都把读卡器和卡针都拿出来了准备手动写入zip,想想也是醉了。
总结:刷了一天的机也算是学到了点东西,把之前课上的内容巩固实操了一下。最后我把xposed框架安装好了也是通过刷入低版本的miui实现的。这让我深刻体会到有的时候高版本的东西真的不是那么可靠,为了一些核心功能也许不得不放弃新版本新特性。