2011/11/13追記: すzさんのところでNovo7 basic 用 Android 2.2カスタムファームウェアが公開されています。
————————–
検索していたら、NOVO7 basicっぽいfirmwareを配布しているところを発見した。
まぁ、恒例のimp3.netなんですが・・・
[ROM发布] 【Novo7 普及版固件】君正MIPS热风来袭,2.2 3.2两版固件周末突击发布新版本公测!!
転載:Android 3.2 for NOVO7 Basic
転載:Android 2.2 for NOVO7 Basic / update.zip version
どうやらsdcardにupdate.zipを置いて、ボリュームupボタンを押しながらリセットボタンを押し、「ainol艾诺」ロゴがでたところで、ボリュームupボタンを離すと、アップデートが開始されるようだ。
この手法はAndroidスマートフォンでよくあるアップデート手法。
もしかすると、boot loader関連が改良されているのかもしれない。
(それとも、ronzi A3でも実はできるのか?)
従来通りのUSBBoottoolによるアップデートもできるようです。
こちらの場合は、ボリュームDOWNボタンを押すようです。
ただ、単体で実行できる方は「Novo7Basic_android2.2_20111029.7z」という穏当な名前ですが、USBBoottool版が「Android3.2_Novo7_Basic_1029.rar」などという謎のファイル名に・・・
ダウンロード速度が非常に遅いので中身の確認は、明日ですかねぇ・・・
— 2011/11/01 追記 —
update.zipは、android一般的な形式のupdate.zipではありますが、イメージファイルを直接書き込む感じの形式でした。
書き込むのはmbr-xboot.bin, boot.img,system.imgだけで、それ以外はない、というのがちょっと驚きです。
ui_print("Setup your device..."); ui_print("update xboot...."); package_extract_file("mbr-xboot.bin", "/tmp/mbr-xboot.bin"); inand_write_raw("/tmp/mbr-xboot.bin","xboot"); ui_print("update boot.img...."); set_progress("2"); show_progress("0.1", 1); package_extract_file("boot.img", "/tmp/boot.img"); inand_write_raw("/tmp/boot.img","boot"); show_progress("0.1", 1); #package_extract_file("userdata.img", "/tmp/userdata.img"); #inand_write_raw("/tmp/userdata.img","data"); ui_print("update system.img...."); set_progress("9"); set_progress("9"); show_progress("0.02", 1); show_progress("0.02", 1); show_progress("0.02", 1); show_progress("0.02", 1); show_progress("0.02", 1); show_progress("0.02", 1); package_extract_file("system.img", "/sdcard/system.img"); inand_write_raw("/sdcard/system.img","system"); show_progress("0.1", 1); #ui_print("update userdata.img...."); show_progress("0.1", 1); show_progress("0.1", 1); show_progress("0.1", 1); show_progress("0.1", 1); #package_extract_file("userdata.img", "/tmp/userdata.img"); #inand_write_raw("/tmp/userdata.img","data"); show_progress("0.1", 1); ui_print("Done."); set_progress("10"); show_progress("0.1", 1);
system.imgの中には、boot.img,recovery.cpio.imgとuserdata.imgが含まれていますが、おそらく、使われてはいないでしょう。
Android一般的の話であればupdate.zip適用時は/data領域(つまりuserdata.img)は初期化されないことになっているので、そういう作りになっているのかな?と思います。
で、今回の注目点は、パッケージを作り間違えたのか、x-bootというディレクトリの中に、x-bootのソースファイルっぽいものが含まれているというところです。
マザーボードの種類を示しているx-boot/boot/board/というディレクトリを見ると
# ls -l x-boot/boot/board/ 合計 64 -rw-r--r-- 1 root root 1462 7月 30 12:21 Makefile drwxr-xr-x 3 root root 4096 11月 1 09:48 altair drwxr-xr-x 3 root root 4096 11月 1 09:48 crater drwxr-xr-x 3 root root 4096 11月 1 09:48 lepus -rw-r--r-- 1 root root 2810 7月 30 12:21 lib_board.a drwxr-xr-x 3 root root 4096 11月 1 09:48 lynx drwxr-xr-x 3 root root 4096 11月 1 09:48 maple drwxr-xr-x 3 root root 4096 11月 1 09:48 npm701 drwxr-xr-x 3 root root 4096 11月 1 09:48 pisces drwxr-xr-x 3 root root 4096 11月 1 09:48 pt701_8 drwxr-xr-x 3 root root 4096 11月 1 09:48 px7_2r drwxr-xr-x 3 root root 4096 11月 1 09:48 pyxis drwxr-xr-x 3 root root 4096 11月 1 09:48 tablet_8II drwxr-xr-x 3 root root 4096 11月 1 09:48 tablet_p2 drwxr-xr-x 3 root root 4096 11月 1 09:48 z800 drwxr-xr-x 3 root root 4096 11月 1 09:48 zorroo #
また、それらのボードに関する設定はinclude/configsディレクトリで行われているようです。
#ls -l x-boot/include/configs 合計 276 -rw-r--r-- 1 root root 12074 7月 30 12:21 altair.h -rw-r--r-- 1 root root 5909 7月 30 12:21 apus.h -rw-r--r-- 1 root root 5778 7月 30 12:21 aquila.h -rw-r--r-- 1 root root 13296 7月 30 12:21 crater.h -rw-r--r-- 1 root root 2168 7月 30 12:21 jz4760_common.h -rw-r--r-- 1 root root 3384 7月 30 12:21 jz4770_common.h -rw-r--r-- 1 root root 17047 7月 30 12:21 lepus.h -rw-r--r-- 1 root root 16895 7月 30 12:21 lynx.h -rw-r--r-- 1 root root 19281 7月 30 12:21 maple.h -rw-r--r-- 1 root root 19100 7月 30 12:21 npm701.h -rw-r--r-- 1 root root 16051 7月 30 12:21 pisces.h -rw-r--r-- 1 root root 11442 7月 30 12:21 pt701.h -rw-r--r-- 1 root root 15187 7月 30 12:21 pt701_8.h -rw-r--r-- 1 root root 16185 7月 30 12:21 px7_2r.h -rw-r--r-- 1 root root 15829 7月 30 12:21 pyxis.h -rw-r--r-- 1 root root 15187 7月 30 12:21 tablet_8II.h -rw-r--r-- 1 root root 15658 7月 30 12:21 tablet_p2.h -rw-r--r-- 1 root root 13367 7月 30 12:21 z800.h -rw-r--r-- 1 root root 18260 7月 30 12:21 zorroo.h #
と、まだ見ぬ機種がいろいろいるようです。
現状判明しているのは、以下の3種類です。
lynx=ronzi A3系
z800=怪しい中華Android携帯
tablet_p2=Cruz Tablet T301
xam5001=IQQ M1なんだけど、リストにない・・・
npm701=NOVO7 Basic
Ramos V65Proは、「ro.product.device=V65PRO」と設定されているが「ro.build.fingerprint」ではlynxとなっているので、lynxの類型である可能性が大きい。
build.propの違いについては、Jz4760系Androidのbuild.propの違いに追加しました。
起動時に使用されるロゴ画像は以下のディレクトリにあります。
# ls -l x-boot/boot/logo/ 合計 292 -rw-r--r-- 1 root root 51812 7月 30 12:21 AMT_800x480.rle -rw-r--r-- 1 root root 36468 7月 30 12:21 jz_1024_768.rle -rw-r--r-- 1 root root 36468 7月 30 12:21 jz_800_480.rle -rw-r--r-- 1 root root 93200 7月 30 12:21 novo7_1.rle -rw-r--r-- 1 root root 14260 7月 30 12:21 pt701_8.rle -rw-r--r-- 1 root root 14260 7月 30 12:21 tablet_8II.rle -rw-r--r-- 1 root root 36580 7月 30 12:21 tablet_p2.rle #
なんと、Jz47x0だけではなく、CPUがAMTのものについてのロゴも含まれています。
ただ、他のディレクトリにはAMTに直接関係しそうなファイル名のは見当たりません。
電源off時に表示される充電ロゴ、というのは、おそらく、x-boot/include/charge_logo.hで定義されているものなんでしょう。