Android dtbo.img反编译查看设备树:
参考文档:
https://blog.csdn.net/qianxuedegushi/article/details/107224575
反编译andriod dtbo.img 为dts
Android设备和设备树有关的刷机镜像有两个:dtb.img和dtbo.img
1, 安装dtc
sudo apt-get install device-tree-compiler -y
2, 转换dtbo.img到dtb
android源代码下编译: mkdtimg
cd out/host/linux-x86/bin下执行:
mkdtimg dump dtbo.img -b mydtb
3,转换dtb到dts
dtc -I dtb -O dts mydtb.42 -o mydts
4,转换dtb.img到dts
dtc -I dtb -O dts dtb.img -o dtbimg_to_dts
例子: 查看qcom,wsa-max-devs的值是多上?
kalama:/proc/device-tree/soc/spf_core_platform/sound # cat compatible
qcom,kalama-asoc-snd
kalama:/proc/device-tree/soc/spf_core_platform/sound # cat qcom,model
kalama-qrd-snd-card
我把android源代码编译的out/host/linux-x86拷贝到了~/my_bin目录了。
~/my_bin$ ./linux-x86/bin/mkdtimg dump dtbo.img -b mydtb
(FDT)compatible = qcom,kalama-qrd // 设备树用的是qcom,kalama-qrd
dt_table_entry[42]: // 编号42
dt_size = 387535
dt_offset = 9046604
id = 00000000
rev = 00000000
custom[0] = 00000000
custom[1] = 00000000
custom[2] = 00000000
custom[3] = 00000000
(FDT)size = 387535
(FDT)compatible = qcom,kalama-qrd
dt_table_entry[43]:
dt_size = 387683
dt_offset = 9434139
id = 00000000
rev = 00000000
custom[0] = 00000000
custom[1] = 00000000
custom[2] = 00000000
custom[3] = 00000000
(FDT)size = 387683
~/my_bin$ dtc -I dtb -O dts mydtb.42 -o mydts
~/my_bin$ ls
111 mydtb.1 mydtb.13 mydtb.17 mydtb.20 mydtb.24 mydtb.28 mydtb.31 mydtb.35 mydtb.39 mydtb.42 mydtb.46 mydtb.5 mydtb.53 mydtb.6 mydts
dtbo.img mydtb.10 mydtb.14 mydtb.18 mydtb.21 mydtb.25 mydtb.29 mydtb.32 mydtb.36 mydtb.4 mydtb.43 mydtb.47 mydtb.50 mydtb.54 mydtb.7
linux-x86 mydtb.11 mydtb.15 mydtb.19 mydtb.22 mydtb.26 mydtb.3 mydtb.33 mydtb.37 mydtb.40 mydtb.44 mydtb.48 mydtb.51 mydtb.55 mydtb.8
mydtb.0 mydtb.12 mydtb.16 mydtb.2 mydtb.23 mydtb.27 mydtb.30 mydtb.34 mydtb.38 mydtb.41 mydtb.45 mydtb.49 mydtb.52 mydtb.56 mydtb.9
~/my_bin$ gedit mydts // 查看反编译出的mydts
搜索qcom,wsa-max-devs:
qcom,wsa-max-devs = <0x00>;
通过hexdump命令也可以查看Android设备里的设备树的值。