该文仅适用于Android 8.0 以下系统
Android 8.0 以上开全局可调式看这里
首先,测试机一般都是价格便宜的过时的老设备(土豪喜欢用新设备我也只能仰望了,我用的魅蓝note2,那个时候,这手机刚出,个人认为性价比可是非常高的。无奈现在这破手机进不去fastboot mode,只能再买了一个nexus5X)
好了,废话不多说,开搞:
adb shell
进入手机命令行模式
su
进入root权限用户,此时的输入提示符从$变为#。
开始寻找root.img。每个手机的路径可能不一样,我也不知道我的手机root.img在哪,大概就在/dev/block/platform/这个目录下,我只能一个目录一个目录找下去。先
cd /dev/block/platform/
cd到/dev/block/platform/,然后ls一下,只有一个目录,再cd,再ls,反反复复直到看到by-name目录
然后cd到by-name目录,执行命令
ls -al
找到boot后面对应的目录,如下图:/dev/block/mmcblk0p37(mmcblk0p37就是我们要找的root.img了,每个手机不一样,我的是这个,你们找你们自己的root对应的东东),把对应的东东复制一下,后面要用
5. 把root.img搞出来:
新打开一个dos窗口,进入手机的存储卡,我也不知道我手机的存储卡是哪个位置,我只知道第一个目录肯定是storage,进去之后如果有sdcard0和sdcard1,就进0,反正我的没有,我也知道肯定不是emulated目录,那就只能进另外一个目录了,好,cd进去,一路cd和ls,直到找到DCIM目录,看图:
cp /dev/block/mmcblk0p37 ./
就把刚刚我们找到的boot文件拷出来了。如下图所示:
为什么要cd到这?因为这个目录方便,为什么用cd+ls这么蠢的办法?因为我的手机find命令用不了,我也记不太清楚存储盘一般是怎么规定的了,你们可以百度查查,查完了,总结一下,来评论区教教我~
好了,boot.img文件搞出来了,但是名字很奇怪怎么办?待会儿我们重命名一下就好了,那现在我们先执行一下这个命令:
pwd
当前路径就打印出来了,这个DOS窗口留着,别关,后面要用这个路径,复制一下这个路径。
adb pull /storge/self/primay/mmcblk0p37.img boot.img
执行上面的命令(用到了刚刚叫你不要关的那个DOS窗口的路径了吧,肚复制粘贴多方便~),boot.img就保存到了电脑上。保存到哪去了?我也不知道!搜一下吧,win10的话,直接按win+q,输入boot.img,好了,找到了,右键进入到哪个目录,剪切到桌面
7.解包root.img,修改ro.debuggable:
执行命令:
adb push C:\Users\35356\Desktop\boot.img /storge/self/primay
把剪切到桌面的root.img(注意你们自己的路径跟我不一样啊!),再丢到刚刚叫你不要关DOS窗口,还pwd一下的那个路径。
好了,接下来需要安装一下解包工具了,执行命令
adb install C:\Users\35356\Desktop\AndroidReverse工具包\Image_Kitchen_for_Android.apk
注意你们apk的路径。
手机上确认一下,安装开始~ bilili…bilili… ~安装完成,如下图:
点它,黄黄的那个图标。
进去之后,选择Unpack/Mount,在弹出的对话框,找到root.img,用力点一下它!(知道前面我为什么那么执着于那个路径了吗?哈哈哈!)
解包完成,如下图:
点一下ramdisk,进去之后再点default.prop:
进去之后找到ro.debuggable=0,把0删了,改成1。保存并退出:
然后一路返回到下面这个界面,选择Repack:
在列表中你会发现生成了一个新的文件,叫image-new.img,OK,这个就是我们需要的,按它,长按,用力。好,弹出对话框了,选择Export,在跳出来的对话框中,不要看,直接点确定。OK,导出了。这时候,又要用到刚刚叫你复制的那个路径了(是不是关掉那个DOS了?哈哈,慢慢再找一次吧,谁叫你关掉的,该!),执行命令:
adb pull /storge/self/primay/image-new.img
把修改过的镜像拉到电脑上,再剪切到桌面。
adb reboot bootloader
看一下你的手机屏幕,DEVICE STATE状态是不是lock,是lock的话,你就不能刷入新的镜像,需要先解锁,然后根据提示,选择Yes,完成解锁之后再刷镜像。如果是unlock,直接刷镜像
//解锁命令
fastboot flashing unlock
//刷镜像命令
fastboot flash boot image-new.img //注意你image-new.img的路径
fastboot reboot
等待重启…(抠抠脚,闻一闻,好了,重启完成,手机进入系统了)
输入命令:
adb shell getprop ro.debuggable
如果输出0,就是失败了,如果输出1,就是成功了。
真好,没输出0了!成功了?!
不知道,没输出啊!!!
oh~yes!!!!成功了,所有进程都出来了!
但是,为什么不输出1?知道的,麻烦评论区留言告诉我,谢谢!
还有一个问题,就是重刷了镜像之后,还是root的,但是手机没了su包,需要重新用KingRoot弄一下,su包跟root什么关系?自己研究一下,这里懒得说了,写完这篇blog,脖子痛!