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で定義されているものなんでしょう。