close

在論壇上所找到的文章, 趕快memo下來.
出處 : http://www.hdpfans.com/thread-299-1-1.html

[轉貼]1073固件(Frameware)詳細分析和破解,常用軟體安裝和配置,並以海美迪HD300A為例解析



前言:很多資訊和程式都來自互聯網,在此感謝那些為了壓榨設備每一分使用可能的熱心人,還有,此文中不在贅述如何刷Frameware,因為設備提供商的手冊和官網裏已經寫的非常清楚了。




一、1073晶片播放器的硬體配置
主晶片:RTD1073DD
RAM: 128MB
ROM: 256MB
CPU: MIPS 400Mhz
電源: 3A

目前所有採用1073晶片的播放器都是這個公版的硬體配置,而且據說首版國內固件(Frameware)是由Himedia開發的,其他家是基於HiMedia基礎進行修改後的結果。
這裏最重要的是ROM這個參數,1073播放器的ROM一共是256M,這裏存放著播放器的核心---固件。未來我們將採取的所有操作都是針對ROM裏嵌入式的Linux進行的。因此,建議操作者具備一些Linux系統的經驗,這樣會比較有的放矢。




二、深入淺出的看固件
注:未經特別說明,均以HD300A的固件資訊為例

2.1首先去HiMedia的官方網站下載最新版固件,目前的最新版本是1.0.3.28(截至到發文時),http://himedia-tech.cn/himedia/version/20100202/HD300A_1.0.3.28.rar,將此RAR檔解壓後是一個HD300A_1.0.3.28.img的IMG檔,不要被尾碼img迷惑了,其實它就是一個Linux下的TAR檔。用winrar或者7zip或者…… 把這個檔解壓到某個目錄裏。

2.2解壓完成後在目錄裏會看到如下檔
2010-03-19  11:11    <DIR>          .
2010-03-19  11:11    <DIR>          ..
2010-02-04  19:14           143,300 arial.ttf
2010-02-04  19:14         1,773,344 audio_firmware.install.bin
2010-02-04  19:14             1,841 configuration.xml
2010-02-04  19:14            43,400 flash_erase
2010-02-04  20:58       141,127,680 HD300A_1.0.3.28.img
2010-02-04  19:14         1,819,620 install_a
2010-02-04  19:14           163,948 mkfs.jffs2
2010-02-04  19:14            56,936 nandwrite
2010-03-19  11:11    <DIR>          package2
2010-02-04  19:14         1,623,760 video_firmware.install.bin
               9 個文件    146,753,829 位元組
放心,你看到的絕對會和我看到的一樣。目錄package2裏的內容是這樣的
2010-03-19  11:11    <DIR>          .
2010-03-19  11:11    <DIR>          ..
2009-10-07  13:27         1,777,416 bluecore.audio
2009-10-19  16:29         2,155,536 video_firmware.bin
2009-11-16  22:03         4,067,461 vmlinux.develop.avhdd.mars.nand.bin
2010-02-04  19:14       127,435,968 yaffs2_1.img
2010-02-04  19:14            50,688 yaffs2_2.img
               5 個文件    135,487,069 位元組

2.3第一層目錄中包括的刷寫ROM的程式,刷寫ROM的配置檔(configuration.xml)等,package2目錄包括Linux的內核和2個img檔, yaffs2_1.img和yaffs2_2.img就是嵌入式linux應用部分的鏡像檔,這種鏡像檔時採用yaffs格式打包的,winzip、winrar、7zip等就無能為力了。主攻的物件就是刷寫ROM的配置檔以及yaffs格式的IMG檔。

2.4詳細分析configuration.xml
2.4.1先完整的看一下這個XML的內容,I Love XML,哈哈~~~~~~~~~~~~~~~~~~~~~~~
<?xml version="1.0" encoding="ISO-8859-1" ?>
<packageFile>
    <info>
        <company>Realtek Semiconductor Corp.</company>
        <description>This image file contains 2 Mars packages. One is for AVHDD on NOR and the other is for AVHDD on NAND.</description>
        <version>0.0.1</version>
        <releaseDate>02/04/10 19:14</releaseDate>
        <signature>MARS AVHDD on NOR or NAND</signature>
    </info>
    <installerAP>
        <fileName>install_a</fileName>
    </installerAP>
    <package>
        <info>
            <description>This is Mars AVHDD on NAND</description>
            <version>N/A</version>
        </info>
        <nand>
            <image>
                <fileName>package2/vmlinux.develop.avhdd.mars.nand.bin</fileName>
                <targetAddress>0x80100000</targetAddress>
                <version>SVN:2615</version>
            </image>
            <image>
                <fileName>package2/bluecore.audio</fileName>
                <targetAddress>0x81b00000</targetAddress>
                <version>N/A</version>
            </image>
            <image>
                <fileName>package2/video_firmware.bin</fileName>
                <targetAddress>0x81d80000</targetAddress>
                <version>N/A</version>
            </image>
            <image>
                <fileName>package2/yaffs2_1.img</fileName>
                <mountPoint>/</mountPoint>
                <version>N/A</version>
            </image>
            <image>
                <fileName>package2/yaffs2_2.img</fileName>
                <mountPoint>/usr/local/etc</mountPoint>
                <version>N/A</version>
                <sizeBytesMin>0x1000000</sizeBytesMin>
            </image>
        </nand>
    </package>
</packageFile>

2.4.2先看這幾段:
            <image>
                <fileName>package2/vmlinux.develop.avhdd.mars.nand.bin</fileName>
                <targetAddress>0x80100000</targetAddress>
                <version>SVN:2615</version>
            </image>
            * 這段是將Linux的內核寫入ROM
            <image>
                <fileName>package2/bluecore.audio</fileName>
                <targetAddress>0x81b00000</targetAddress>
                <version>N/A</version>
            </image>
            * 這段是將聲音處理的程式寫入ROM
            <image>
                <fileName>package2/video_firmware.bin</fileName>
                <targetAddress>0x81d80000</targetAddress>
                <version>N/A</version>
            </image>
            * 這段是將視頻處理的程式寫入ROM

2.4.3重點看如下兩段:
            <image>
                <fileName>package2/yaffs2_1.img</fileName>
                <mountPoint>/</mountPoint>
                <version>N/A</version>
            </image>
            * 將嵌入式Linux的第一塊擴展部分寫入到ROM,mount點是“/“
            <image>
                <fileName>package2/yaffs2_2.img</fileName>
                <mountPoint>/usr/local/etc</mountPoint>
                <version>N/A</version>
                <sizeBytesMin>0x1000000</sizeBytesMin>
            </image>
            * 將將嵌入式Linux的第2塊擴展部分寫入到ROM,mount點是”/usr/local/etc“

這兩段XML配置略有些區別,區別就在寫入package2/yaffs2_1.img的配置沒有<sizeBytesMin>這個配置節點。

缺少這個節點會產生什麼樣的影響呢?
答案就是:按照yaffs2_1.img具體大小寫入ROM,寫完後按照這個大小mout到”/“上。(具體mount可以參考一下Linux的手冊),這樣”/“的空間可用率就是0,如果用df -h查看卷的使用情況,顯示將會是100%。
而yaffs2_2.img就不同,寫入ROM時會請求一塊空間大小就是0x1000000Bytes=16M,在df -h查看時會顯示有使用空間。但是重點中的重點就是”/“的大小和可用空間。

2.4.4佔用空間解析
首先整個ROM是256M,究竟有多大的空間可用呢?
ROM裏要寫入的文件:
package2/vmlinux.develop.avhdd.mars.nand.bin
約3.9M
package2/bluecore.audio 1.7M
package2/video_firmware.bin 2.1M
這3部分總共佔用了3.9+1.7+2.1=7.7M,為了保證程式寫入穩妥,位址上分配都不是連續的。因此寫入程式大概分配了28M左右給這3部分的核心。那ROM裏還剩250-28-16=206M,也就是說我們的yaffs2_1.img可以利用的空間在200M左右。後續就是如何利用它了。




三、破解固件的幾種方法
為什麼要破解固件?因為,默認情況下用戶對固件只有唯讀的許可權,不能修改固件的設置和增刪內容,這就阻止了我們DIY此類播放器,為了更大限度的發揮播放器的作用,首要的任務就讓嵌入式的Linux可以讀寫,其次有空間來安裝我們需要的軟體。
3.1、第一種破解大法
這種方法是最簡單的,直接去找一個網上高手提供的破解固件刷入,現在taobao上還有提供定制服務的,花些錢就搞定了。這個不在此討論。因為要DIY!

3.2、第二種破解大法
[
刪除大法]
telnet登錄播放器,然後找到裏面沒什麼用的檔,刪除掉以後獲取可用空間,來安裝自己所需要的軟體和程式。
         *
tenlent 192.168.0.11(此處為播放器的IP)
          HD300A的root初始是沒有密碼的

          *重新mount”/“使其可以讀寫
         
mount -o remount,rw /

          *
刪除字體檔
         
cd /usr/local/bin/Resource
          rm  arial.ttf
          ln -s yahei.ttf arial.ttf

          *
刪除PPS
         
rm -fr /usr/local/bin/IMS_Modules/pps

這樣操作後,大概能獲得約30M的空間,已經可以安裝一些基本的軟體了。但是有些人覺得不夠用,那繼續看……

3.3、第三種破解大法
[增強刪除大法]
這個辦法能獲取更大的空間供你使用,但是前提是需要安裝一個Linux環境,因為需要把yaffs2_2.img這個鏡像包打開,進行操作。一般情況下都是安裝一個虛機來跑Linux,我用的是VitrualBox+Ubuntu8.1,如何安裝虛機和相關的OS可以自行參考一下其他教程。
啟動Linux
將HD300A_1.0.3.28.img上傳到Linux中,可以採用ftp或者虛機的共用檔夾,然後進行操作:
        *首先建立一個目錄
      
mkdir hd300a(目錄名隨意)

        *然後將img文件解壓
      
cd hd300a
        tar -xvf ../HD300A_1.0.3.28.img
        cd package2

        *
解壓yaffs的鏡像
      
mkdir yimg1
        cd yimg1
        unyaffs ../yaffs2_1.img

        *
將一個50M的空檔添加到此目錄中
        
dd if=/dev/zero of=50m.iso bs=1024k count=50
        
目錄中就多了一個50m.iso的空文件

        *然後重新打包yaffs2_1.img
        
cd ..
        mkyaffs2image yimg1 yaffs2_1_new.img
        rm yaffs2_1.img
        mv yaffs2_1_new.img yaffs2_1.img

        *
重新打安裝包
        
cd ..
        tar -cvf ../install.img *

用這個新的固件包刷機,登錄以後刪除了字體檔、PPS再把這個50m.iso刪了,就比第一種方法額外多出50M來,有了70-80M的可用空間,OMG,足夠折騰了。
但是這個辦法需要一個Linux環境以及yaffs的解包以及打包程式(yaffs and mkyaffs2image),不是很方便。那咱們繼續往下看。

3.4、第三種破解大法
[
配置修改法]
不需要Linux環境,只要有個UltraEdit就行了,用winrar或7zip打開HD300A_1.0.3.28.img,我使用的是7zip,在7zip打開壓縮檔的視窗裏直接用UltraEdit直接編輯configuration.xml檔,修改如下:
原始的
-----------------------------------------------------------------
            <image>
                <fileName>package2/yaffs2_1.img</fileName>
                <mountPoint>/</mountPoint>
                <version>N/A</version>
            </image>
-----------------------------------------------------------------
修改後的
-----------------------------------------------------------------
            <image>
                <fileName>package2/yaffs2_1.img</fileName>
                <mountPoint>/</mountPoint>
                <version>N/A</version>
               
<sizeBytesMin>0x9990000</sizeBytesMin>(這就是增加的部分)
            </image>
-----------------------------------------------------------------
注意,在UltraEdit提示是否要將檔轉換成dos格式的時候,一定要選擇”,切記。改完保存,7zip會自動提示是否要更新壓縮包裏的檔,當然是Yes。這樣你就獲得一個有可用空間的固件了。
改<sizeBytesMin>0x9990000</sizeBytesMin>的意思就是說,刷yaffs2_1.img的時候分配153M的空間來用,yaffs2_1.img自己只有約122M大小,這樣就爭取到了30M,然後再把字體檔和PPS檔刪了,就有約60-70M,夠用了!
別的教程裏有把<sizeBytesMin>0x9990000</sizeBytesMin>改為0xA000000(160M)和0xB000000(176M),但是我不建議改這麼大,首先是空間夠用,其次最好別把ROM壓榨到如此地步,容易出現一些意向不到的問題。因為為了使用更大的空間,
硬碟才是王道。




四、軟體安裝
在嵌入式的Linux手工安裝所需要的程式其實不麻煩,最簡單的辦法就是利用ipkg,為了更簡單的達到目的,在破解了固件後直接安裝wenl出品的1073通用機型套裝軟體即可,真的是太方便了。順便向wenl(http://1073.konamicn.com/)表示敬意。
截至到發文時,wenl已經放出2.1版了。
套裝軟體2.1版下載地址:分為硬碟版和rom版本,分別對應有無內置硬碟的用戶。
http://u.115.com/file/f431810aad
2.1 更新說明:
1.解壓縮後請分別參加2個包的說明,以選取合適的套裝軟體。
2.修復了sina newsbug
3.
支持3322動態功能變數名稱方法參見http://1073.konamicn.com/thread-249-1-1.html
4.
加入了ntp自動網路對時
5.
增加了mldonkey支援電驢下載控制頁面為http://播放器ip地址:4080/使用方法請google

arrow
arrow
    全站熱搜

    三原online 發表在 痞客邦 留言(0) 人氣()