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.

中国のebookフォーマット umd

ronzi A3にプレインストールされているiReaderではどういうフォーマットがサポートされているか調べてみた。

iReader公式にはちょっとバージョンが古いものに関しての情報はある。
それによると・・・
textと、HTML集合体であるCHM、そして中国製フォーマットUMDに対応しているとのこと。

じゃあ、UMDってのは、どうやって作るのか?
umd-builder
ebookPK
手机Umd文件格式浅析 (たぶん、書式についての解説)

なお、UMDは、どうやら、中国携帯で結構サポートしているらしいフォーマットの模様。
おそらくはxmdf的な感じの位置づけっぽい

ronzi A3 その5 CPUアーキテクチャの違いでIMEが動かない

マーケットで「ATOK」とか「OpenWnn」とかで検索しても、本体は出てこない。
build.propとか書き換えても出てこない。

じゃぁ、別途持ってきてと思って、OpenWnn plusをダウンロードしてきてインストールしてみが、「インストールされていません」とエラーになる。

logcatしてみる・・・

D/PackageParser(  104): Scanning package: /data/app/vmdl57440.tmp
I/dalvikvm-heap(  104): Grow heap (frag case) to 5.740MB for 27488-byte allocation
D/dalvikvm(  104): GC_FOR_MALLOC freed 9482 objects / 540680 bytes in 160ms
D/PackageManager(  104): Scanning package com.owplus.ime.openwnnplus
I/PackageManager(  104): /data/app/com.owplus.ime.openwnnplus-1.apk changed; unpacking
E/PackageManager(  104): Package com.owplus.ime.openwnnplus has mismatched uid: 10055 on disk, 10051 in settings
I/dalvikvm(  104): Total arena pages for JIT: 11
W/PackageManager(  104): Native ABI mismatch from package file
W/PackageManager(  104): Package couldn't be installed in /data/app/com.owplus.ime.openwnnplus-1.apk
D/dalvikvm(  104): GC_EXPLICIT freed 10748 objects / 480504 bytes in 187ms

「Native ABI mismatch from package file」
そう、CPUアーキテクチャが違うことにより、問題が生じているらしい。
ronzi A3は「ro.product.cpu.abi=mips」
一般的には「ro.product.cpu.abi=arm」系というわけで、NDKを使って開発されたアプリは動かないらしい・・・

NicoWnnGも同じエラー発生。
docomo端末から引っ張ってきたATOKも同じく

いやぁ・・・困った。
NDK問題を回避できるIMEはあるんだろうか??

— 追記 その1 —
とりあえず、単独でソース公開されていたnicoWnnGを使って簡易対応してみた。
しかし・・・画面レイアウトの問題が・・・

— 追記 その2 —
JZ4760(MIPS)用nicoWnnG 独自ビルド版を配布してます。

ronzi A3 その4 firmwareアップデート

ronzi A3(溶叡 A3)はIngenic Semiconductor(北京君正集成電路有限公司)製のCPU JZ4760を使ってます。
アップデートの際は、そこのツールを使って行います。

手順は中国語pdfで送られてきたのですが、とりあえずフィーリングで読んでやってみたところ、うまくいったので、ご紹介

(0)firmwareを入手(注:ebayのsellerからもらったものをアップしました.2013/01/15にdropboxに再アップロード)
(1) ronzi A3をUSBブートモードで起動
(2) WindowsPCにつなげ、Ingenic USB Boot Device Driverをインストール
(3) とりあえず1回ronzi A3を取り外す
(4) USBbootToolを起動
(5) アップデートに必要なファイルを全て指定
(6) USBブートモードのronzi A3を接続
(7) 勝手にアップデートが開始される
(8) 終わるのを待つ
(9) 再起動かかったら、そこそこ時間がかかるので注意
(10) ronziのロゴの後、一回、黒画面になって10秒ぐらい経ってから、ANDROIDロゴが出てくる

注意点:USBbootTool.exeはUSBブートモードのデバイスがあると問答無用でアップデートを開始して中止できません。

さて、ここから詳細解説
(1) ronzi A3をUSBブートモードで起動

ホームボタンを押しながら電源ONするとUSBブートモードになります。
なお、USBブートモードに入っている場合、画面が何も映りません。

(2) WindowsPCにつなげ、Ingenic USB Boot Device Driverをインストール

こんな感じで「JZ4760 USB Boot Device」として認識されるので、A3 Driverディレクトリの中のドライバを適用してください。

(3) とりあえず1回ronzi A3を取り外す
ronziA3をつなげたままでは、この後のUSBbootToolがうまく使えません。
なので、USBbootTool側の準備が完了するまでつなげてはいけません。

(4) USBbootToolを起動

(5) アップデートに必要なファイルを全て指定

赤枠で囲んだ「打井…」というのが「ファイルを指定する」の意味です。
各ファイルに相当するものを指定しえください。
緑枠の「清除」の横の欄は、どうやらUSBbootToolを実行した回数を表すようです。実行するたびに数が増えていきますが、中国語の説明書によれば毎回「1」としろ、とか書いてあるようです。
全部を指定し終わったら、次に進みます

(6) USBブートモードのronzi A3を接続
USBブートモードになっているronzi A3をつなぎます。
Windows PCにつないで認識されると、USBbootToolは勝手に認識して、アップデートを開始します。

(7) 勝手にアップデートが開始される

アップデート中はファイルの選択などの部分がブロックされます。
また、下の進捗は1~とありますが、使われるのはver3.0.6時点では「1」だけのようです。

(8) 終わるのを待つ

こんな風に、ブロックが解除され、下の進捗欄に「ウノケヲ」と表示されたら完了です。

(9) 再起動かかったら、そこそこ時間がかかるので注意
(10) ronziのロゴの後、一回、黒画面になって10秒ぐらい経ってから、ANDROIDロゴが出てくる

1分ぐらい表示されるronziロゴ


10秒ぐらいしか表示されないAndroidロゴ

— 2011/07/06 追記 —
なお、6月中頃に公式の技術ページで「A3 升级工具及固件」という名前で、おそらくfirmwareの中身的には同等であろうものがアップロードされています。
しかし、ファイルの形式が全然違うので、詳しくはわかりません。