ronzi A3 と Cruz Tablet T301

いろいろ調べていくと、Cruz Tablet T301というのもMIPS Androidらしい。

Android 2.2へのアップデータが出ているのでダウンロードしてみる。

中身は・・・

# file *
META-INF:      directory
boot.img:      data
mbr-xboot.bin: data
system.img:    Linux rev 1.0 ext4 filesystem data (needs journal recovery) (extents)
userdata.img:  Linux rev 1.0 ext4 filesystem data (extents)
#

構造はかなり似ている。
system.imgとuserdata.imgの構造もほぼ同じ。
system.img内には「recovery.cpio.img」と「userdata.img」がある。

/system/build.prop の内容もほぼ同じ。

/system/lib ディレクトリの内容はいくらか違いがでているような感じですが、jz4760b_lib があったりと、MIPSでもJZ4760を搭載しているんだろうな、と思わせる部分があります。

そして、/system/app ディレクトリ内には、、まじめな感じのソフトウェアがいろいろ入ってます。

system.img 内の userdata.img は不要なのかと思ったのですが、Cruz Tablet T301でも同じつくりをしているってことは、必須なんですかねぇ・・・

ちなみに、Cruz Tablet T301のbuild.prop はこんな感じです

# cat build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=FRG83
ro.build.display.id=T301-eng 2.2.1 FRG83 eng.szhao.20110513.013344
ro.build.version.incremental=eng.szhao.20110513.013344
ro.build.version.sdk=8
ro.build.version.codename=REL
ro.build.version.release=2.2.1
ro.build.date=Fri May 13 02:02:22 CST 2011
ro.build.date.utc=1305223342
ro.build.type=eng
ro.build.user=szhao
ro.build.host=szhao-desktop
ro.build.tags=test-keys
ro.product.model=T301
ro.product.brand=tablet_p2
ro.product.name=tablet_p2
ro.product.device=tablet_p2
ro.product.board=
ro.product.cpu.abi=mips
ro.product.manufacturer=ingenic
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=tablet_p2
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=T301-eng 2.2.1 FRG83 eng.szhao.20110513.013344
ro.build.fingerprint=T301/tablet_p2/tablet_p2/:2.2.1/FRG83/eng.szhao.20110513.013344:eng/test-keys
# end build properties
#
# system.prop for tablet_p2
#

rild.libpath=/system/lib/libreference-ril.so
rild.libargs=-d /dev/ttyS2

#ro.sf.lcd_density=240

#
# 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.setupwizard.mode=OPTIONAL
dalvik.vm.dexopt-flags=m=y,v=n
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
dalvik.vm.heapsize=24m
#

ronzi A3のfirmwareをカスタマイズできるかどうかをやってみた

ronzi A3のfirmwareをカスタマイズできるかどうかをやってみた。

まず、配布rar内のシステムイメージを確認

# file *
boot_rz.img data
cache.img Linux rev 1.0 ext4 filesystem data (extents)
mbr-xboot-60_rz43_1104280101.bin x86 boot sector; partition 1: ID=0x83, starthead 0, startsector 262144, 524288 sectors; partition 2: ID=0x83, starthead 0, startsector 819200, 1048576 sectors; partition 3: ID=0x83, starthead 0, startsector 1908736, 65536 sectors; partition 4: ID=0xb, starthead 0, startsector 2097152, 13918208 sectors
recovery.cpio.img data
system.img Linux rev 1.0 ext4 filesystem data (needs journal recovery) (extents)
userdata.img Linux rev 0.0 ext2 filesystem data
vfat.img data
#

ext2, ext4のものは、普通にLinuxのファイルシステムとしてマウントできるのを確認。

cache.img → /cache パーテーションとなるものだが、中身は空
system.img → /system パーテーションとなるもの
userdata.img → /data パーテーションとなるもの

そして、system.img の中に userdata.imgとrecovery.cpio.img が中に含まれている。
system.img内のuserdata.imgとrecovery.cpio.imgは削除しても正常に動作した。なぜ入っているのかは不明。両方併せて70MBなのでとりあえず削除しておいた。

さらに、中身の詳細を確認していくと、通常 /system/app に入っている Google Android Market関連のapkが/data/app に入っている。
移動させるのと同時にxdaのフォーラム:[APPS] GApps package [not continuing, last update Jan 13,2011] からMarket関連のapkを持ってきて置き換えた。
ついでに、Google MapとGmailも組み込んでみたが、元々少ないメインメモリを使い、もっさり感が増したので、こちらは取りやめ。

この他、中華なアプリとか中華IMEとかをざっくり消していって system.imgとuserdata.img をダイエット。
また、/system/build.propに「ro.sf.lcd_density=130」というエントリも追加。

そうやって作成したイメージを適用。

手法はUSB boot toolを起動して行う。
ただ、今回、カスタマイズしたのはsystem.imgとuserdata.imgだから、それだけでいいやー、と思って適用してみたら、ちゃんと終わらない。
更新しなかったファイルも含めて全部適用しなければならない感じです。

また、firmware書き換えると、WifiのMACアドレスも変わります。
いまのうちのronzi A3は・・・たぶん、7個目ぐらいのアドレスです。

で・・・・問題点がありまして・・・
カスタマイズしても、やっぱりもっさり^^;;;;;;;;;;;;;;

MIPS系CPU JZ4770登場

JZ4760に関する資料が無いかftp.ingenic.cnを漁っていると「4770」なんてディレクトリが・・・

Jz4770なんて新しいものがでてたんだ、と、「Jz4770」について探してみると、「ミップス・テクノロジーズとIngenic Semiconductor社、新しい1GHz超低消費電力MIPS-Based™モバイルSoCにAndroid™ “Honeycomb” を搭載するために協力」なんてMIPS社の2011/05/31付けのプレスリリースを発見。

Jz4770に対してはHoneycomb(Android 3.0)が載ることになるらしい。

ただ、CPU 1GHz動作で、OpenGL ES対応の3D GPUと、1060p対応のVideoProcessingUnit(VPU)が載ってるものが、これから登場っていうのは、ちょっと出遅れなんじゃ?と思わなくもないですが・・・
GPUのスペックにも「Alpha-osd up to 800×480」とあるので高解像度向けではないようです(高速化とかの機能が働かないですが1920×1080までとりあえずは対応しているようです)


ちなみに・・・
メインCPU用 Xburst 1core
VPU用 Xburst 1core
GPU用 ベース不明 1core
という数え方も、可能といえば可能なので、「Xburst 3 core 1GHz」なんて表記には気をつけろw
(実際、JZ4770 Mobile Application Processor Data Sheetに「CPU core」「VPU core」「GPU core」なんて記載があります)

JZ4760(MIPS)用nicoWnnG 独自ビルド版

(2013/06/21 追記 start)
最新版は「MIPS Android(JZ4760)用nicoWnnG version 2013.0425.1 独自ビルド版」にて配布中。

(追記 end)


———————————
OpenWnnもATOKも、どちらもAndroid NDKを使用して処理の高速化を図っています。
が、このNDKを使うとその配布パッケージはCPUアーキテクチャが限定される、という制約もかかります。

いまのところ主流のAndroid端末はARMアーキテクチャですが、ronzi A3はJZ4760というMIPSアーキテクチャのCPUを使用しています。
このため、OpenWnnもATOKも、ronzi A3では使用できない、という問題が発生します。

解決方法は、MIPSアーキテクチャ用のファイルも作成することです。

そんなわけで、単体でソースが公開されているnicoWnnGを使用しまして、MIPSに対応させた独自ビルド版nicoWnnGを作成しました。

apkファイル: nicoWnnG-mips.apk
・nicownng_2011_0503_1_src.zipをベースとしています

最新版はこちら
・MIPS用のバイナリを入れた以外はプログラム的な変更はありません。
・ronzi A3で使うと、レイアウトが結構おかしな感じで表示されますが、まだ、調整していません。
・apkに対する署名は配布元のものとは別になっています。今後、正規対応版が出たら、うちのをアンインストールしてから、正規対応版をインストールしてください。(じゃないとインストールに失敗します)

ちなみに、作り方のメモをおいておきます

Android NDK公式においてあるものはARMアーキテクチャ用のキットです。
MIPS用のものはMIPS社の開発ページから入手できます。

nicoWnnGのソースを展開して、jni/Application.mk内の「APP_ABI」行を「APP_ABI := mips」に変更します。
その後、mipsのAndroid NDKを使用してndk-buildを実行すると、libs/mips/ ディレクトリ内にMIPS用のバイナリが出力されます。
これを使用して、あとの手順は標準と同じように行っていきます。

ronzi A3 firmware update guide

ronzi A3(溶智 A3) ,firmware (ROM) update guide.
(2013/01/15 fixed download link)

(0) you got firmware and util(include USBBootTool.exe for separated firmware)
(1) ronzi A3 is booting “USB boot mode”

Press Home button and Power on.
Then, ronzi A3 into USB boot mode.
Warning: In this time, ronzi A3 screen is black. no-display.

(2) Connect to MS-Windows and install “Ingenic USB Boot Device Driver”.

ronzi A3 is displayed “JZ4760 USB Boot deivice”

(3) Disconnect ronzi A3
Warning: Don’t connect ronzi A3, before Step6.

(4) execute USBbootTool

(5) Select the update files.

Red square: “打井…” meaning “Select file…”
Greed square: “清除” , this value is ignore.

(6) USBboot mode ronzi A3 conneted to MS-Windows ,
USBboot Tools will be update start.

(7) Automaticaly update

While update progress, Block the interface.

(8) waiting….

If un-blocked, then update finished

(9) Power on and booting new firmware.
It takes about 120sec.