Xperia pro(MK16i)へのClockworkModの導入 ― 2012/01/29 14:29
CWM(ClockWorkMod Recovery)は、Xperia単体で本体ソフトウエアのバックアップが
取れる便利なツールである。「Xperia CWM Auto-Instaler」(Andriodアプリ)が登
場して、CWMの導入が簡単に行えるようになったはずだが、これ、mini proでは使
えるが、proはサポート外と言われて使えない(本文を執筆時点で)。仕方ないので、
CWMを手動で導入することにする。
※注意事項
以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不
良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作
する事。
Linuxのコマンドレベルでの操作となるので、Linuxの知識が無い場合は、事前に
良く勉強しておく事。
1)CWMの入手
以下のサイトから、CWMを入手する。
[RECOVERY][14/11/11] 5.0.2.7-nAa-r2 ClockworkMod for Stock Xperia Mini/Pro/Active/Arc
http://forum.xda-developers.com/showthread.php?t=1345741
ここの
Installation
Download CWM from here and extract its contents.
の所から、「CWM-5.0.2.7-nAa-r2.tar」をダウンロード。
これを展開すると…
system/bin/chargemon
charger
recovery.tar
xbin/sh
以上の4つのファイルが出てくる。
これらを、microSDカードにコピーして、Xperia proに持っていく。以下、説明の
都合で、4つのファイルともにmicroSDカードのルートフォルダーに入れたものと
して説明する。
2)準備
先ず、Xperia proは、事前に「root取り」を行っておく。やり方は、以下を参照
の事(ブートローダーのアンロックは不要!)。
[NEW][26/OCT/2011][ROOTING] Xperia 2011 Easy Rooting Toolkit [v1.0](zergRush Exploit)
http://forum.xda-developers.com/showthread.php?t=1320350
なお、本体のソフトウエアがビルド番号4.0.2.A.0.58まではこれでrootが取れる
が、最新(2012/01/28時点)の4.0.2.A.0.62に上げてしまった場合はrootが取れな
くなるので、要注意だ。上げてしまったら、ブートローダーのアンロックとかで
rootを取るとか、自力で解決するしかないだろう。
端末エミュレータもインストールしておくこと。マーケットから以下のアプリを
インストールしておく。
Android Terminal Emulator
3)CWMの導入
Xperia proで、端末エミュレータを起動して以下のコマンドを実行する。なお、
「$ 」や「# 」は、シェルが表示するプロンプトなので、入力しない事。
$ su
# mount -o remount,rw /dev/block/mtdblock0 /system
# mv /system/bin/chargemon /system/bin/chargemon.org
# cp /sdcard/chargemon /system/bin/chargemon
# chmod 755 /system/bin/chargemon
# chown root.shell /system/bin/chargemon
# cp /sdcard/charger /system/bin/charger
# chmod 755 /system/bin/charger
# chown root.shell /system/bin/charger
# cp /sdcard/recovery.tar /system/bin/recovery.tar
# chmod 755 /system/bin/recovery.tar
# chown root.root /system/bin/recovery.tar
# mv /system/xbin/sh /system/xbin/sh.org
# cp /sdcard/sh /system/xbin/sh
# chmod 755 /system/xbin/sh
# chown root.root /system/xbin/sh
# reboot
以上で、再起動して正常に立ち上がればCWMの導入は成功だ。立ち上がらないよ
うなら、SEUSで再初期化して復旧させる等、自力で解決する事。
4)CWMの起動
Xperia proの電源を切って、再起動する。「Sony Ericsson」のロゴが出ている
間に、画面を何度かタッチする。そうすると、CWMのメニュー画面が表示される。
CWMの使い方は、いろいろなサイトで解説されているので、それらを参考にする
こと。
なお、CWMの入手先(xda-developers)には、「ボリュームダウンのボタンを何度
か押す」という記載があるが、それだと起動できなかった。
取れる便利なツールである。「Xperia CWM Auto-Instaler」(Andriodアプリ)が登
場して、CWMの導入が簡単に行えるようになったはずだが、これ、mini proでは使
えるが、proはサポート外と言われて使えない(本文を執筆時点で)。仕方ないので、
CWMを手動で導入することにする。
※注意事項
以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不
良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作
する事。
Linuxのコマンドレベルでの操作となるので、Linuxの知識が無い場合は、事前に
良く勉強しておく事。
1)CWMの入手
以下のサイトから、CWMを入手する。
[RECOVERY][14/11/11] 5.0.2.7-nAa-r2 ClockworkMod for Stock Xperia Mini/Pro/Active/Arc
http://forum.xda-developers.com/showthread.php?t=1345741
ここの
Installation
Download CWM from here and extract its contents.
の所から、「CWM-5.0.2.7-nAa-r2.tar」をダウンロード。
これを展開すると…
system/bin/chargemon
charger
recovery.tar
xbin/sh
以上の4つのファイルが出てくる。
これらを、microSDカードにコピーして、Xperia proに持っていく。以下、説明の
都合で、4つのファイルともにmicroSDカードのルートフォルダーに入れたものと
して説明する。
2)準備
先ず、Xperia proは、事前に「root取り」を行っておく。やり方は、以下を参照
の事(ブートローダーのアンロックは不要!)。
[NEW][26/OCT/2011][ROOTING] Xperia 2011 Easy Rooting Toolkit [v1.0](zergRush Exploit)
http://forum.xda-developers.com/showthread.php?t=1320350
なお、本体のソフトウエアがビルド番号4.0.2.A.0.58まではこれでrootが取れる
が、最新(2012/01/28時点)の4.0.2.A.0.62に上げてしまった場合はrootが取れな
くなるので、要注意だ。上げてしまったら、ブートローダーのアンロックとかで
rootを取るとか、自力で解決するしかないだろう。
端末エミュレータもインストールしておくこと。マーケットから以下のアプリを
インストールしておく。
Android Terminal Emulator
3)CWMの導入
Xperia proで、端末エミュレータを起動して以下のコマンドを実行する。なお、
「$ 」や「# 」は、シェルが表示するプロンプトなので、入力しない事。
$ su
# mount -o remount,rw /dev/block/mtdblock0 /system
# mv /system/bin/chargemon /system/bin/chargemon.org
# cp /sdcard/chargemon /system/bin/chargemon
# chmod 755 /system/bin/chargemon
# chown root.shell /system/bin/chargemon
# cp /sdcard/charger /system/bin/charger
# chmod 755 /system/bin/charger
# chown root.shell /system/bin/charger
# cp /sdcard/recovery.tar /system/bin/recovery.tar
# chmod 755 /system/bin/recovery.tar
# chown root.root /system/bin/recovery.tar
# mv /system/xbin/sh /system/xbin/sh.org
# cp /sdcard/sh /system/xbin/sh
# chmod 755 /system/xbin/sh
# chown root.root /system/xbin/sh
# reboot
以上で、再起動して正常に立ち上がればCWMの導入は成功だ。立ち上がらないよ
うなら、SEUSで再初期化して復旧させる等、自力で解決する事。
4)CWMの起動
Xperia proの電源を切って、再起動する。「Sony Ericsson」のロゴが出ている
間に、画面を何度かタッチする。そうすると、CWMのメニュー画面が表示される。
CWMの使い方は、いろいろなサイトで解説されているので、それらを参考にする
こと。
なお、CWMの入手先(xda-developers)には、「ボリュームダウンのボタンを何度
か押す」という記載があるが、それだと起動できなかった。
Xperia pro/mini proで日本語と絵文字のフォントを導入する ― 2012/01/29 14:01
Xperia pro/mini proは、そのままでも日本語表示はできるが、漢字フォントのデ
ザインが中華圏のものとなっていて、日本人にはかなり違和感がある。ちゃんとし
た日本語の漢字フォントを導入してしまおう。ついでに、ケータイ絵文字のフォン
トも導入しておくと何かと便利。
この作業は、要rootedなので、事前にrootを取っておくこと。busyboxも必ず導入
しておくこと(busyboxは/system/xbinにリンクを展開しておくこと)。
主な作業は、Windows PCで行っているので、他の環境で行う場合は、独自に対応し
て欲しい。特定のフォントを使って説明しているが、他に好みのフォントがある場
合は、フォント名を読み替えて、同様にやってみると良いだろう。
※注意事項
以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不
良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作
する事。
※Xperia pro/mini proでは、DroidSansFallback.ttfにCJK(中華圏、日本、韓国)
フォントが入っている。絵文字フォントを使うためにDroidSansFallback.ttfを
絵文字フォントで入れ替えると、中華漢字やハングルが表示できなくなってしま
う。絵文字フォントは、DroidSansJapanese.ttf側にマージした方が良い。以下、
マージの手順も含めて説明する。
使用するフォント:
以下の2つのフォントを使用する。
(1) Migu 1M
このフォントの特徴は…
・テキストエディタで利用しやすい「等幅フォント」である。
・半濁点(゜)を大きくしていて、濁点(゛)と判別しやすい。
・漢数字の「一」と長音記号「ー」の字形の差がしっかりしている。
(2) 絵文字結合済みフォント Helvetica
これは、絵文字入りフォント。アニメーションなしで白黒表示になるが、絵文
字が表示できるので、ケータイ向けWebサイトの表示やケータイメールを受け
た時等で便利。
フォントの入手先:
(1) Migu 1M
M+とIPAの合成フォント
http://mix-mplus-ipa.sourceforge.jp/
ここの「DOWNLOAD」より、以下の「Migu 1M」のZIPファイルをダウンロードす
る。
migu-1m-20111002.zip (2012/01/23現在の最新ファイル)
これを展開して「migu-1m-regular.ttf」を取り出す。
(2) 絵文字結合済みフォント Helvetica
iPhoneにも絵文字を!
http://cova.sakura.ne.jp/sb/
ここの「絵文字結合済みフォント(emoji_font.zip)」をダウンロードする。
これを展開して「Helvetica.ttf」を取り出す。
フォントマージツール:
fontforge というツールを使用する。以下から入手してインストールしておく。
http://www.geocities.jp/meir000/fontforge/
フォントのマージ:
1)フォントファイルを開く
fontforgeでHelvetica.ttfとmigu-1m-regular.ttfを開く。
fontforgeを起動すると、「フォントを開く」の画面になるので、ファイルを
選択してHelvetica.ttfを開く。
続いて、[ファイル]→[開く]で、また「フォントを開く」の画面になるので、
migu-1m-regular.ttfを開く。
これで、2つのフォントが同時に開いた状態になる。
2)フォントのサイズ調整
それぞれのフォントの定義サイズが異なるので、そのままマージすると表示し
た時に、絵文字のサイズだけ異常になる。両方のフォント情報を確認して、サ
イズ調整を行う。フォント情報は、[エレメント]→[フォント情報]で確認でき
る。ここの[一般情報]を見て、Helvetica.ttfのサイズをmigu-1m-regular.ttf
に合わせて調整しよう。
具体的には、Helvetica.ttfの[エレメント]→[フォント情報]で、[一般情報]
を表示して、以下の項目を変更する。
[高さ] 1638 → 860
[深さ] 410 → 140
[下線の位置] -105 → -100
[Height] 101 → 50
以上の変更をしたら、[OK]で、フォント全体のグリフの変形(サイズ変更)が始
まるので、終了するまで待つ。
3)絵文字のグリフをmigu-1m-regular.ttfへコピー
Helvetica.ttfの57345文字目(U+E001)から57434文字目(U+E05A)を選択してコ
ピー(Ctrl+C)する。
migu-1m-regular.ttfの57345文字目を選択して貼り付ける(Ctrl + V)。これで
57434文字目(U+E05A)まで絵文字が入る。
同様に、下記の範囲の絵文字をすべてコピーして貼り付ける。
57345(U+E001) ~ 57434(U+E05A) (これは、上記の説明で示した領域)
57601(U+E101) ~ 57690(U+E15A)
57857(U+E201) ~ 57939(U+E253)
58113(U+E301) ~ 58189(U+E34D)
58369(U+E401) ~ 58444(U+E44C)
58625(U+E501) ~ 58679(U+E537)
58942(U+E63E) ~ 59223(U+E757)
63743(U+F8FF)
これで、絵文字のマージが終わったので、マージしたフォントをファイルに
出力する。migu-1m-regular.ttf側で、[ファイル] → [フォントを出力]で
フォントファイルの名前を「DroidSansJapanese.ttf」、フォントタイプは
「TrueType」で[ビットマップフォント無し」として、「保存」する。警告メ
ッセージやエラーメッセージが出るが気にせず続行して最終的に「保存」す
れば良い。
最後に、fontforgeを終了させる。[ファイル]→[終了]で、[保存しない]を
選択して終了させる。
以上で、絵文字がマージされたフォントファイルDroidSansJapanese.ttfが完
成。
入れ替えの準備:
以下の内容のファイルをテキストエディタで作成しておく(改行コードはLFのみ
とすること)。
ファイル名: cpfonts.sh
このファイルは、ここからダウンロードできるようにしておいた。
内容: (行頭の#や$も意味があるので、略さず入れる事)
===
#!/system/bin/sh
bin=/system/bin
bbx=/system/xbin
$bin/mount -o remount,rw /dev/block/mtdblock0 /system
echo "-- Copy DroidSansJapanese.ttf."
$bbx/cp /sdcard/fonts/DroidSansJapanese.ttf /system/fonts/DroidSansJapanese.ttf
$bin/chmod 644 /system/fonts/DroidSansJapanese.ttf
$bin/chown root.root /system/fonts/DroidSansJapanese.ttf
if [ -e /system/fonts/DroidSansSemcCJK.ttf ]; then
echo "** Rename DroidSansSemcCJK.ttf to DroidSansSemcCJK.ttf.sv."
$bin/mv /system/fonts/DroidSansSemcCJK.ttf /system/fonts/DroidSansSemcCJK.ttf.sv
fi
# reboot
===
端末側のmicroSDカードを取り出して、PC側に入れる。
microSDカードに「fonts」フォルダーを作成する。
以上で作成した2つのファイル「DroidSansJapanese.ttf、cpfonts.sh」を
microSDカードのfontsフォルダーにコピーする。
microSDカードをPCから取り出して、端末側に戻す。
※上記のcpfonts.shで、DroidSansSemcCJK.ttfをリネームしている。これは以下
の理由からである。
・DroidSansSemcCJK.ttfには、DroidSansFallback.ttfに入っていない中華漢
字がいくつか定義されている。これらの漢字は、かなり特殊な文字だと思わ
れる。これらの中華漢字の一部が絵文字フォントのコードと重なっている。
・Xperia pro/mini proでは、フォントの参照順が、以下のようになっている
らしい。
DroidSans.ttf → DroidSansSemc.ttf、DroidSansSemcCJK.ttf
→ DroidSansJapanese.ttf → DroidSansFallback.ttf
この為、いくつかの絵文字は、同一コードの文字をDroidSansSemcCJK.ttf内
で先に見つけてしまい、絵文字が表示されず変な漢字が出てきてしまう。
・絵文字をすべて正常に表示させるには、DroidSansSemcCJK.ttfが邪魔になる
ので、リネームしてシステム側から参照されないようにする。
・リネームした弊害として、いくつかの特殊な中華漢字が表示されなくなるが
通常のWebサイトの参照等で、問題になる事は非常にまれだと思われる。
この辺が気になる場合は、DroidSansSemcCJK.ttfに収納されている中華漢字
を直接調べてみて欲しい。
端末側での作業:
事前に、端末エミュレーターのアプリをインストールして、必要な設定をしてお
く事。端末エミュレーターとして使えるアプリには。以下のものがある。
Android Terminal Emulator
ConnectBot
おすすめは、Terminal Emulator。最近、UTF8対応が完了したそうで、日本語の
入力も表示もできるようになった。日本語表示の為にConnectBotを使っていた場
合は、いい機会なので、Terminal Emulatorに乗り換えることをおすすめする。
端末エミュレーターを起動後、以下のコマンドを実行(行頭の「$ 」や「# 」は
プロンプトなので、それ以降を入力)。
===
$ su
# sh /sdcard/fonts/cpfonts.sh
# reboot
===
端末が再起動するのを待って、作業終了。
表示確認:
日本語フォントが正常に表示されるかは、たとえば「写」をテキストエディタで
入力・表示してみれば良い。
絵文字の確認は、標準のブラウザーでこの辺でも表示してみれば良いだろう。
ドコモ絵文字 http://code.cside.com/i-mode/emojimode/
ソフトバンク絵文字 http://code.cside.com/softbank/
すべての絵文字が正しく表示されていれば、大成功だ。
絵文字の入力:
テキストエディタやメール等で、絵文字を入力したい場合、nicoWnnG IMEが
かなり便利だ。ハードキーボードからでも、「Sym」キーを何度か押すと絵文字
一覧が出るので、そのまま入力すると良い。ただし、ドコモ絵文字かソフト
バンク絵文字かは意識して使用する事。
※今回、フォントのマージに関して、以下のサイトを参考にさせてもらった。
絵文字入り DroidSans.ttf と DroidSans-Bold.ttf
http://kadrinche.la/2011/05/22/droidsans-ttf-with-smiley/
ザインが中華圏のものとなっていて、日本人にはかなり違和感がある。ちゃんとし
た日本語の漢字フォントを導入してしまおう。ついでに、ケータイ絵文字のフォン
トも導入しておくと何かと便利。
この作業は、要rootedなので、事前にrootを取っておくこと。busyboxも必ず導入
しておくこと(busyboxは/system/xbinにリンクを展開しておくこと)。
主な作業は、Windows PCで行っているので、他の環境で行う場合は、独自に対応し
て欲しい。特定のフォントを使って説明しているが、他に好みのフォントがある場
合は、フォント名を読み替えて、同様にやってみると良いだろう。
※注意事項
以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不
良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作
する事。
※Xperia pro/mini proでは、DroidSansFallback.ttfにCJK(中華圏、日本、韓国)
フォントが入っている。絵文字フォントを使うためにDroidSansFallback.ttfを
絵文字フォントで入れ替えると、中華漢字やハングルが表示できなくなってしま
う。絵文字フォントは、DroidSansJapanese.ttf側にマージした方が良い。以下、
マージの手順も含めて説明する。
使用するフォント:
以下の2つのフォントを使用する。
(1) Migu 1M
このフォントの特徴は…
・テキストエディタで利用しやすい「等幅フォント」である。
・半濁点(゜)を大きくしていて、濁点(゛)と判別しやすい。
・漢数字の「一」と長音記号「ー」の字形の差がしっかりしている。
(2) 絵文字結合済みフォント Helvetica
これは、絵文字入りフォント。アニメーションなしで白黒表示になるが、絵文
字が表示できるので、ケータイ向けWebサイトの表示やケータイメールを受け
た時等で便利。
フォントの入手先:
(1) Migu 1M
M+とIPAの合成フォント
http://mix-mplus-ipa.sourceforge.jp/
ここの「DOWNLOAD」より、以下の「Migu 1M」のZIPファイルをダウンロードす
る。
migu-1m-20111002.zip (2012/01/23現在の最新ファイル)
これを展開して「migu-1m-regular.ttf」を取り出す。
(2) 絵文字結合済みフォント Helvetica
iPhoneにも絵文字を!
http://cova.sakura.ne.jp/sb/
ここの「絵文字結合済みフォント(emoji_font.zip)」をダウンロードする。
これを展開して「Helvetica.ttf」を取り出す。
フォントマージツール:
fontforge というツールを使用する。以下から入手してインストールしておく。
http://www.geocities.jp/meir000/fontforge/
フォントのマージ:
1)フォントファイルを開く
fontforgeでHelvetica.ttfとmigu-1m-regular.ttfを開く。
fontforgeを起動すると、「フォントを開く」の画面になるので、ファイルを
選択してHelvetica.ttfを開く。
続いて、[ファイル]→[開く]で、また「フォントを開く」の画面になるので、
migu-1m-regular.ttfを開く。
これで、2つのフォントが同時に開いた状態になる。
2)フォントのサイズ調整
それぞれのフォントの定義サイズが異なるので、そのままマージすると表示し
た時に、絵文字のサイズだけ異常になる。両方のフォント情報を確認して、サ
イズ調整を行う。フォント情報は、[エレメント]→[フォント情報]で確認でき
る。ここの[一般情報]を見て、Helvetica.ttfのサイズをmigu-1m-regular.ttf
に合わせて調整しよう。
具体的には、Helvetica.ttfの[エレメント]→[フォント情報]で、[一般情報]
を表示して、以下の項目を変更する。
[高さ] 1638 → 860
[深さ] 410 → 140
[下線の位置] -105 → -100
[Height] 101 → 50
以上の変更をしたら、[OK]で、フォント全体のグリフの変形(サイズ変更)が始
まるので、終了するまで待つ。
3)絵文字のグリフをmigu-1m-regular.ttfへコピー
Helvetica.ttfの57345文字目(U+E001)から57434文字目(U+E05A)を選択してコ
ピー(Ctrl+C)する。
migu-1m-regular.ttfの57345文字目を選択して貼り付ける(Ctrl + V)。これで
57434文字目(U+E05A)まで絵文字が入る。
同様に、下記の範囲の絵文字をすべてコピーして貼り付ける。
57345(U+E001) ~ 57434(U+E05A) (これは、上記の説明で示した領域)
57601(U+E101) ~ 57690(U+E15A)
57857(U+E201) ~ 57939(U+E253)
58113(U+E301) ~ 58189(U+E34D)
58369(U+E401) ~ 58444(U+E44C)
58625(U+E501) ~ 58679(U+E537)
58942(U+E63E) ~ 59223(U+E757)
63743(U+F8FF)
これで、絵文字のマージが終わったので、マージしたフォントをファイルに
出力する。migu-1m-regular.ttf側で、[ファイル] → [フォントを出力]で
フォントファイルの名前を「DroidSansJapanese.ttf」、フォントタイプは
「TrueType」で[ビットマップフォント無し」として、「保存」する。警告メ
ッセージやエラーメッセージが出るが気にせず続行して最終的に「保存」す
れば良い。
最後に、fontforgeを終了させる。[ファイル]→[終了]で、[保存しない]を
選択して終了させる。
以上で、絵文字がマージされたフォントファイルDroidSansJapanese.ttfが完
成。
入れ替えの準備:
以下の内容のファイルをテキストエディタで作成しておく(改行コードはLFのみ
とすること)。
ファイル名: cpfonts.sh
このファイルは、ここからダウンロードできるようにしておいた。
内容: (行頭の#や$も意味があるので、略さず入れる事)
===
#!/system/bin/sh
bin=/system/bin
bbx=/system/xbin
$bin/mount -o remount,rw /dev/block/mtdblock0 /system
echo "-- Copy DroidSansJapanese.ttf."
$bbx/cp /sdcard/fonts/DroidSansJapanese.ttf /system/fonts/DroidSansJapanese.ttf
$bin/chmod 644 /system/fonts/DroidSansJapanese.ttf
$bin/chown root.root /system/fonts/DroidSansJapanese.ttf
if [ -e /system/fonts/DroidSansSemcCJK.ttf ]; then
echo "** Rename DroidSansSemcCJK.ttf to DroidSansSemcCJK.ttf.sv."
$bin/mv /system/fonts/DroidSansSemcCJK.ttf /system/fonts/DroidSansSemcCJK.ttf.sv
fi
# reboot
===
端末側のmicroSDカードを取り出して、PC側に入れる。
microSDカードに「fonts」フォルダーを作成する。
以上で作成した2つのファイル「DroidSansJapanese.ttf、cpfonts.sh」を
microSDカードのfontsフォルダーにコピーする。
microSDカードをPCから取り出して、端末側に戻す。
※上記のcpfonts.shで、DroidSansSemcCJK.ttfをリネームしている。これは以下
の理由からである。
・DroidSansSemcCJK.ttfには、DroidSansFallback.ttfに入っていない中華漢
字がいくつか定義されている。これらの漢字は、かなり特殊な文字だと思わ
れる。これらの中華漢字の一部が絵文字フォントのコードと重なっている。
・Xperia pro/mini proでは、フォントの参照順が、以下のようになっている
らしい。
DroidSans.ttf → DroidSansSemc.ttf、DroidSansSemcCJK.ttf
→ DroidSansJapanese.ttf → DroidSansFallback.ttf
この為、いくつかの絵文字は、同一コードの文字をDroidSansSemcCJK.ttf内
で先に見つけてしまい、絵文字が表示されず変な漢字が出てきてしまう。
・絵文字をすべて正常に表示させるには、DroidSansSemcCJK.ttfが邪魔になる
ので、リネームしてシステム側から参照されないようにする。
・リネームした弊害として、いくつかの特殊な中華漢字が表示されなくなるが
通常のWebサイトの参照等で、問題になる事は非常にまれだと思われる。
この辺が気になる場合は、DroidSansSemcCJK.ttfに収納されている中華漢字
を直接調べてみて欲しい。
端末側での作業:
事前に、端末エミュレーターのアプリをインストールして、必要な設定をしてお
く事。端末エミュレーターとして使えるアプリには。以下のものがある。
Android Terminal Emulator
ConnectBot
おすすめは、Terminal Emulator。最近、UTF8対応が完了したそうで、日本語の
入力も表示もできるようになった。日本語表示の為にConnectBotを使っていた場
合は、いい機会なので、Terminal Emulatorに乗り換えることをおすすめする。
端末エミュレーターを起動後、以下のコマンドを実行(行頭の「$ 」や「# 」は
プロンプトなので、それ以降を入力)。
===
$ su
# sh /sdcard/fonts/cpfonts.sh
# reboot
===
端末が再起動するのを待って、作業終了。
表示確認:
日本語フォントが正常に表示されるかは、たとえば「写」をテキストエディタで
入力・表示してみれば良い。
絵文字の確認は、標準のブラウザーでこの辺でも表示してみれば良いだろう。
ドコモ絵文字 http://code.cside.com/i-mode/emojimode/
ソフトバンク絵文字 http://code.cside.com/softbank/
すべての絵文字が正しく表示されていれば、大成功だ。
絵文字の入力:
テキストエディタやメール等で、絵文字を入力したい場合、nicoWnnG IMEが
かなり便利だ。ハードキーボードからでも、「Sym」キーを何度か押すと絵文字
一覧が出るので、そのまま入力すると良い。ただし、ドコモ絵文字かソフト
バンク絵文字かは意識して使用する事。
※今回、フォントのマージに関して、以下のサイトを参考にさせてもらった。
絵文字入り DroidSans.ttf と DroidSans-Bold.ttf
http://kadrinche.la/2011/05/22/droidsans-ttf-with-smiley/
Xperia pro/mini proでキートップにない記号を入力する ― 2011/11/07 11:38
Xperia pro(MK16i)/mini pro(SK17i) で、キーマップの置換というか追加をしてみた。
Xperia pro/mini proは、QWERTYキーボードが付いていて、なかなか便利。通常のAndroidアプリを使う分には、もう完璧って感じなのだが、ベースになっているLinuxにアクセスする場合、ちょっと困った事になる。標準状態では、キーボードから入力できない記号が多いのだ。端末エミュレータ等を使用する場合に、シェル(sh)で頻繁に使用するパイプ"|"や、リダイレクト"<"・">"・">>"といった記号がキートップに無く、非常に苦労する。
このままだと不都合な事が多いので、キーマップの修正にチャレンジしてみた。
技術的な詳細は、下記のZIPファイル内の「キーマップ技術情報.txt」を参照されたい。
バイナリーエディタでファイルの中身を変更して書き戻すだけなので、この情報が理解できる人なら、好みに合わせていろいろ変えてみる事も容易だろう。
で、結論として、「かなりうまくいった」ので、公開することにする。「かなり」ってのは、つまり、ダメな部分もあったのだ。残念な事に、入力方法に「POBox Touch」を選んでいる場合、この変更が有効にならない。どうやら、POBox Touchは、直接、キーコードを読み込んで、独自に物理キーの処理を行っているようだ。入力方法に「nicoWnnG IME」や「ATOK」を使用すれば、問題なく記号類が入力できるようになるので、入力方法を適宜選んで使ってもらえば良いだろう。
以下に、修正したキーマップ定義の導入方法を示す。
なお、修正されたキーマップを導入した場合に入力できる記号類は、文末に記載したので、そちらを参照の事。
※注意事項
以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作する事。
1) 準備
この作業は、要rootedだ。Xperia pro/mini proは、事前に「root取り」を行っておくこと。
やり方は、以下を参照の事(ブートローダーのアンロックは不要!)。
[NEW][26/OCT/2011][ROOTING] Xperia 2011 Easy Rooting Toolkit [v1.0](zergRush Exploit)
http://forum.xda-developers.com/showthread.php?t=1320350
簡単に手順を示しておく(要Windows PC)。
a) 上記のサイトから、DooMLoRD_v1_ROOT-zergRush-busybox-su.zipをダウンロード
b) Xperia側でUSBデバッグを有効化した後、PCに接続(PC Companionは起動しない事)
c) PC上で入手したzipファイルを解凍し、フォルダ内の runme を実行
※上記以外の方法でrootを取っている場合、busyboxが未導入なら導入して、/system/xbinに
busybox --install -s /system/xbin
とでもして、リンクを作っておくこと。
2) 修正版キーマップ用ファイルをXperia側へコピー
先ず、以下のZIPファイルをPC上でダウンロードして、解凍しておく。
MK16i-SK17i-key-remap.zip
Xperia側のmicroSDに、「keymap」フォルダーを作成し、上記のZIPファイル内の以下のファイルをコピーする。
pm8058-keypad.kcm.bin.remap
3) 端末エミュレーターのインストール
以降の操作は、Xperia側で端末エミュレーターを使って行うので、端末エミュレーターをインストールしておく。お薦めは…
ConnectBot
このConnectBotでは、表示される文字サイズがボリュームボタンで変更できるので、見やすいサイズに簡単に変更できる。日本語の入力はできないが、ファイル名等は日本語でも化けずに表示される。インストールしたら、「local」で接続先を作っておけば良い。
4) 端末エミュレータを起動して、キーマップファイルを置換
端末エミュレーター上で、以下のコマンドを実行する。なお、「$ 」や「# 」は、シェルが表示するプロンプトなので、入力しない事。
$ su
# mount -o remount,rw /dev/block/mtdblock0 /system
# cd /system/usr/keychars
# mv pm8058-keypad.kcm.bin pm8058-keypad.kcm.bin.org
# cp /sdcard/keymap/pm8058-keypad.kcm.bin.remap ./pm8058-keypad.kcm.bin
# chmod 644 pm8058-keypad.kcm.bin
# chown root.root pm8058-keypad.kcm.bin
# reboot
以上で、Xperiaが再起動する。これで、置換終了。
=====
入力可能となる文字等
入力文字 キー操作 コメント
------------------------------------------------------------------------
ETX(0x03) ALT+SHIFT+C Ctrl+C シェル(sh)で、フォアグラウンドプロセスの強制終了
EOT(0x04) ALT+SHIFT+D Ctrl+D シェル(sh)で、入力の終了(End of file)
SUB(0x1a) ALT+SHIFT+Z Ctrl+Z シェル(sh)で、フォアグラウンドプロセスの一時停止
ESC(0x1b) ALT+SHIFT+Q エスケープ
< ALT+SHIFT+,
> ALT+SHIFT+.
[ ALT+SHIFT+K ブラケット(bracket)
\ ALT+SHIFT+B
] ALT+SHIFT+L ブラケット(bracket)
^ ALT+SHIFT+O カレット(caret)
` ALT+SHIFT+' バッククォート
{ ALT+SHIFT+N ブレース(brace)
| ALT+SHIFT+? パイプ(vertical bar)
} ALT+SHIFT+M ブレース(brace)
~ ALT+SHIFT+P チルダ (ConnectBotの場合、ALT+DELETEでも入力可能)
------------------------------------------------------------------------
※ ALTキーは「■」マークのキー
Xperia pro/mini proは、QWERTYキーボードが付いていて、なかなか便利。通常のAndroidアプリを使う分には、もう完璧って感じなのだが、ベースになっているLinuxにアクセスする場合、ちょっと困った事になる。標準状態では、キーボードから入力できない記号が多いのだ。端末エミュレータ等を使用する場合に、シェル(sh)で頻繁に使用するパイプ"|"や、リダイレクト"<"・">"・">>"といった記号がキートップに無く、非常に苦労する。
このままだと不都合な事が多いので、キーマップの修正にチャレンジしてみた。
技術的な詳細は、下記のZIPファイル内の「キーマップ技術情報.txt」を参照されたい。
バイナリーエディタでファイルの中身を変更して書き戻すだけなので、この情報が理解できる人なら、好みに合わせていろいろ変えてみる事も容易だろう。
で、結論として、「かなりうまくいった」ので、公開することにする。「かなり」ってのは、つまり、ダメな部分もあったのだ。残念な事に、入力方法に「POBox Touch」を選んでいる場合、この変更が有効にならない。どうやら、POBox Touchは、直接、キーコードを読み込んで、独自に物理キーの処理を行っているようだ。入力方法に「nicoWnnG IME」や「ATOK」を使用すれば、問題なく記号類が入力できるようになるので、入力方法を適宜選んで使ってもらえば良いだろう。
以下に、修正したキーマップ定義の導入方法を示す。
なお、修正されたキーマップを導入した場合に入力できる記号類は、文末に記載したので、そちらを参照の事。
※注意事項
以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作する事。
1) 準備
この作業は、要rootedだ。Xperia pro/mini proは、事前に「root取り」を行っておくこと。
やり方は、以下を参照の事(ブートローダーのアンロックは不要!)。
[NEW][26/OCT/2011][ROOTING] Xperia 2011 Easy Rooting Toolkit [v1.0](zergRush Exploit)
http://forum.xda-developers.com/showthread.php?t=1320350
簡単に手順を示しておく(要Windows PC)。
a) 上記のサイトから、DooMLoRD_v1_ROOT-zergRush-busybox-su.zipをダウンロード
b) Xperia側でUSBデバッグを有効化した後、PCに接続(PC Companionは起動しない事)
c) PC上で入手したzipファイルを解凍し、フォルダ内の runme を実行
※上記以外の方法でrootを取っている場合、busyboxが未導入なら導入して、/system/xbinに
busybox --install -s /system/xbin
とでもして、リンクを作っておくこと。
2) 修正版キーマップ用ファイルをXperia側へコピー
先ず、以下のZIPファイルをPC上でダウンロードして、解凍しておく。
MK16i-SK17i-key-remap.zip
Xperia側のmicroSDに、「keymap」フォルダーを作成し、上記のZIPファイル内の以下のファイルをコピーする。
pm8058-keypad.kcm.bin.remap
3) 端末エミュレーターのインストール
以降の操作は、Xperia側で端末エミュレーターを使って行うので、端末エミュレーターをインストールしておく。お薦めは…
ConnectBot
このConnectBotでは、表示される文字サイズがボリュームボタンで変更できるので、見やすいサイズに簡単に変更できる。日本語の入力はできないが、ファイル名等は日本語でも化けずに表示される。インストールしたら、「local」で接続先を作っておけば良い。
4) 端末エミュレータを起動して、キーマップファイルを置換
端末エミュレーター上で、以下のコマンドを実行する。なお、「$ 」や「# 」は、シェルが表示するプロンプトなので、入力しない事。
$ su
# mount -o remount,rw /dev/block/mtdblock0 /system
# cd /system/usr/keychars
# mv pm8058-keypad.kcm.bin pm8058-keypad.kcm.bin.org
# cp /sdcard/keymap/pm8058-keypad.kcm.bin.remap ./pm8058-keypad.kcm.bin
# chmod 644 pm8058-keypad.kcm.bin
# chown root.root pm8058-keypad.kcm.bin
# reboot
以上で、Xperiaが再起動する。これで、置換終了。
=====
入力可能となる文字等
入力文字 キー操作 コメント
------------------------------------------------------------------------
ETX(0x03) ALT+SHIFT+C Ctrl+C シェル(sh)で、フォアグラウンドプロセスの強制終了
EOT(0x04) ALT+SHIFT+D Ctrl+D シェル(sh)で、入力の終了(End of file)
SUB(0x1a) ALT+SHIFT+Z Ctrl+Z シェル(sh)で、フォアグラウンドプロセスの一時停止
ESC(0x1b) ALT+SHIFT+Q エスケープ
< ALT+SHIFT+,
> ALT+SHIFT+.
[ ALT+SHIFT+K ブラケット(bracket)
\ ALT+SHIFT+B
] ALT+SHIFT+L ブラケット(bracket)
^ ALT+SHIFT+O カレット(caret)
` ALT+SHIFT+' バッククォート
{ ALT+SHIFT+N ブレース(brace)
| ALT+SHIFT+? パイプ(vertical bar)
} ALT+SHIFT+M ブレース(brace)
~ ALT+SHIFT+P チルダ (ConnectBotの場合、ALT+DELETEでも入力可能)
------------------------------------------------------------------------
※ ALTキーは「■」マークのキー
EPC VIA WM8650(マーケット導入編・暫定版) ― 2011/06/03 10:22
※ ちょっと忙しいので、整理できてないけど、暫定公開。
rootも取れたので、ちゃんとしたマーケットを入れる。
最新っぽいマーケットが、ここにあったので、そこからダウンロード。
New Working Market 2.2.7 (apk attached)
ここから、com.android.vending-2.apk を入手。それから、
これのファイル名を「Vending.apk」に変更して、SDカードのルートフォルダーに
コピーする。
端末エミュレーターを起動して、以下のコマンドを実行。
$ su
# cd /system/app
# cp /sdcard/Vending.apk ./
# chmod 644 Vending.apk
# exit
$ exit
リブートして、マーケットを起動してみる。
あれ、一瞬、画面が真っ白になって、すぐ戻ってきちゃう ;_;
ダメだ、何か致命的に足りないんだろうか? 以下にヒントがあった。
Android SDKを使おう
やはり不足するものがあるようで、以下のものを補う必要があるみたい(これら、
3つがすべて必要なのかどうかは不明だけど)。
ここにファイルがあるので、使わせてもらう。
GoogleServicesFramework.apk
MarketUpdater.apk
Development.apk
マーケット本体だけは、com.android.vending-2.apkの方が新しいので、それを
Vending.apkとして使えばよいだろう。これは、既にコピー済みなので、上記の3つ
のファイルもSDカードのルートフォルダーに入れて、EPC VIA WM8650側に持って来
て、端末エミュレーターから、以下のコマンドでコピーしよう。
$ su
# cd /system/app
# cp /sdcard/GoogleServicesFramework.apk ./
# chmod 644 GoogleServicesFramework.apk
# cp /sdcard/MarketUpdater.apk ./
# chmod 644 MarketUpdater.apk
# cp /sdcard/Development.apk ./
# chmod 644 Development.apk
# exit
$ exit
リブートして、マーケットを起動してみる。ちなみに、リブートは、端末エミュレ
ーターから、以下のコマンドでも行える。
$ su
# reboot
上記の作業中なら、exitせずに、rebootコマンドを実行しちゃえば良い。
さて、マーケットを起動してみよう。を! 今度は起動した。Google Accountを作る
か聞いてくる。Nextで、Create(新規)かSign in(既存のアカウントを使う)を選択
するようになっているので、適宜、設定しよう。マーケット利用規約が表示される
ので、「同意する」を選択すれば、やっとマーケットが使えるようになった。
rootも取れたので、ちゃんとしたマーケットを入れる。
最新っぽいマーケットが、ここにあったので、そこからダウンロード。
New Working Market 2.2.7 (apk attached)
ここから、com.android.vending-2.apk を入手。それから、
これのファイル名を「Vending.apk」に変更して、SDカードのルートフォルダーに
コピーする。
端末エミュレーターを起動して、以下のコマンドを実行。
$ su
# cd /system/app
# cp /sdcard/Vending.apk ./
# chmod 644 Vending.apk
# exit
$ exit
リブートして、マーケットを起動してみる。
あれ、一瞬、画面が真っ白になって、すぐ戻ってきちゃう ;_;
ダメだ、何か致命的に足りないんだろうか? 以下にヒントがあった。
Android SDKを使おう
やはり不足するものがあるようで、以下のものを補う必要があるみたい(これら、
3つがすべて必要なのかどうかは不明だけど)。
ここにファイルがあるので、使わせてもらう。
GoogleServicesFramework.apk
MarketUpdater.apk
Development.apk
マーケット本体だけは、com.android.vending-2.apkの方が新しいので、それを
Vending.apkとして使えばよいだろう。これは、既にコピー済みなので、上記の3つ
のファイルもSDカードのルートフォルダーに入れて、EPC VIA WM8650側に持って来
て、端末エミュレーターから、以下のコマンドでコピーしよう。
$ su
# cd /system/app
# cp /sdcard/GoogleServicesFramework.apk ./
# chmod 644 GoogleServicesFramework.apk
# cp /sdcard/MarketUpdater.apk ./
# chmod 644 MarketUpdater.apk
# cp /sdcard/Development.apk ./
# chmod 644 Development.apk
# exit
$ exit
リブートして、マーケットを起動してみる。ちなみに、リブートは、端末エミュレ
ーターから、以下のコマンドでも行える。
$ su
# reboot
上記の作業中なら、exitせずに、rebootコマンドを実行しちゃえば良い。
さて、マーケットを起動してみよう。を! 今度は起動した。Google Accountを作る
か聞いてくる。Nextで、Create(新規)かSign in(既存のアカウントを使う)を選択
するようになっているので、適宜、設定しよう。マーケット利用規約が表示される
ので、「同意する」を選択すれば、やっとマーケットが使えるようになった。
EPC VIA WM8650(root奪取編)「rootを狙え!」 ― 2011/06/02 13:26
Android端末なら、やっぱり、rootを取って、あれこれ自由にいぢりたいよね。
Android2.2系なら、SuperOneClick で一発OK。そう思っていたが、大問題が発覚。SuperOneClick って、PC(Windows)からUSB接続してrootを奪取するものだ。ところが、このEPCは、3つもあるUSBポートのすべてが、USB-Aタイプで、かつ、マスターモード(ホスト)で動作する。PCと接続するには、スレーブモードにならないとダメだ。これでは、PCと接続できない。古いAndroidなら、z4root という便利なアプリがあって、Android端末本体だけで簡単にルートが取れたんだが、z4rootが利用しているセキュリティーホールは、既にふさがれているらしく、z4root はもう使えない。他にroot取りのツールを探すも、使えそうなものは発見できず。
rootへの道は完全に絶たれた。
でも、rootは何としても取りたいよね。そこで、調べまくって、1週間も掛かってしまったが、糸口を発見。そして、牙城を崩せた。
非常に厄介な問題だったが、SuperOneClickで、どうやってrootを取るのかを調べてみると糸口があった。psneuterというファイルをAndroid端末に転送して、Android端末上で実行してrootを取っているようだ。psneuterであれこれ検索してみたら、参考になる情報が出てきた。
NexusOneにUbuntuを
[HOWTO] Root Nexus One 2.2.1 FRG83D without OEM unlock
psneuterは、adb(Android端末のアプリ開発で使用するデバッガー)の脆弱性を利用しているようだ。psneuterによりadbの脆弱性を突いて、一時的にrootを取るらしい。つまり、rootを取れても、adbで接続された先(つまり、デバック用で繋いでいるPC)から操作しないと何もできないって訳だ。やはり、USB経由で繋げないとダメなのか…
更に調べてみると、adbはネットワーク越しでも接続できるようだ。
ここの情報が参考になる。
SmartQ5 Android 開発Tips 1 (デバッグ方法)
なかなか奥深い。これらを参考にさせていただき、EPC のrootを取ってみる。
1. 必要なものを集める
準備は、PC(Windows)上で行う。先ず、SuperOneClick を入手して、必要なものを取り出そう。
[APP]SuperOneClick v1.9.1
ここから、SuperOneClickv1.9.1-ShortFuse.zip をダウンロードする。ちなみに、xdaからのダウンロードには登録(無料)が必要なので、未登録なら、登録の作業はしておこう!
このZIPファイルを解凍すると、その中に以下のファイルがある。
Exploits\psneuter
Root\Superuser.apk
Root\su-v3
もうひとつ、必要なものがある。Android端末上であれこれコマンドを実行するので、端末エミュレーターが必須となる。以下から入手しておこう。
Android Terminal Emulator v1.0.29 apk
ここから、ダウンロードすると、Term.apk が手に入る。
SDカードを用意する。これらの4つのファイルをSDカードのルートフォルダーにコピーする。su-v3は、名前をsuに変更しておこう。これで、SDカードには以下の4つのファイルが入った。
psneuter
Superuser.apk
su
Term.apk
上記以外に、PCからEPCへネットワーク越しにデバッグモードで接続する為に、adbも必要となる。Android SDK(開発環境)のインストールが必要になるところだが、利用したいのはadbだけだ。実は、先ほど入手した SuperOneClickv1.9.1-ShortFuse.zip の中にも adb が入っているので、それを使用すればよい。
ADB\adb.exe
これは、後ほど使用する。
2. EPC VIA WM8650での準備
上記のSDカードをEPCにセットする。上部の通知領域に「SDカードの準備中」とかメッセージが出てから、消えるまで待つ。それから、以下の手順で操作。
・端末エミュレータのインストール
ホーム画面にある「File Browser」を起動する。カーソルキーで選択してからEnterキーを押せば起動できるので、タッチパッドを操作しなくても起動可能だ。「File Browser」が起動したら。右カーソルキーで「SD」を選択してEnterでSDカードの内容を表示させる。カーソルキーで、「Term.apk」を選択してEnterを押せば、インストールが始まる。確認の画面が出るので、「インストール」を選んでEnter。「アプリケーションをインストールしました」が表示されたら、「完了」で一旦終了させる。「File Browser」の画面に戻るので、Escキーで終了させる。
・端末エミュレータの設定
インストールしたままだと、フォントが小さかったり、画面の色が見にくかったりするので、端末エミュレータの設定を少し変更しておこう。
ホーム画面右下隅の小さい四角が4×4並んでいるアイコンでアプリケーション一覧を表示させて、そこから「端末エミュレータ」を起動する。コンソール画面に切り替わるので、キーボードの「Zzz」キーを押してメニューを表示させて、設定で設定メニューを表示させよう。ここに、フォントサイズや色があるので、好みに合わせて設定する。設定が済んだら「Esc」キーでコンソール画面に戻ろう。
端末エミュレータは、「exit」と入力してから「Esc」キーで終了できる。
・ネットワークへの接続とIPアドレスの確認
自宅で無線LANを導入しているなら、ホーム画面の「Wi-Fi設定」から接続の設定をして、接続する。
有線のLANで接続するのでもOK。PCと同じネットワークに繋いでおく。
ここで、IPアドレスを確認する。端末エミュレータを起動して、以下のコマンドを実行する(「$ 」はプロンプトなので、「ifconfig」だけキーイン) 。
$ ifconfig
ここで表示される情報で、Link encap が Ethernet となっている方に表示されているinet addrの値(例: 192.168.12.34)をメモしておく。端末エミュレータは一旦、終了させる。
・ホーム画面の「設定」から、以下の2つにチェックを入れておく。
「USB」→「ADB]
「アプリケーション」→「開発」→「USBデバッグ」
準備はここまで。
3.root取り
以下は、PC(Windows)上から作業する。
・コマンドプロンプトを開く
スタートメニューの「すべてのプログラム」の「アクセサリ」の所に「コマンド プロンプト」があるので、それを起動する。
・adbのあるフォルダーへ移動
cdコマンドで、SuperOneClickv1.9.1-ShortFuse.zipを解凍したフォルダーへ移動する。さらに、そこのADBフォルダーに移動する。
・以下のコマンドを実行
以下のコマンドで、EPC のadbサーバーに繋いで起動する。
set ADBHOST=<先ほど調べたIPアドレス>
adb kill-server
adb start-server
実行例: (「~>」部分はプロンプトなので、実行環境に合わせた表示になる)
~>set ADBHOST=192.168.12.34
~>adb kill-server
~>adb start-server
* daemon not running. starting it now on port xxxx *
* daemon started successfully *
~>
上記の例の様に、「* daemon started successfully *」が表示されれば、OKだ。
・一時的なroot取り
続いて、以下の手順でEPC に入りこんで、一時的にrootを取る。先ず、以下のコマンドでEPCに接続する。
adb shell
接続できると、「$ 」のプロンプトが表示される(「# 」と出るかもしれないが気にせず、そのまま続けよう)。これで、EPC をコマンド操作できるようになる(この時点では、まだrootにはなっていない)。ちなみに、EPC では、既にbusyboxが入っているので、いろいろコマンドが使える。
ここからroot取りに入る! 以下のコマンドを順番に実行(「$ 」はプロンプトなので、入力しない事)。
$ cd /tmp
$ cp /sdcard/psneuter ./
$ chmod 755 psneuter
$ ./psneuter
ここで、以下のメッセージが出て(出ない場合もある)、adbの接続が切れる。
Windowsのコマンドプロンプト側に戻ってきて、「~>」なプロンプトが表示される。
property service neutered.
killing adbd. (should restart in a second or two)
~>
ちょっと待ってから、以下のコマンドで、もう一度つなぎなおす。
adb kill-server
adb start-server
adb shell
今度は、「# 」のプロンプトが表示されるはずだ。そこで、rootが取れたかを以下のコマンドで確認する。
# id
以下の表示になればrootが取れている。
uid=0(root) gid=0
これ以外の表示になったら失敗しているので、初めからやり直し。
・恒久的にrootを取れるようにする
suコマンドで、恒久的にrootを取れるように、suコマンドをセットする。以下の順に、コマンドを実行。
# cd /sbin
# cp /sdcard/su ./
# chmod 4755 /sbin/su
# exit
これで、Windowsのコマンドプロンプト側に戻ってきて、「~>」なプロンプトが表示されたら、PC側からの作業は終了。
ここからは、EPC で作業する。
・Superuserのインストール。
Superuserは、rootの権限を管理するアプリだ。ホーム画面にある「File Browser」を起動して、「SD」を選択してEnterでSDカードの内容を表示させる。カーソルキーで、「Superuser.apk」を選択してEnterを押し、インストール。
・rootが取れているか確認
一度、EPCの電源を落とす。電源ボタン長押しで、「電源を切る」を選んで、完全に電源を落とす。それから電源を入れ直して、再起動させる。
起動したら、「端末エミュレータ」を起動。suコマンドを実行してみる。
$ su
ここで、Superuserのアプリが動いて、Superuserアクセスの許可を求めてくるので、「許可」する。「端末エミュレータ」の画面に戻って、プロンプトが「# 」に変わっていれば、root取りの確認完了だ。とりあえず、exitコマンドを2度実行して、「端末エミュレータ」を終了させておこう。
# exit
$ exit
・後始末
本来、psneuterは一時的なroot取りしかできないはずだが、EPC では、本体を再起動しても、adbがroot取り状態のままになってしまう。このままでは、公衆ワイヤレスLANとかで接続した場合に、セキュリティーホールになってしまう。「設定」から、以下のチェックを外して、外部から操作されないようにしておくこと。
「USB」→「ADB]
「アプリケーション」→「開発」→「USBデバッグ」
これで、root取り完了なので、後は、正規のマーケットを入れるなり、フォントを入れ替えて、中華フォントとさよならするなり、なんでも自由にできる!!
その辺は、改めて書く予定だ。
Android2.2系なら、SuperOneClick で一発OK。そう思っていたが、大問題が発覚。SuperOneClick って、PC(Windows)からUSB接続してrootを奪取するものだ。ところが、このEPCは、3つもあるUSBポートのすべてが、USB-Aタイプで、かつ、マスターモード(ホスト)で動作する。PCと接続するには、スレーブモードにならないとダメだ。これでは、PCと接続できない。古いAndroidなら、z4root という便利なアプリがあって、Android端末本体だけで簡単にルートが取れたんだが、z4rootが利用しているセキュリティーホールは、既にふさがれているらしく、z4root はもう使えない。他にroot取りのツールを探すも、使えそうなものは発見できず。
rootへの道は完全に絶たれた。
でも、rootは何としても取りたいよね。そこで、調べまくって、1週間も掛かってしまったが、糸口を発見。そして、牙城を崩せた。
非常に厄介な問題だったが、SuperOneClickで、どうやってrootを取るのかを調べてみると糸口があった。psneuterというファイルをAndroid端末に転送して、Android端末上で実行してrootを取っているようだ。psneuterであれこれ検索してみたら、参考になる情報が出てきた。
NexusOneにUbuntuを
[HOWTO] Root Nexus One 2.2.1 FRG83D without OEM unlock
psneuterは、adb(Android端末のアプリ開発で使用するデバッガー)の脆弱性を利用しているようだ。psneuterによりadbの脆弱性を突いて、一時的にrootを取るらしい。つまり、rootを取れても、adbで接続された先(つまり、デバック用で繋いでいるPC)から操作しないと何もできないって訳だ。やはり、USB経由で繋げないとダメなのか…
更に調べてみると、adbはネットワーク越しでも接続できるようだ。
ここの情報が参考になる。
SmartQ5 Android 開発Tips 1 (デバッグ方法)
なかなか奥深い。これらを参考にさせていただき、EPC のrootを取ってみる。
1. 必要なものを集める
準備は、PC(Windows)上で行う。先ず、SuperOneClick を入手して、必要なものを取り出そう。
[APP]SuperOneClick v1.9.1
ここから、SuperOneClickv1.9.1-ShortFuse.zip をダウンロードする。ちなみに、xdaからのダウンロードには登録(無料)が必要なので、未登録なら、登録の作業はしておこう!
このZIPファイルを解凍すると、その中に以下のファイルがある。
Exploits\psneuter
Root\Superuser.apk
Root\su-v3
もうひとつ、必要なものがある。Android端末上であれこれコマンドを実行するので、端末エミュレーターが必須となる。以下から入手しておこう。
Android Terminal Emulator v1.0.29 apk
ここから、ダウンロードすると、Term.apk が手に入る。
SDカードを用意する。これらの4つのファイルをSDカードのルートフォルダーにコピーする。su-v3は、名前をsuに変更しておこう。これで、SDカードには以下の4つのファイルが入った。
psneuter
Superuser.apk
su
Term.apk
上記以外に、PCからEPCへネットワーク越しにデバッグモードで接続する為に、adbも必要となる。Android SDK(開発環境)のインストールが必要になるところだが、利用したいのはadbだけだ。実は、先ほど入手した SuperOneClickv1.9.1-ShortFuse.zip の中にも adb が入っているので、それを使用すればよい。
ADB\adb.exe
これは、後ほど使用する。
2. EPC VIA WM8650での準備
上記のSDカードをEPCにセットする。上部の通知領域に「SDカードの準備中」とかメッセージが出てから、消えるまで待つ。それから、以下の手順で操作。
・端末エミュレータのインストール
ホーム画面にある「File Browser」を起動する。カーソルキーで選択してからEnterキーを押せば起動できるので、タッチパッドを操作しなくても起動可能だ。「File Browser」が起動したら。右カーソルキーで「SD」を選択してEnterでSDカードの内容を表示させる。カーソルキーで、「Term.apk」を選択してEnterを押せば、インストールが始まる。確認の画面が出るので、「インストール」を選んでEnter。「アプリケーションをインストールしました」が表示されたら、「完了」で一旦終了させる。「File Browser」の画面に戻るので、Escキーで終了させる。
・端末エミュレータの設定
インストールしたままだと、フォントが小さかったり、画面の色が見にくかったりするので、端末エミュレータの設定を少し変更しておこう。
ホーム画面右下隅の小さい四角が4×4並んでいるアイコンでアプリケーション一覧を表示させて、そこから「端末エミュレータ」を起動する。コンソール画面に切り替わるので、キーボードの「Zzz」キーを押してメニューを表示させて、設定で設定メニューを表示させよう。ここに、フォントサイズや色があるので、好みに合わせて設定する。設定が済んだら「Esc」キーでコンソール画面に戻ろう。
端末エミュレータは、「exit」と入力してから「Esc」キーで終了できる。
・ネットワークへの接続とIPアドレスの確認
自宅で無線LANを導入しているなら、ホーム画面の「Wi-Fi設定」から接続の設定をして、接続する。
有線のLANで接続するのでもOK。PCと同じネットワークに繋いでおく。
ここで、IPアドレスを確認する。端末エミュレータを起動して、以下のコマンドを実行する(「$ 」はプロンプトなので、「ifconfig」だけキーイン) 。
$ ifconfig
ここで表示される情報で、Link encap が Ethernet となっている方に表示されているinet addrの値(例: 192.168.12.34)をメモしておく。端末エミュレータは一旦、終了させる。
・ホーム画面の「設定」から、以下の2つにチェックを入れておく。
「USB」→「ADB]
「アプリケーション」→「開発」→「USBデバッグ」
準備はここまで。
3.root取り
以下は、PC(Windows)上から作業する。
・コマンドプロンプトを開く
スタートメニューの「すべてのプログラム」の「アクセサリ」の所に「コマンド プロンプト」があるので、それを起動する。
・adbのあるフォルダーへ移動
cdコマンドで、SuperOneClickv1.9.1-ShortFuse.zipを解凍したフォルダーへ移動する。さらに、そこのADBフォルダーに移動する。
・以下のコマンドを実行
以下のコマンドで、EPC のadbサーバーに繋いで起動する。
set ADBHOST=<先ほど調べたIPアドレス>
adb kill-server
adb start-server
実行例: (「~>」部分はプロンプトなので、実行環境に合わせた表示になる)
~>set ADBHOST=192.168.12.34
~>adb kill-server
~>adb start-server
* daemon not running. starting it now on port xxxx *
* daemon started successfully *
~>
上記の例の様に、「* daemon started successfully *」が表示されれば、OKだ。
・一時的なroot取り
続いて、以下の手順でEPC に入りこんで、一時的にrootを取る。先ず、以下のコマンドでEPCに接続する。
adb shell
接続できると、「$ 」のプロンプトが表示される(「# 」と出るかもしれないが気にせず、そのまま続けよう)。これで、EPC をコマンド操作できるようになる(この時点では、まだrootにはなっていない)。ちなみに、EPC では、既にbusyboxが入っているので、いろいろコマンドが使える。
ここからroot取りに入る! 以下のコマンドを順番に実行(「$ 」はプロンプトなので、入力しない事)。
$ cd /tmp
$ cp /sdcard/psneuter ./
$ chmod 755 psneuter
$ ./psneuter
ここで、以下のメッセージが出て(出ない場合もある)、adbの接続が切れる。
Windowsのコマンドプロンプト側に戻ってきて、「~>」なプロンプトが表示される。
property service neutered.
killing adbd. (should restart in a second or two)
~>
ちょっと待ってから、以下のコマンドで、もう一度つなぎなおす。
adb kill-server
adb start-server
adb shell
今度は、「# 」のプロンプトが表示されるはずだ。そこで、rootが取れたかを以下のコマンドで確認する。
# id
以下の表示になればrootが取れている。
uid=0(root) gid=0
これ以外の表示になったら失敗しているので、初めからやり直し。
・恒久的にrootを取れるようにする
suコマンドで、恒久的にrootを取れるように、suコマンドをセットする。以下の順に、コマンドを実行。
# cd /sbin
# cp /sdcard/su ./
# chmod 4755 /sbin/su
# exit
これで、Windowsのコマンドプロンプト側に戻ってきて、「~>」なプロンプトが表示されたら、PC側からの作業は終了。
ここからは、EPC で作業する。
・Superuserのインストール。
Superuserは、rootの権限を管理するアプリだ。ホーム画面にある「File Browser」を起動して、「SD」を選択してEnterでSDカードの内容を表示させる。カーソルキーで、「Superuser.apk」を選択してEnterを押し、インストール。
・rootが取れているか確認
一度、EPCの電源を落とす。電源ボタン長押しで、「電源を切る」を選んで、完全に電源を落とす。それから電源を入れ直して、再起動させる。
起動したら、「端末エミュレータ」を起動。suコマンドを実行してみる。
$ su
ここで、Superuserのアプリが動いて、Superuserアクセスの許可を求めてくるので、「許可」する。「端末エミュレータ」の画面に戻って、プロンプトが「# 」に変わっていれば、root取りの確認完了だ。とりあえず、exitコマンドを2度実行して、「端末エミュレータ」を終了させておこう。
# exit
$ exit
・後始末
本来、psneuterは一時的なroot取りしかできないはずだが、EPC では、本体を再起動しても、adbがroot取り状態のままになってしまう。このままでは、公衆ワイヤレスLANとかで接続した場合に、セキュリティーホールになってしまう。「設定」から、以下のチェックを外して、外部から操作されないようにしておくこと。
「USB」→「ADB]
「アプリケーション」→「開発」→「USBデバッグ」
これで、root取り完了なので、後は、正規のマーケットを入れるなり、フォントを入れ替えて、中華フォントとさよならするなり、なんでも自由にできる!!
その辺は、改めて書く予定だ。
最近のコメント