$ ./out/target/product/project_name/obj/KERNEL_OBJ/scripts/dtc/dtc -I dtb -O dts -o decompiled.dts ~/project/linux_repo/out/target/product/project_name/obj/KERNEL_OBJ/arch/arm64/boot/dts/your.dtb

也就是

scripts/dtc/dtc -I dtb -O dts -o you_want.dts your.dtb

Usage: dtc [options] <input file>

  • -I, --in-format <arg>

    Input formats are:

    dts - device tree source text

    dtb - device tree blob

    fs - /proc/device-tree style directory

  • -O, --out-format <arg>

    Output formats are:

    dts - device tree source text

    dtb - device tree blob

    asm - assembler source

  • -o, --out <arg>

    Output file

注意

一個是大寫 O

一個是小寫 o

以 Qualcomm MSM8917 為例

Qualcomm code base 會 build 出許多 .dtb,

因此需先找出 project 所使用到的 .dtb

在 uart log 中會有類似以下的 log

 146 [    0.000000] Machine: Qualcomm Technologies, Inc. MSM8917-PMI8940 MTP

Machine: 後面的字串就是您所使用的 device tree file 的 model,

在 android/kernel/msm-3.18/arch/arm/boot/dts/qcom/ 目錄下 grep 此字串,

$ grep -rns "Qualcomm Technologies, Inc. MSM8917-PMI8940 MTP"
arm/boot/dts/qcom/msm8917-pmi8940-mtp.dts:20: model = "Qualcomm Technologies, Inc. MSM8917-PMI8940 MTP";

msm8917-pmi8940-mtp 就是此 project 所使用的 dtb,

到 android/out/ 搜尋 msm8917-pmi8940-mtp.dtb,

android/out$ find -name "msm8917-pmi8940-mtp.dtb"
./target/product/msm8937_64/obj/kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8917-pmi8940-mtp.dtb

到 android/out/ 搜尋 dtc 執行檔,

$ find -name dtc
./target/product/msm8937_64/obj/kernel/msm-3.18/scripts/dtc/dtc

最後再反譯 dtb 為 dts,

android/out$ ./target/product/msm8937_64/obj/kernel/msm-3.18/scripts/dtc/dtc -I dtb -O dts -o decompiled.dts ./target/product/msm8937_64/obj/kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8917-pmi8940-mtp.dtb

decompiled.dts 就是此 project 所有被使用到的 dts 的集合。

以 MTK mt6755 為例

mtk code base 只會 build 出一個 .dtb,

所以直接到 linux_repo/out 下搜尋 *.dtb

linux_repo/out$ find -name "*.dtb"
./target/product/XXXXXXXXXX/obj/KERNEL_OBJ/arch/arm64/boot/dts/XXXXXXXXXX.dtb

到 linux_repo/out 下搜尋 dtc 執行檔

linux_repo/out$ find -name "dtc"
./target/product/XXXXXXXXXX/obj/KERNEL_OBJ/scripts/dtc/dtc

最後再反譯 dtb 為 dts,

linux_repo/out$ ./target/product/XXXXXXXXXX/obj/KERNEL_OBJ/scripts/dtc/dtc -I dtb -O dts -o decompiled.dts ./target/product/XXXXXXXXXX/obj/KERNEL_OBJ/arch/arm64/boot/dts/XXXXXXX.dtb

decompiled.dts 就是此 project 所有被使用到的 dts 的集合。

最新文章

  1. 【WCF】错误协定声明
  2. 基于EasyUI的Web应用程序及过去一年的总结
  3. BZOJ4446: [Scoi2015]小凸玩密室
  4. ASP.NET状态管理之四(暂存状态HttpContext.Items)
  5. OpenvSwitch架构
  6. mysql5.7.9 源码安装 (转)
  7. bootstrap之Flick
  8. pipe----管道
  9. 【java】基础中的杂乱总结(一)
  10. 《汇编语言程序设计》——仿windows计算器
  11. 项目架构开发:数据访问层之Repository
  12. 1965: [Ahoi2005]SHUFFLE 洗牌
  13. LCT学习笔记
  14. oracle 根据一个表生成另一个新表和一个现有表给一个新的表赋值
  15. Unity Shader Graph(二)Dissolve Effect
  16. 【图的遍历】广度优先遍历(DFS)、深度优先遍历(BFS)及其应用
  17. 《Android进阶之光》--网络编程与网络框架
  18. 【leetcode】 Validate Binary Search Tree
  19. 如何通过Html网页调用本地安卓app?
  20. messagpack的使用

热门文章

  1. 【Python】从1&lt;2&lt;3的语法糖说起
  2. RT-thread内核之系统时钟
  3. 只要访问的地址匹配cookie的地址时候 发送request请求时候 会携带上该cookie
  4. InnoDB实现MVCC原理
  5. PKUWC2019 酱油记
  6. [SCOI2007]修车 费用流
  7. BZOJ4945 &amp; 洛谷3825 &amp; UOJ317:[NOI2017]游戏——题解
  8. mmc驱动的读写过程解析
  9. BZOJ2659 [Beijing wc2012]算不出的算式 【数形结合】
  10. HDOJ(HDU).2191. 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (DP 多重背包+二进制优化)