2011年10月23日

【第4回】NOVO5(RK2818搭載)のカスタムファームウェアを作る

今回の記事では
NOVO5にも使用することができるCUBE Q7PROのファームウェアを
ルート化する作業のヒントを解説します。

●ルート化とは
root権限を得るために
suコマンドを使えるようにする作業のことです。

suコマンドとSuperuser.apkをファームウェアのsystem.imgの中に
あらかじめ組み込んでおく必要があります。

純正のファームウェアにはこれらのファイルは入っていないので
ルート化済みの他のカスタムファームウェアから
必要なファイルを移植します。
今回は以前の記事でご紹介したupdate_androtab_onda.imgから移植します。

http://www.mp4nation.net/forum/viewtopic.php?f=6&t=22611
のフォーラム記事を見ると
幸いなことにsystem.imgのみを展開した状態でアーカイブされたファイルが
system-2.3.tar.gzという名前でアップロードされているので、
これを使わせてもらいます。
system dump : と書かれている方のリンクを辿ってダウンロードしてください。

それでは、
以下簡単に手順を書いておきます。

■system-2.3.tar.gzを7-zipで解凍します。
このアーカイブファイルには
system.imgが展開された状態でパックされています。
以下「コピー元」とこれを表記します。

■コピー元のsystem.img内/appディレクトリにあるSuperuser.apkを
改造しようとしているファームウェア(以下、改造先と表記)
のappディレクトリにコピーする。

改造先のsystem.dtを編集して
/app/Superuser.apk f 100644 0 0 - - - - -
を追加

■コピー元のxbinディレクトリをまるごと改造先にコピー。
superuserモードにするための
suコマンドもこのxbinディレクトリの中に含まれています。

rk2818firmware07.png

改造先のsystem.dt(展開の際に自分で指定したファイル名)を編集して

/xbin d 40755 0 208 - - - - -
/xbin/[ l 120777 0 208 - - - - -
/xbin/[[ l 120777 0 208 - - - - -
/xbin/add-property-tag f 100755 0 208 - - - - -
/xbin/arp l 120777 0 208 - - - - -
/xbin/ash l 120777 0 208 - - - - -
/xbin/awk l 120777 0 208 - - - - -
/xbin/basename l 120777 0 208 - - - - -
/xbin/bash f 100755 0 208 - - - - -
/xbin/bbconfig l 120777 0 208 - - - - -
/xbin/brctl l 120777 0 208 - - - - -
/xbin/btool f 100755 0 208 - - - - -
/xbin/bunzip2 l 120777 0 208 - - - - -
/xbin/busybox f 100755 0 208 - - - - -
/xbin/bzcat l 120777 0 208 - - - - -
/xbin/bzip2 l 120777 0 208 - - - - -
/xbin/cal l 120777 0 208 - - - - -
/xbin/cat l 120777 0 208 - - - - -
/xbin/catv l 120777 0 208 - - - - -
/xbin/check-lost+found f 100755 0 208 - - - - -
/xbin/chgrp l 120777 0 208 - - - - -
/xbin/chmod l 120777 0 208 - - - - -
/xbin/chown l 120777 0 208 - - - - -
/xbin/chroot l 120777 0 208 - - - - -
/xbin/cksum l 120777 0 208 - - - - -
/xbin/clear l 120777 0 208 - - - - -
/xbin/cmp l 120777 0 208 - - - - -
/xbin/cp l 120777 0 208 - - - - -
/xbin/cpio l 120777 0 208 - - - - -
/xbin/cpueater f 100755 0 208 - - - - -
/xbin/crasher f 100755 0 208 - - - - -
/xbin/cut l 120777 0 208 - - - - -
/xbin/daemonize f 100755 0 208 - - - - -
/xbin/date l 120777 0 208 - - - - -
/xbin/dbus-monitor f 100755 0 208 - - - - -
/xbin/dbus-send f 100755 0 208 - - - - -
/xbin/dc l 120777 0 208 - - - - -
/xbin/dd l 120777 0 208 - - - - -
/xbin/depmod l 120777 0 208 - - - - -
/xbin/devmem l 120777 0 208 - - - - -
/xbin/dexdump f 100755 0 208 - - - - -
/xbin/df l 120777 0 208 - - - - -
/xbin/diff l 120777 0 208 - - - - -
/xbin/directiotest f 100755 0 208 - - - - -
/xbin/dirname l 120777 0 208 - - - - -
/xbin/dmesg l 120777 0 208 - - - - -
/xbin/dnsd l 120777 0 208 - - - - -
/xbin/dos2unix l 120777 0 208 - - - - -
/xbin/dropbear f 100755 0 208 - - - - -
/xbin/dropbearkey f 100755 0 208 - - - - -
/xbin/du l 120777 0 208 - - - - -
/xbin/echo l 120777 0 208 - - - - -
/xbin/ed l 120777 0 208 - - - - -
/xbin/egrep l 120777 0 208 - - - - -
/xbin/env l 120777 0 208 - - - - -
/xbin/expr l 120777 0 208 - - - - -
/xbin/false l 120777 0 208 - - - - -
/xbin/fdisk l 120777 0 208 - - - - -
/xbin/fgrep l 120777 0 208 - - - - -
/xbin/find l 120777 0 208 - - - - -
/xbin/fold l 120777 0 208 - - - - -
/xbin/free l 120777 0 208 - - - - -
/xbin/freeramdisk l 120777 0 208 - - - - -
/xbin/fuser l 120777 0 208 - - - - -
/xbin/getopt l 120777 0 208 - - - - -
/xbin/grep l 120777 0 208 - - - - -
/xbin/gunzip l 120777 0 208 - - - - -
/xbin/gzip l 120777 0 208 - - - - -
/xbin/head l 120777 0 208 - - - - -
/xbin/hexdump l 120777 0 208 - - - - -
/xbin/htop f 100755 0 208 - - - - -
/xbin/id l 120777 0 208 - - - - -
/xbin/ifconfig l 120777 0 208 - - - - -
/xbin/insmod l 120777 0 208 - - - - -
/xbin/install l 120777 0 208 - - - - -
/xbin/ip l 120777 0 208 - - - - -
/xbin/irssi f 100755 0 208 - - - - -
/xbin/kill l 120777 0 208 - - - - -
/xbin/killall l 120777 0 208 - - - - -
/xbin/killall5 l 120777 0 208 - - - - -
/xbin/latencytop f 100755 0 208 - - - - -
/xbin/length l 120777 0 208 - - - - -
/xbin/less l 120777 0 208 - - - - -
/xbin/librank f 106755 0 0 - - - - -
/xbin/ln l 120777 0 208 - - - - -
/xbin/losetup l 120777 0 208 - - - - -
/xbin/ls l 120777 0 208 - - - - -
/xbin/lsmod l 120777 0 208 - - - - -
/xbin/lspci l 120777 0 208 - - - - -
/xbin/lsusb l 120777 0 208 - - - - -
/xbin/lzop l 120777 0 208 - - - - -
/xbin/lzopcat l 120777 0 208 - - - - -
/xbin/md5sum l 120777 0 208 - - - - -
/xbin/mkdir l 120777 0 208 - - - - -
/xbin/mke2fs l 120777 0 208 - - - - -
/xbin/mkfifo l 120777 0 208 - - - - -
/xbin/mkfs.ext2 l 120777 0 208 - - - - -
/xbin/mknod l 120777 0 208 - - - - -
/xbin/mkswap l 120777 0 208 - - - - -
/xbin/mktemp l 120777 0 208 - - - - -
/xbin/modprobe l 120777 0 208 - - - - -
/xbin/more l 120777 0 208 - - - - -
/xbin/mount l 120777 0 208 - - - - -
/xbin/mountpoint l 120777 0 208 - - - - -
/xbin/mv l 120777 0 208 - - - - -
/xbin/nano f 100755 0 208 - - - - -
/xbin/nc f 100755 0 208 - - - - -
/xbin/netperf f 100755 0 208 - - - - -
/xbin/netserver f 100755 0 208 - - - - -
/xbin/netstat l 120777 0 208 - - - - -
/xbin/nice l 120777 0 208 - - - - -
/xbin/nohup l 120777 0 208 - - - - -
/xbin/nslookup l 120777 0 208 - - - - -
/xbin/ntpd l 120777 0 208 - - - - -
/xbin/od l 120777 0 208 - - - - -
/xbin/opcontrol f 100755 0 208 - - - - -
/xbin/openvpn f 100755 0 208 - - - - -
/xbin/openvpn-up.sh f 100755 0 208 - - - - -
/xbin/oprofiled f 100755 0 208 - - - - -
/xbin/patch l 120777 0 208 - - - - -
/xbin/pgrep l 120777 0 208 - - - - -
/xbin/pidof l 120777 0 208 - - - - -
/xbin/ping l 120777 0 208 - - - - -
/xbin/pkill l 120777 0 208 - - - - -
/xbin/powertop f 100755 0 208 - - - - -
/xbin/printenv l 120777 0 208 - - - - -
/xbin/printf l 120777 0 208 - - - - -
/xbin/procmem f 106755 0 0 - - - - -
/xbin/procrank f 106755 0 0 - - - - -
/xbin/ps l 120777 0 208 - - - - -
/xbin/pwd l 120777 0 208 - - - - -
/xbin/rawbu f 100755 0 208 - - - - -
/xbin/rdev l 120777 0 208 - - - - -
/xbin/readlink l 120777 0 208 - - - - -
/xbin/realpath l 120777 0 208 - - - - -
/xbin/renice l 120777 0 208 - - - - -
/xbin/reset l 120777 0 208 - - - - -
/xbin/rm l 120777 0 208 - - - - -
/xbin/rmdir l 120777 0 208 - - - - -
/xbin/rmmod l 120777 0 208 - - - - -
/xbin/route l 120777 0 208 - - - - -
/xbin/rsync f 100755 0 208 - - - - -
/xbin/run-parts l 120777 0 208 - - - - -
/xbin/scp f 100755 0 208 - - - - -
/xbin/sed l 120777 0 208 - - - - -
/xbin/seq l 120777 0 208 - - - - -
/xbin/setsid l 120777 0 208 - - - - -
/xbin/sftp-server f 100755 0 208 - - - - -
/xbin/sh l 120777 0 208 - - - - -
/xbin/sha1sum l 120777 0 208 - - - - -
/xbin/sha256sum l 120777 0 208 - - - - -
/xbin/sha512sum l 120777 0 208 - - - - -
/xbin/showmap f 100755 0 208 - - - - -
/xbin/showslab f 100755 0 208 - - - - -
/xbin/sleep l 120777 0 208 - - - - -
/xbin/sort l 120777 0 208 - - - - -
/xbin/split l 120777 0 208 - - - - -
/xbin/sqlite3 f 100755 0 208 - - - - -
/xbin/ssh f 100755 0 208 - - - - -
/xbin/stat l 120777 0 208 - - - - -
/xbin/strace f 100755 0 208 - - - - -
/xbin/strings l 120777 0 208 - - - - -
/xbin/stty l 120777 0 208 - - - - -
/xbin/su f 106755 0 0 - - - - -
/xbin/swapoff l 120777 0 208 - - - - -
/xbin/swapon l 120777 0 208 - - - - -
/xbin/sync l 120777 0 208 - - - - -
/xbin/sysctl l 120777 0 208 - - - - -
/xbin/tac l 120777 0 208 - - - - -
/xbin/tail l 120777 0 208 - - - - -
/xbin/tar l 120777 0 208 - - - - -
/xbin/tcpdump f 106755 0 0 - - - - -
/xbin/tee l 120777 0 208 - - - - -
/xbin/telnet l 120777 0 208 - - - - -
/xbin/test l 120777 0 208 - - - - -
/xbin/tftp l 120777 0 208 - - - - -
/xbin/time l 120777 0 208 - - - - -
/xbin/timeinfo f 100755 0 208 - - - - -
/xbin/top l 120777 0 208 - - - - -
/xbin/touch l 120777 0 208 - - - - -
/xbin/tr l 120777 0 208 - - - - -
/xbin/traceroute l 120777 0 208 - - - - -
/xbin/true l 120777 0 208 - - - - -
/xbin/tty l 120777 0 208 - - - - -
/xbin/tune2fs l 120777 0 208 - - - - -
/xbin/umount l 120777 0 208 - - - - -
/xbin/uname l 120777 0 208 - - - - -
/xbin/uniq l 120777 0 208 - - - - -
/xbin/unix2dos l 120777 0 208 - - - - -
/xbin/unlzop l 120777 0 208 - - - - -
/xbin/unzip l 120777 0 208 - - - - -
/xbin/uptime l 120777 0 208 - - - - -
/xbin/usleep l 120777 0 208 - - - - -
/xbin/uudecode l 120777 0 208 - - - - -
/xbin/uuencode l 120777 0 208 - - - - -
/xbin/vi l 120777 0 208 - - - - -
/xbin/vim f 100755 0 208 - - - - -
/xbin/watch l 120777 0 208 - - - - -
/xbin/wc l 120777 0 208 - - - - -
/xbin/wget l 120777 0 208 - - - - -
/xbin/which l 120777 0 208 - - - - -
/xbin/whoami l 120777 0 208 - - - - -
/xbin/xargs l 120777 0 208 - - - - -
/xbin/yes l 120777 0 208 - - - - -
/xbin/zcat l 120777 0 208 - - - - -

を追加して保存します。
このように後で追加したファイルをsystem.dtに設定しておくと
system.imgを再構築する際に組み込まれます。


以上の改変が終了したら

■Mkcramfs.exeを使ってsystem.imgを再構築します。

Mkcramfs -D system.dt system system.img
で改変済みのsystem.imgが作成されます。

■新しく出来たsystem.imgを\q7pro\Imageの中の
旧system.imgと置き換える。

■AFPTOOLを使って一つのファームウェアイメージファイルとしてまとめます。

AFPTOOL.exe -pack q7pro rootedfirmware.img
で改変済みイメージファイルrootedfirmware.imgの出来上がり

"q7pro"は改造したファームウェアのディレクトリ名、
"rootedfirmware.img"の部分は任意のファイル名でOK。

■ファームウェア書き換えツールを使って改造ファームウェアをタブレット本体にインストールします。

ainol NOVO5のシステム部分はcramfsという読み出し専用のファイルシステムになっているので、root権限を取っても自由に内容を書き換える
ことは出来ません。

しかし、
root化が前提のアプリ、例えばスクリーンショットを撮るアプリや、アプリの設定ごとまるまるバックアップできるTitanium Backup等を使うことが出来るようになります。

ですからroot化するメリットは十分にあるのです。

「NOVO5(RK2818搭載)のカスタムファームウェアを作る」
はこれで終了です。
改造する際の注意点を簡単に書き留めただけの記事ですが、
RK2818搭載の中華パッドをお使いの方に少しでもお役にたてば幸いです。
素人が試行錯誤の末にたどりついた改造方法ですので
もし記載内容に誤記や間違った情報があった場合はご容赦ください。


ファームウェアの改変行為は全て自己責任で行わなければなりません。
せっかく購入したAndroidタブレットを起動不能にしてしまう可能性が高いとても危険な作業です。

当ブログの記事では細かい作業手順は書きません。
あくまでもヒントとしてお読み下さい。
意味がわからずに作業すると必ず失敗します。

↓ainol NOVO5


■NOVO5ファームウェア■




スポンサードリンク

2011年10月05日

【第3回】NOVO5(RK2818搭載)のカスタムファームウェアを作る

●不要アプリの削除と日本語フォントファイルの追加

前回記事で展開したsystem.imgの中身を改変します。

RK2818搭載のAndroidタブレットのファームウェアは
おそらく同じような仕組みになっているのではないかと思います。

例によって詳しい手順は書きません。
ポイントとなる部分だけを載せておきます。

rk2818firmware06.png

●build.propをテキストエディタで編集
ro.product.locale.language=zh
ro.product.locale.region=CN

ro.product.locale.language=ja
ro.product.locale.region=JP

persist.sys.timezone=Asia/Shanghai

persist.sys.timezone=Asia/Tokyo
に変更して保存終了

このように変更することでファームウェア書き込み後の
デフォルト言語と地域、タイムゾーンが「日本」になります。



●必要の無いアプリを削除する

何が不要なアプリなのかは自分の判断で..
消してはいけないアプリもあるので要注意。

cramfsの場合ファームウェアに組み込まれているアプリはアンインストールできない。
タブレット本体のディスクスペースの有効利用という観点から不要アプリは出来るだけ削除する。
必要ならまた後でインストールすればよい。

/app
ディレクトリの中の

Airattack.apk
Amtalee1.09.apk
DocumentsToGo3.002.apk
EasyInput.4.0.2011.0413.apk
ES1.1.4.apk
gold.apk
ireaderfree_1.09.apk
pdfreader.apk
PinyinIME.apk
RkApkinstaller_0710.apk
RKEBookReader.apk
Solo.v1.23.apk
TTGO_adr_1.1.0.110406_beta1_239.apk
を削除

中国語IMEは必要ないので
/lib/libjni_pinyinime.so
を削除

前回の記事でsystem.imgを展開する際に出来たsystem.dtを
テキストエディタで編集して先程削除したアプリに関連する項目を削除する。

system.dtという名前は
cramfsck.exe -x system -d system.dt system.img
で自分で指定したファイル名です。
(詳しくは前回記事を参照)


中華パッド標準の日本語フォントは一部の漢字が中国風になってしまうので、
好みの日本語フォントをDroidSansJapanese.ttfというファイル名にして
/fontsに入れます。

ただファイルを追加しただけではだめです。
system.dtを編集して

/fonts/DroidSansJapanese.ttf f 100777 0 0 - - - - -

を追加します。

これで不要アプリの削除と日本語フォントファイルの追加が完了しました。

第三回目はここまでとします。

次回はファームウェアのroot化について書いてみたいと思います。

↓ainol NOVO5


■NOVO5ファームウェア■

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。