ファーム解析

Last-modified: 2012-01-14 (土) 07:50:15

Huawei IDEOS U8150 の各国キャリア向けファームウェアの比較

各ファームの中身のバージョンについてはこちらが参考になる。
http://www.gcd.org/blog/2011/01/712/

人気のファームウェア

  • 日本通信版
    日本通信版のAMSSでは、U8150-Bの800MHz帯域を解禁できる。
  • EMOBILE版
    U8150-92専用のファーム。他端末に入れるとAPN設定が行えないなどの不具合がある。
  • ABC Data S.A.版
    ポーランドのキャリア。現時点で最新のビルドでマルチタッチにも対応する。

OperatorNameとCountryName

IDEOSにはOperatorNameとCountryNameを覚えているところがあり、ファームを焼いてもその部分は変わらない。
電話アプリで*#*#2846579#*#*にダイヤル→ProjectMenu→5→6で表示できる。

OperatorNameCountryName
日本通信版hwnormal
EMOBILE版emobilejp
香港版smartonehk
台湾版fettw

/cust

各ファームウェアでカスタマイズされている部分は /cust/[OperatorName]/[CountryName]/ 以下に格納されている。
IDEOSはファームを焼いた直後 および初期化を行った際に、/data/cust/ に /cust/[OperatorName]/[CountryName]/ 以下の各ディレクトリへのシンボリックリンクを作成する。

/data/cust/app -> /cust/[OperatorName]/[CountryName]/app/

/data/cust/lib -> /cust/[OperatorName]/[CountryName]/lib/

/data/cust/xml -> /cust/[OperatorName]/[CountryName]/xml/

/data/cust/prop -> /cust/[OperatorName]/[CountryName]/prop/

...

他のファームを焼いても、OperatorNameとCountryNameが異なるため、シンボリックリンクを張ることが出来ない。
そのため/cust 以下の内容は反映されない。

香港版初期ファームには /cust が無い

香港版初期ファームでは/cust パーティションがマウントされない。
しかしパーティションそのものは存在はしており、ファームを焼いた直後および初期化時に/cust パーティションの中身を/data にコピーする。

/data/smartone/hk/app ←コピー← /cust/smartone/hk/app/

/data/smartone/hk/lib ←コピー← /cust/smartone/hk/lib/

/data/smartone/hk/xml ←コピー← /cust/smartone/hk/xml/

/data/smartone/hk/prop ←コピー← /cust/smartone/hk/prop/

...

香港版以外のアップデータは/cust パーティションを上書きするため、香港版以外を焼くとオリジナルの/cust の中身を復帰させる方法が無い。

/custを反映させる その1

/cust/[OperatorName]/[CountryName]/ が無いなら本体に合わせて都合よくリネームしてしまえばよい。
リネームしても勝手にシンボリックリンクが出来るわけではないので初期化が必要になる(シンボリックリンクを手動で作る場合は下記「/custを反映させる その2」を参照)。

  1. root取って/custをrwでリマウント
  2. パス /cust/[OperatorName]/[CountryName]/ の名前を自分のIDEOSのOperatorNameとCountryNameに合うよう変更
  3. recoveryで起動して初期化

/custを反映させる その2

/data/cust/ 以下のシンボリックリンクのリンク先だけ手動で変えてやれば、再起動する必要はなくなる。
/cust/[OperatorName]/[CountryName]/ 以下の各ディレクトリへのリンクを /data/cust/ 以下に手動で張る。

アップデータからファイル抽出(Linux環境前提)

以下のPerlスクリプトにてアップデータが展開できる。
http://android.modaco.com/content/t-mobile-pulse-pulse-modaco-com/311344/repacking-updata-app-was-new-version-of-split-updata-pl/
system.img, boot.img, recovery.imgを含む多数のファイルが取得できる。
cust.imgはないが、unknown_file.4がそれにあたる。

system.img, unknown_file.4はyaffsなので、unyaffsにて展開できる。
http://code.google.com/p/unyaffs/

unyaffsの逆(ファイル群から.imgを作る方法)は以下で紹介されている。
http://chromaprog.blog101.fc2.com/blog-entry-22.html