MIPS用suバイナリ ver3.0.1

GUIアプリからroot権限操作を行う場合、ChainsDDさんのSuperuser.apk+suバイナリが必要になる。

Superuser.apkは普通のAndroidアプリだが、suバイナリの方はARMアーキテクチャ用となっている。
じゃぁ、MIPSアーキテクチャ用のsuバイナリを用意しよう!
ということで、用意しました。

su-3.0.1.zip

zip内のsuファイルを/system/xbin/su もしくは/system/bin/su に置いてください。
そして、「chmod 6755 /system/xbin/su」もしくは「chmod 6755 /system/bin/su」と権限を与えてください。

ちなみに、Githubで公開されているソースは、ver 3.0.1のしかないようなので、このバージョンになっています。

Superuser.apkの方は公式のhttp://downloads.androidsu.com/superuser/Superuser-3.0.6-efgh-signed.zipをダウンロードしてください。
そして、system\app\Superuser.apkを使ってください。
注意点としては、Superuser.apkの中で、suバイナリのバージョンチェックとアップデートを行うことができますが、これをやってしまうと、suが動かなくなる、という点です。
それさえ注意すれば、問題なく動くかと思います。

ただ、これを使ってもRootexplorerは期待通りの動作をしてくれなかったり・・・
/systemに移動して「Mount R/W」ボタンを押しても、なにも動いてくれない・・・
どこら辺に問題があるかなぁ・・・

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

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

(追記 end)


— 以下、元の記事 —
MIPS Androidで動作するnicoWnnGを2011/11/15時点での最新版(Version 2011.1115.1)にアップデートしました。(2011/11/15 12:10: 2011.1111.1→2011.1115.1 に差し替えました)

ダウンロード: nicoWnnG-2012.0325.1-mips.apk
ダウンロード: nicoWnnG-2011.1111.1-mips-2.apk (23:15 署名を忘れていたのを修正しました)
ダウンロード: nicoWnnG-2011.1115.1-mips.apk

[注意事項]
オリジナルのnicoWnnGがすでにインストールされていると、こちらの独自ビルド版はインストールに失敗します。
逆に、こちらの独自ビルド版があると、オリジナルのインストールに失敗します。

これは、この独自ビルド版は、オリジナルのnicoWnnGと同じソース・パッケージ名で作成されていますが、署名が異なっていることによるものです。

といっても、オリジナル版はMIPS用のライブラリが内蔵されていないので、そもそものインストールに失敗しますが・・・
なお、今回の独自ビルド版では、MIPS、MIPS-R2用のバイナリのみとし、オリジナル版に含まれるARM,x86用バイナリを削除しています。

ronzi(溶智) A3での動作確認をしました。(2011/11/14 23:15)

それ以外の機種での動作は未確認です。
過去のバージョンではAMT-7001を積んだICOO T22では動作しなかったようですが、MIPS-R2用バイナリを追加したこのバージョンでは動くといいんですが・・・

旧バージョン:
2011.0823.2版
2011.0503.1版

独自ビルド版のトピック
・いままでAndroid NDK for MIPSのr5bでコンパイルしていましたが、r6mに変更しました。
・いままでMIPS r1用のバイナリのみでしたが、MIPS r2用のバイナリも含めました。
・apk容量削減のため、MIPS用バイナリのみとしました。
・全体の再コンパイルは行わず、libディレクトリのみをapktoolを使って入れ替えています。

MIPS Androidで動くアプリ

NOVO7 Basic関連でフォーラムを見ていたら、NOVO7 Basicで動くというアプリをまとめたものがあった。
[资源分享] [10月28日更新]Novo7普及版君正4770方案MIPS第三波资源分享加网友急需解决的应用程序

・第一波上传软件、游戏资源包地址: http://115.com/folder/f80f4938188#
Game.rar(20個のapk)とAinol_Mips_apks.rar(91個ぐらいのapk)

・第二波Novo7普及版常用软件单独APK整理,包括QQ for Pad 1.7等: http://115.com/folder/f8018bf3238#
 いろいろな単品apkファイル。48個のapk
 KingsoftOffice_V4.0.0.1.apkが動くらしい

・第三波重磅资源:51个在3.2安卓测试固件上实测OK的游戏资源,理论上应该2.2一样通用: http://115.com/folder/f7360580843#
 Android 3.2で動いたというゲーム群。51個のapk

ところで、最近、ronziのhttp://www.ieronzi.com/にアクセスできません。
つぶれたのかなぁ・・・

mbr-bootを作成してみる

NOVO7 Basicのfirmwareに入っていたx-bootのソースファイルからronzi A3で動くものを作ってみようと試みた。
目的としては、Cruz Tablet T301やNOVO7 BASICのように、SDカードに載せたupdate.zipからアップデートできないかなー、とか、そんなの感じで。

コンパイル手法は・・・
「make 機種名」で初期設定を行い
「make release_config」でデバグ系設定を取り除き
「make」でコンパイルを実行する
というものである。

ronzi A3の中を見ていると機種名として「lynx」とあったため、その関連と思われる設定を試した。

まず「nand」と「msc」という2種類のbootローダがあり、ronzi a3で必要なmbr-xbootを作成するのは、「msc」の方であった。

lynxのmsc向け設定は以下の3種類があり、コンパイルし書き込んで見たら、それぞれブラックアウトで起動してこなかった。
・lynx_msc_config
・lynx_jz4760b_msc_config
・lynx_jz4760b13_msc_config

画面が出てこないということは液晶操作系がうまくいっていないからかと判断。
とりあえず画面サイズである480×272を設定している箇所がどこかにないか調査。

boot/lcd/jz4760_lcd.c 内で設定されており、「CONFIG_JZ4760_ANDROID_LCD_AUO_A043FL01V2」という定数が指定されている場合に有効になる箇所に「480, 272」といった記載があることを発見。

この定数を定義しているのは「lepus_msc_config」の時のみだけであったため、「make lepus_msc_config」で作成してみたが、結果は変わらず。
「lepus_jz4760b_msc_config」は液晶コントローラが違うが、「make lepus_jz4760b_msc_config」で初期設定を行った後、手動でinclude/config.hに「#define CONFIG_JZ4760_ANDROID_LCD_AUO_A043FL01V2 1」を記載し、試行してみたがブラックアウト。

分解写真を見ると、液晶は「KD43G18-40NM-A1」らしい。
似た型番としえは「CONFIG_JZ4760_ANDROID_LCD_KD50G2_40NM_A2」というのがある。

型番の命名規則は以下のようになっているとのこと。(メーカであるK&DKD50G2-40NM-A2仕様書)
KD+「インチ」+「Productor Type」+「型番」-「インタフェースのPIN数」+「タッチパネルかどうか」+「LCDタイプ」-「レビジョン」

Productor Type: D=Digital photo frame DVD、G=GPS、M=MP、P=Mobil-Phone
タッチパネルかどうか: T=タッチパネル、N=Notタッチパネル
LCDタイプ: A=AUO、 M=CMO、 C=CPT、 P=PVI、 L=LG、 W=Wintek、 H=HSD、 T=Topply、 Y=Hydis、 I=Hitach、 S=Sharp

ということなので、GPS向けタッチパネル無しのCMO製の液晶を積んだモジュール、ということになるはずなんだけど、タッチパネル無しって・・・?

調べてみると「lepus_jz4760b_msc_config」が「CONFIG_JZ4760_ANDROID_LCD_KD50G2_40NM_A2」だったので、「make lepus_jz4760b_msc_config」で書き込んで見たが、かわらず。
次にboot/lcd/jz4760_lcd.c内のCONFIG_JZ4760_ANDROID_LCD_KD50G2_40NM_A2に関する定義で「800×600」を設定している箇所を「480×272」に変更したが、状況は変わらず。

それと平行して、どうやったらupdate.zipからのfirmware適用ができるのかを調べてみた。
発動条件が、ボリュームUPキーを押しながら電源ONということだったので、機種毎の設定があるinclude/configs/のファイルを見比べた。
その結果、「GPIO_KEY_VOLUME_INC」がボリュームUPキーの定義で、NOVO7 Basicの設定ファイルであろうnpm701.hでは「XBOOT_SEL_RCVR_KEY」に関連づけられていた。
もう1つ、「XBOOT_SEL_FAST_KEY」という機能は、ボリュームDOWNキーに割り当てられている。

Cruz Tablet T301の設定ファイルであるtablet_p2.hでは、「XBOOT_SEL_RCVR_KEY」は「GPIO_SW1=VOL ADD=ボリュームUP」に割り当てられており、「XBOOT_SEL_FAST_KEY」については未定義になっている。

さて、ronzi A3について見てみる。lynx.hかlepus.hのどちらがそうなのかによって、状況が違う。
lynx.hでは「XBOOT_SEL_RCVR_KEY」は「GPIO_KEY_MAIN」、おそらくMAINキーとはHOMEボタンに割り当てられている。
「XBOOT_SEL_FAST_KEY」は「GPIO_KEY_VOLUME_INC」に割り当てられているが、存在はしていない。

lepus.hでは「XBOOT_SEL_RCVR_KEY」は「GPIO_KEY_VOLUME_DEC」、ボリュームDOWNボタン
「XBOOT_SEL_FAST_KEY」は「GPIO_KEY_VOLUME_INC」、ボリュームUPボタンに割り当てられている。

このことから、ronzi A3は、やっぱりlynxなんじゃないかなーとは思う。

で、これを見る限りでは、ronzi A3でも、ちゃんとupdate.zipを作ってやれば、アップデートできる可能性があるのではないかと思う。

(recovery.img.cpioはsplit_bootimg.plでkernelとcpio.gzに分離できた。)

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マシンで動かすにはかなりきつそうです。