保留原有系统,通过刷kernel镜像开启ADB
本帖最后由 ssj悟空 于 2020-2-6 20:59 编辑不知道有木有人试过同样的方法,我也是前两天摸索出来的。这种方法不用担心破坏系统,仅仅是修改开机启动脚本,开启ADB服务,对系统本身没有任何影响。
但是!如果修改后的镜像有问题,会导致停留在开机启动界面,无法进入系统,所以建议先备份好原来的镜像,出现这类问题再刷回去即可。
前期准备:拆机工具、TTL线、网线。
软件:Hitool(https://www.znds.com/tv-1115338-1-1.html)
mkbootimg(https://github.com/xiaolu/mkbootimg_tools),这个在Linux下使用。
分为以下几个步骤:
1. 提取kernel分区到电脑;
2. 修改kernel镜像(建议在Linux系统下进行);
3. 将修改后的镜像刷回去。
1. 提取kernel分区
首先设置好盒子和电脑有线网卡的IP,使它们处于同一网段(电信盒子打开设置的密码为10000)。
拆开盒子,分别用TTL线和网线连接盒子和电脑。
不方便焊接针脚的话,可以像我一样找一根废弃的线材,取出几节铜丝连接,但是要注意避免接触不良。
VCC不用接,RXD线接盒子上的TXD,TXD线接盒子上的RXD。
打开设备管理器,查看端口,并且修改频率为115200。
打开Hitool,载入分区表,设置端口和IP地址。
选择”kernel“,文件名随便命名。
点击”上载“,弹窗出现后按盒子的电源键开机(如果之前已经开机了需要关掉重新开)。稍等片刻即可提取出kernel分区。
2. 修改镜像
在Linux系统中解包镜像(我之前在Windows下用ROM助手修改后的镜像有问题,但是在Linux就没问题)
命令格式为:
mkboot [镜像文件] [解包目录]
修改3个文件:default.prop、init.rc、init.usb.rc
default.prop:把ro.adb.secure的值改为0,把ro.debuggable的值改为1。
init.rc:把adb.enable的值改为1,表示开启ADB。
init.usb.rc:把stop adbd这一行注释掉。
3个文件都修改好之后就可以重新打包了。
mkboot [目录] [打包文件名]
打包后的镜像比原来的镜像小,这时候需要把这个镜像文件打开为16进制,在末尾添加一堆0,直到它的大小跟解包前的一样。
3. 刷回镜像
打开Hitool,选择修改后的镜像,点击”烧写“,步骤跟之前提取是一样的
至此,刷写就完成了,关掉盒子,重新开机,就可以使用ADB连接盒子了。
adb [盒子IP地址]:[端口]盒子和电脑同样需要处于同一网段,无线或者有线都可以,端口默认为5555。
当然,由于系统没有改变,这时候你还是没办法用U盘来安装APP,但是可以通过ADB来安装:
adb install 当然每次都用ADB来安装未免太麻烦,所以我建议先装个应用商店和一个文件管理器,这样以后就可以通过应用商店或者U盘来安装了。
对了,ADB自带root权限,所以不用纠结root的问题,想要方便地让APP获取root权限的话,直接装个SuperSU就好。
附上分区表以及我修改的kernel镜像:
**** Hidden Message *****
这个方法很好,感谢分享 学习学习!
谢谢楼主分享
666 dhjcjknk
fghjjjjk 除了rx和tx,应该还要接一条gnd线,楼主忘记提到了
学习 没看懂 想学 有不会