ssj悟空 发表于 2020-2-6 19:22

保留原有系统,通过刷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 *****


炉子先森 发表于 2020-2-6 22:08

这个方法很好,感谢分享

阿康 发表于 2020-2-7 04:06

学习学习!

ganai 发表于 2020-2-7 12:09


                        谢谢楼主分享                  

yun1152 发表于 2020-2-7 12:23

666

李振Ⅰ-sh 发表于 2020-2-7 19:20

dhjcjknk

xuanfeng2 发表于 2020-2-7 20:53

fghjjjjk

Kzs 发表于 2020-2-7 23:32

除了rx和tx,应该还要接一条gnd线,楼主忘记提到了

123564644 发表于 2020-2-7 23:33

学习

面朝阳光老徐 发表于 2020-2-8 06:29

没看懂 想学 有不会
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 保留原有系统,通过刷kernel镜像开启ADB