如何從Android固件文件中提取設(shè)備樹文件

轉(zhuǎn)自 https://www.cnx-software.com/2014/05/12/how-to-extract-a-device-tree-file-from-android-firmware-files/

到目前為止拓巧,我們所有廉價的Android設(shè)備均基于較舊的Linux內(nèi)核(3.0.x狮崩,3.4.x)阻肿,該內(nèi)核仍使用板文件(arch / arm / board)桨醋,但我們最近看到諸如AmlogicRockchip之類的公司發(fā)布了源代碼使用Linux內(nèi)核3.10.x時油航,這些版本之間的主要區(qū)別之一是從主板文件轉(zhuǎn)移到扁平化的設(shè)備樹以及多平臺支持。如果完全實現(xiàn),則單個內(nèi)核映像應(yīng)該能夠引導(dǎo)多個硬件平臺导梆,以及所有低級配置都由設(shè)備樹文件處理滓彰。由于我已經(jīng)連接了Tronsmart Vega S89串行端口進行調(diào)試控妻,而且這是一個新聞日,所以我認為我可能會嘗試引導(dǎo)自己編譯Linux內(nèi)核揭绑,但是挑戰(zhàn)之一是獲取設(shè)備樹文件弓候。我將展示如何從固件中提取它。也應(yīng)該可以直接從閃存中獲取它他匪,但是“ cat / proc / mtd”并不像以前的版本那樣顯示完整的分區(qū)列表菇存。

我已經(jīng)在Ubuntu 14.04中執(zhí)行了以下步驟。首先要安裝一些工具:將用于將dtb(二進制)文件反編譯為dtd(文本)文件的設(shè)備樹編譯器邦蜜,以及將標(biāo)準(zhǔn)PERL腳本從boot.img中提取文件的split_bootimg.pl:

sudo apt-get  install device-tree-compiler

wget https://gist.githubusercontent.com/jberkel/1087743/raw/5be96af0e1c1346678379b0c0f0330b71df51f25/split_bootimg.pl

sudo cp  split_bootimg.pl  /usr/local/bin

sudo chmod  +x  /usr/local/bin/split_bootimg.pl

我將以M8 / TM8固件(Amlogic S802)為例依鸥。確切的過程在固件文件之間會有所不同,但是如果您可以啟動boot.img悼沈,則該過程應(yīng)該獨立于平臺并且適用于任何ARM SoC贱迟。下載并解壓縮固件文件(TM8 ap6330_03102014A_0410_ROOT.rar)之后,讓我們創(chuàng)建一個工作目錄井辆,并解壓縮“ OTA”文件关筒。

mkdir  TM8

cd  TM8

unzip  ../k200-ota-20140410.zip

現(xiàn)在,我們得到了一堆文件杯缺,包括boot.img蒸播。很好!是時候運行split_bootimg.pl腳本提取其內(nèi)容了:

split_bootimg.pl  boot.img

Page size:  2048  (0x00000800)

Kernel size:  7209567  (0x006e025f)

Ramdisk size:  2024995  (0x001ee623)

Second size:  17699  (0x00004523)

Board name:

Command  line:

Writing boot.img-kernel  ...  complete.

Writing boot.img-ramdisk.gz  ...  complete.

Writing boot.img-second.gz  ...  complete.

因此萍肆,我們有了內(nèi)核袍榆,虛擬磁盤和恰好是dtb文件的“第二個文件”。現(xiàn)在塘揣,我們可以使用dtc(設(shè)備樹編譯器)對其進行反編譯包雀,如下所示:

dtc  -I  dtb boot.img-second.gz  -O  dts  -o  meson8_tm8.dtd

就是它。這是M8設(shè)備樹文件亲铡。

對于Tronsmart Vega S89(Elite)才写,我也做過同樣的事情葡兑。S89固件通常作為IMG文件分發(fā),以與AML Flash Burning工具一起使用赞草,但是我還沒有找到提取此類文件的方法讹堤。但是消请,我在freaktab上找到了可以通過SD卡更新的“ OTA”固件钉答,并且可以提取Tronsmart Vega S89 EliteVega S89的設(shè)備樹文件草巡。M8和S89 Elite DTD文件非常相似辐棒,但是M8中的最大CPU頻率似乎更高,并且還有其他明顯的細微差別挖腰。Vega S89 DTD文件似乎相差很大捉捅。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末闯捎,一起剝皮案震驚了整個濱河市撒蟀,隨后出現(xiàn)的幾起案子叙谨,更是在濱河造成了極大的恐慌,老刑警劉巖牙肝,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唉俗,死亡現(xiàn)場離奇詭異嗤朴,居然都是意外死亡配椭,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門雹姊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來股缸,“玉大人,你說我怎么就攤上這事吱雏《匾觯” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵歧杏,是天一觀的道長镰惦。 經(jīng)常有香客問我,道長犬绒,這世上最難降的妖魔是什么旺入? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮凯力,結(jié)果婚禮上茵瘾,老公的妹妹穿的比我還像新娘。我一直安慰自己咐鹤,他們只是感情好拗秘,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著祈惶,像睡著了一般雕旨。 火紅的嫁衣襯著肌膚如雪扮匠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天凡涩,我揣著相機與錄音餐禁,去河邊找鬼。 笑死突照,一個胖子當(dāng)著我的面吹牛帮非,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播讹蘑,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼末盔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了座慰?” 一聲冷哼從身側(cè)響起陨舱,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎版仔,沒想到半個月后游盲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蛮粮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年益缎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片然想。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡莺奔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出变泄,到底是詐尸還是另有隱情令哟,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布妨蛹,位于F島的核電站屏富,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛙卤。R本人自食惡果不足惜狠半,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望表窘。 院中可真熱鬧典予,春花似錦、人聲如沸乐严。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昂验。三九已至捂敌,卻和暖如春艾扮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背占婉。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工泡嘴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逆济。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓酌予,卻偏偏與公主長得像,于是被迫代替她去往敵國和親奖慌。 傳聞我的和親對象是個殘疾皇子抛虫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容