NOVO7 BasicにAndroid 3.2


2011/11/13追記: すzさんのところでNovo7 basic 用 Android 2.2カスタムファームウェアが公開されています。
————————–
[ROM发布] 【Novo7 普及版固件】君正MIPS热风来袭,2.2 3.2两版固件周末突击发布新版本公测!! で配布されているイメージは、update.zipの方はAndroid 2.2.1だけど、もう1つの方はAndroid 3.2っぽい。

転載:Android 3.2 for NOVO7 Basic
転載:Android 2.2 for NOVO7 Basic / update.zip version

それぞれのbuild.propを比べると以下のような違いがある。

@@ -1,60 +1,53 @@
 # begin build properties
 # autogenerated by buildinfo.sh
-ro.build.id=FRG83
-ro.build.display.id=npm701-eng 2.2.1 FRG83 eng.szhao.20111029.043636 test-keys
-ro.build.version.incremental=eng.szhao.20111029.043636
-ro.build.version.sdk=8
+ro.build.id=MASTER
+ro.build.display.id=npm701-eng 3.2 MASTER eng.jbbi.20111029.114136 test-keys
+ro.build.version.incremental=eng.jbbi.20111029.114136
+ro.build.version.sdk=13
 ro.build.version.codename=REL
-ro.build.version.release=2.2.1
-ro.build.date=Sat Oct 29 05:09:13 CST 2011
-ro.build.date.utc=1319836153
+ro.build.version.release=3.2
+ro.build.date=Sat Oct 29 11:48:44 CST 2011
+ro.build.date.utc=1319860124
 ro.build.type=eng
-ro.build.user=szhao
-ro.build.host=szhao-desktop
+ro.build.user=jbbi
+ro.build.host=dsqiu-10
 ro.build.tags=test-keys
-ro.product.model=npm701
+ro.product.model=Novo7Basic
 ro.product.brand=npm701
 ro.product.name=npm701
 ro.product.device=npm701
 ro.product.board=
 ro.product.cpu.abi=mips
-ro.product.manufacturer=ingenic
+ro.product.manufacturer=unknown
 ro.product.locale.language=zh
 ro.product.locale.region=CN
-ro.wifi.channels=
+ro.wifi.channels=13
 ro.board.platform=
 # ro.build.product is obsolete; use ro.product.device
 ro.build.product=npm701
 # Do not try to parse ro.build.description or .fingerprint
-ro.build.description=npm701-eng 2.2.1 FRG83 eng.szhao.20111029.043636 test-keys
-ro.build.fingerprint=npm701/npm701/npm701/:2.2.1/FRG83/eng.szhao.20111029.043636:eng/test-keys
+ro.build.description=npm701-eng 3.2 MASTER eng.jbbi.20111029.114136 test-keys
+ro.build.fingerprint=npm701/npm701/npm701:3.2/MASTER/eng.jbbi.20111029.114136:eng/test-keys
+ro.build.characteristics=tablet
 # end build properties
 #
-# system.prop for npm701
+# system.prop for generic sdk
 #

 rild.libpath=/system/lib/libreference-ril.so
-rild.libargs=-d /dev/ttyS3
+rild.libargs=-d /dev/ttyS0

-ro.sf.lcd_density=160
+#
+# H/W composition disabled
+#
+debug.sf.hw=0

-persist.sys.language=zh
-persist.sys.country=CN
-persist.sys.localevar=
-persist.sys.timezone=Asia/Shanghai

 #
 # ADDITIONAL_BUILD_PROPERTIES
 #
-ro.config.notification_sound=OnTheHunt.ogg
-ro.config.alarm_alert=Alarm_Classic.ogg
-media.stagefright.enable-player=true
-media.stagefright.enable-meta=true
-media.stagefright.enable-scan=true
-media.stagefright.enable-http=true
-ro.kernel.android.checkjni=0
+ro.kernel.android.checkjni=1
 ro.setupwizard.mode=OPTIONAL
-dalvik.vm.dexopt-flags=m=y,v=n,o=a
 net.bt.name=Android
 dalvik.vm.stack-trace-file=/data/anr/traces.txt
-dalvik.vm.heapsize=24m
+dalvik.vm.heapsize=40m

その他、system.imgやboot.imgの構成を見る限り、Android 3.2系であるのは間違いなさそうです。

ただ、heapsizeが40mになっているので、ronzi a3などのRAM 256MBマシンで動かすにはかなりきつそうです。

NOVO7 Basicのfirmware?


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

Jz4760はdual core?


検索ワードを見ていたら「Jz4760 デュアルコア」なんてのがちらほらと・・・

実質としてはJz4760はシングルCPUですよ!

正確には「Xburst」というコアが2つ積まれています。
そのうちの1つをCPU用に、もう1つをVPU(video processing unit)用に使用している、というところです。
なので、「Xburst dual core」という表記も、間違いではありませんが、「CPUがdual core」ではありません。
また、Xburstコア自体は600MHzで動作していますが、Xburstコアが2つあるので600MHz+600MHzで「1.2GHz」だ!とか無茶を言ってるスペック表もあったりするので、注意してください。

ちなみに、後継のJz4770では、VPU用のXburstは完全にVPUに特化してしまったようで、XburstコアはCPUの1つないような感じに変わっているようです。

MIPS Android NOVO7普及版


艾诺(ainol)のNOVO7普及版がJz4770搭載だという話が出てきた。
メーカーページ:智拥双星 艾诺NOVO7普及版报价599より

CPU Jz4770 1GHz
GPU Jz4770内蔵のGC860
メモリ 512MB
OS: Android 2.2
液晶 7インチ 800*400、静電式5点認識マルチタッチ
カメラ フロントに30万画素、バックに200万画素?
HDMI出力あり
値段は599元

艾诺NOVO7普及版君正核心MIPS架构测试に分解図を含め、いろんな写真がある。

ちなみにNOVO7は、すでにCPUにAllwinner A10を使用したNOVO7领先版(NOVO7 Advanced)というのがでているが、それとは別物。
メーカページ(智拥双全 艾诺平板NOVO7领先版发布)にも7インチで静電式5点認識という点以外は共通点ないよ、という書いてあります。

中華padのCPUスペック その2


micdigiのThe Tests Of Haipad M8という記事の中で、ベンチマーク結果がいくつか掲載されていた。

中華padでよく使われているCPUのnbench結果

CPU名称 CPUスペック メモリ 整数 浮動小数点
Vimicro(中星微) VC882 Cortex-A8 1GHz 2.889 4.038 0.759
AMLogic AML8726-M Cortex-A9 800MHz 2.255 3.006 0.916
SAMSUNG(三星) S5PC110 Cortex-A8 1GHz 2.947 4.017 0.771
Rockchip(瑞芯微電子) RK2918 Cortex-A8 800MHz 2.377 3.28 0.627
Rockchip(瑞芯微電子) RK2918 Cortex-A8 1GHz 2.599 3.591 0.636
Telechips TCC8803 Cortex-A8 1GHz 2.84 3.662 0.703

この調子で他のベンチマークソフトの結果も比較して欲しかったところですが、残念ながら、これ以降はHaipad M8(VC882搭載)とAinol NOVO 8(AML8726-M搭載)の比較結果のみでした。

とはいえ、VC882に搭載されているGPU Vivante GC400と、AML8726-MのGPU ARM Mali-400の比較は重要です。

項目 Hipad M8
VC882
NOVO 8
AML8726-M
GPU 開発元 Vivante ARM
型番 GC400(40nmモデル) Mali-400(1core)
トライアングル数 14M tri/s 25M tri/s
ピクセル数 280Mpix/s 250Mpix/s
Neocore フレームレート 13.6fps 25.1fps
NenaMark1 フレームレート 9.1fps 計測できず
NenaMark2 フレームレート 8.0fps 12.4fps
GLBenchmark 2.0 Egypt High 4.0fps 11.8fps
Egypt Standard 5.4fps 12.5fps
Pro High 12.1fps 22.9fps
Pro Standard 15.3fps 23.9fps(?)

ARM Mali-400のが性能が高いようですね。

ちなみに、VianteのGPUは、IngenicのJZ4770にも搭載されているとのことで、中華padでの採用例が増えてくるんでしょうね。

でも、JZ4770に搭載されるのは、何相当の機能なんだろうか?
Vivanteの製品ページにある内容と、JZ4770のデータシート(pdf)の記述を比較すると・・・

データシート上にあるGPUスペックに関する内容
・2D Graphic – Pixel rate up to 200M pix/s
・3D Graphic – Geometry rate up to 20M tri/s
・3D Graphic – Pixel rate up to 200M pix/s

これを満たせそうなものとなると、GC400かGC500、というあたりの模様。
そうなると、JZ4770での性能はあまり期待できなさげな感じです・・・

なお、その1は中華padでよく使われるCPUについてのメモです。