首頁>數碼>

前言

最近小夥伴把某塊音箱給變磚了,因為一番騷操作把mtd分割槽直接dd了,導致無法啟動,土豪的他選擇又買了一個。我缺音箱,我想試試修復一下,修好了還能用,於是就開始了自己的一番折騰。本篇文章僅作為修復音箱的教程,特此宣告。

情況分析

現在檔案系統已經被破壞了,但是核心和uboot都還完好,因此我們可以嘗試看看能否進入uboot中的shell,然後做些事情。那麼問題就來了,我們要怎麼進入uboot的shell呢,一般情況下,晶片都會有支援串列埠的引腳,串列埠簡單方便除錯,我們可以拆開音箱板子上找找串列埠。

板子上找串列埠

串列埠UART,非同步收發,不需要時鐘,最少僅需要3根線,GND, TX, RX。如果做得比較安全的話,一般在出廠的時候會把焊點或者引腳給抹去,但是據我所知,大部分的廠商貌似都不care這些,很大方的留了很多資訊,這款音箱也是。很快在板子上找到了可愛的三個測試點在電路板的邊緣

用萬用表測一下可以很快確定一個點是GND,另外兩個可以透過觀察串列埠是否能夠正常工作判斷TX和RX。在確定了串列埠引腳之後,還需要外接一個USB轉串列埠的rs232晶片,就像這樣的

連線好之後,可以在終端下輸入命令ls /dev/tty*觀察已經有串列埠ttyUSB1裝置被識別

在linux下,可以透過串列埠工具minicom與串列埠進行通訊。在使用minicom之前,需要配置串列埠名稱和波特率,名稱就是ttyUSB1,而波特率一般是115200.透過執行sudo minicom -s進入配置串列埠名稱和波特率的介面

除此之外,還需要修改Hardware Flow Control改為No,使得minicom允許輸入。這樣才能進行互動

uboot shell

很幸運,這款音箱的uboot shell沒有被裁減,因此給了我們透過uboot修復分割槽的可能性。在重啟的時候會有一段時間允許進入uboot shell中,這段時間一般都比較短,需要在重啟的時候不斷的按空格或者回車即可。介面如下圖

在這個介面下是支援很多命令的,透過help檢視

透過uboot給定的命令,我們就可以利用uboot給的shell實現將韌體燒錄到nand flash中

準備新韌體

新的韌體可以從新裝置上提取,亦可以在網上下載,還可以透過抓包獲取,獲取的方法有很多。關鍵是我們要韌體的格式進行分析,找到我們想要燒入到nand flash中的部分。我拿到的韌體是透過OTA升級抓包拿到的,透過binwalk 可以看到包的基本結構如下

我們所需要的正是檔案系統,0x380開始到0x1F5DED0,將這塊內容dd下來就是包含了完整的檔案系統。我們只需要將這部分的韌體傳送給音箱即可。

nand flash燒寫方法確認韌體燒寫位置

在往nand flash中燒入韌體之前,我們需要先確定nand flash是如何分割槽的,在啟動日誌中可以看到下圖

可以看到有boot0 boot1 system0 system1分割槽,猜測有兩套啟動方式,一套是主要的,一套是升級或者出廠設定使用的,經過檢視發現system1是空的,所以極有可能真正的檔案系統是在system0分割槽的。system0對應位置為0x2000000-0x4080000但是起始位置是相同的,起始位置0x2000000很關鍵,這個是我們的目標位置

從串列埠接收檔案系統部分的韌體選擇一塊空的記憶體區域,我之前選的是0x5000000,有問題,後來選擇的0x6000000,這個位置是試出來的,目的是接收system0分割槽使用kermit接收執行命令loadb 0x6000000 進入如下介面按快捷鍵CTRL+A S 進入傳送協議選擇介面選擇kermit協議,並且選擇要傳送的檔案,按空格鍵選中檔案。傳送檔案的介面此時可以完備的將韌體傳送到記憶體中,地址為0x6000000由於此過程是透過串列埠傳送,因此其速度比較慢,實測耗時1個小時將記憶體中接收的system0寫入nand flash

首先擦除system0分割槽,執行如下命令

nand erase.part system0

然後往system0分割槽中執行燒寫工作,執行如下命令

nand write 0x6000000 0x2000000 0x2000000

寫入過程很快,不用等待

完成燒寫

至此已經完成檔案系統的修復。經過重啟,發現音箱又復活了~~

結語

本文介紹了在僅有串列埠的情況下如何利用uboot的shell完成對Nand flash的韌體寫入流程,雖然可能不同的裝置細節上不盡相同,但是基本流程本文已經介紹的較為清晰,當然除了串列埠還有別的方式實現救磚的工作,比如USB啟動或者JTAG等方式,這些方式速度較快,但是對硬體電路的逆向水平也更高,所以我最愛的還是串列埠。

14
最新評論
  • 雙11 神舟放大招,11代i7筆電直降1100?
  • 懷舊情結忍不住衝下杜伽FUSION三模機械鍵盤