获取android系统的dtb文件
1.获取boot.img
以晶晨芯片TY1608机顶盒为例,可以从网上找到刷机包用解包工具解包得到boot.PARTITION 即为boot.img
也可通过TTL输入命令:
dd if=/dev/block/boot of=/sdcard/boot.img,回车,可得boot.img
dd if=/dev/block/system of=/sdcard/system.img,回车,可得system.img
注:eMMC 分区应用实例(https://blog.csdn.net/u014645605/article/details/52212622)
在一个 Android 手机系统中,各个分区的呈现形式如下:
mmcblk0 为 eMMC 的块设备;
mmcblk0boot0 和 mmcblk0boot1 对应两个 Boot Area Partitions;
mmcblk0rpmb 则为 RPMB Partition
2.解包boot.img
用boot解包工具解包 得到的文件中second.gz解压得到dt.img 即为dtb.img文件
此时dtb.img为多个dtb需要提取出来,同样用dtb_tool和linux系统可以提取出单个
查看ttl输出可以知道 系统适配dtb 6 soc: gxlx2 plat: p291 vari: 1g
Amlogic multi-dtb tool
GZIP format, decompress...
Multi dtb detected
unified board, board id = 4
Multi dtb tool version: v2 .
Support 8 dtbs.
aml_dt soc: gxlx2 platform: p291 variant: 1g
dtb 0 soc: gxl plat: p211 vari: 1g
dtb 1 soc: gxl plat: p215 vari: 1g
dtb 2 soc: gxlx plat: p261 vari: 1g
dtb 3 soc: gxlx plat: p261 vari: 2g
dtb 4 soc: gxlx plat: p265 vari: 1g
dtb 5 soc: gxlx plat: p265 vari: 2g
dtb 6 soc: gxlx2 plat: p291 vari: 1g
dtb 7 soc: gxlx2 plat: p295 vari: 1g
Find match dtb: 6
start dts,buffer=0000000033ee4610,dt_addr=0000000033ee4610
Amlogic multi-dtb tool
Single dtb detected
另有转自:https://tieba.baidu.com/p/6642625141的教程
工具:盒子、电脑、TTL需要的东西,U盘/内存卡,还有一定的linux操作知识
第一步:TTL连接盒子,复制系统备份文件到U盘/内存卡,再复制到电脑上。
第二部:创建linux虚拟机,比如ubuntu。
打开虚拟机的浏览器,搜索github,
进去,然后搜索split_bootimg,第一个就是了。下载文件
在下载里面可以找到
按照上面的步骤,下载extract-dtb,将这两个文件解压。将boot.img文件拖动到sp那个文件夹。在在终端打开,
输入 split_bootimg.pl boot.img
不出意外的话啊,可以得到三个文件。解压第三个文件可以得到dt.img
复制dt.img文件到ex那个文件夹
输入 ./extract-dtb.py dt.img -o /tmp
就可以在tmp目录下再到dtb文件了。
看看你的TTL输出的序号是几,对应序号+1那个就是你盒子的dtb文件。
我的盒子的序号是 Find match dtb: 6,那么dtb文件就是07