HAIPAD-M9X フォント入れ替え

スポンサーリンク
Androidデジタルガジェット

これは別にM9Xだけの問題ではないんですが、中華Padすべてに共通する問題点として、いわゆる中華フォントっていうやつがあります。一見普通のゴシック体なんですが、文字によっては変に曲がってたり、省略されてたり、何となく違和感があるんですよね。正式にはCJKフォントといって、中国語・日本語・韓国語を一緒にしたフォントらしいです。これが中国の簡体字を連想させるもので、そこはかとなく中華臭が漂っております。(^^; しばらく使ってたら慣れるとかいう問題ではなく、逆に見るたびに忌々しくなってきます(爆)。

そこでまともな日本人なら、何とかこのフォントを置き換えられんか?と考えるわけです。まあ中華Padを買ったら誰もが一度は通る道ですね(笑)。実はフォントの入れ替え自体はとても単純で、/system/fontsディレクトリ以下に適当なTrueTypeフォントをDroidSansJapanese.ttfというファイル名で送り込んでやればいいだけの話なんですね。


ところがどっこい、話はそう簡単には行かんのです。なぜかと言えば/system以下のディレクトリはユーザーが誤って書き換えないように書き込み禁止になってるのですね。これを変更するためにはroot権限がないとできません。UNIXを知らない方には何のことだかわからないと思いますが、Windowsで言うところのadministrator権限と同じようなものです。したがって、普通はどうやっても書き換えることができないのです。しかし何にでも抜け道というものがありまして、これを書き換えるためには禁断のroot化というテクニックを使います。早い話がroot権限を奪っちゃうわけです。フォント入れ替えに限らず、中華Padをいろいろいじるためにはどうしてもroot化が必要になるので、後々のためにもやっておいた方がいいんですね。

ただしroot化は改造に当たりますので、これをやると保証が一切なくなります。もともと保証なんてありませんけど(爆)。また失敗すると中華Padが文鎮化する恐れがあります。実行するためには最低限UNIXに関する知識や多少の英語力、それに問題を自己解決できる能力が必要です。自信のない人は決して手を出してはいけません。一応、自分が忘れないためにメモとして残しておきますが、後から思い出しながら書いているので、何か抜けていたり、間違っている可能性もあります。言うまでもないですが、実行される場合は自己責任で行って下さい。

M9系のroot化の方法は少々面倒です。原典はこちらにあります(英文)。なおファームのバージョンによってroot化の方法が異なる可能性があります。自分は0827のファームバージョンで行いました。

ツールとしてはVISIONary+GingerBreakを使います。こちらはサイトからapkファイルをダウンロードして、microSDカードのルートにコピーしておきます。それからUNIXコマンドを叩くために、Terminal Emulatorというアプリも必要です。こちらはAndroidマーケットからインストールできます。

ここで問題は、VISIONary+やGingerBreakはAndroidマーケットに登録されていないいわゆる野良アプリなので、そのままではインストールできません。これをインストールするためにApk ManagerというアプリをAndroidマーケットからインストールしておきます。Apk Managerを起動すると、microSDカードにあるapkファイルを自動的に検出してくれますので、Installを選べばインストールできます。


ツールの準備ができたら、いよいよroot化に移ります。まずVISIONary+を起動して、”Temproot now”をタップします。これは「一時的にroot化する」という意味です。実行するとしばらく時間をおいて、再びメニュー画面に戻ってきます。ここでいったんTerminal Emulatorを起動して、コマンドプロンプトから

$ su

と打ち込みます。これでコマンドプロンプトの$が#に変わったらrootが取れていますのでOKです。もし何かメッセージが表示されて拒否された場合はrootが取れてませんので、もう一度”Temproot now”を実行します。なぜか一度ではrootが取れないケースがあるようです。その場合はrootが取れるまで繰り返します。

無事rootが取れたら、今度はコマンドプロンプトから

# mount -o rw,remount -t ext3 /dev/root /

と打ち込んで実行します。/dev/rootと最後の/の間には半角スペースがありますので注意して下さい。ここでやっていることは、/以下のディレクトリを書き込み可能にするという意味です。このコマンドはroot権限がないと実行できません。

ここまでうまく行ったら、次にGingerBreakを起動します。このアプリが何をやっているのか、実はよくわかってません。(^^; たぶん一時的なrootを永続的なrootに固定化してるんじゃないでしょうか? 起動時にmicroSDが入っているか、またUSBデバッグが有効になっているか確認されます。設定→アプリケーション→開発であらかじめUSBデバッグを有効にしておきましょう。


GingerBreakを起動したら”Root device”をタップします。しばらく時間をおいて自動的にシャットダウンされれば成功です。

そしてもう一度電源を入れ直し、Terminal Emulatorを起動して

$ su

と打ち込んでみましょう。これでプロンプトが#に変わればちゃんとrootが取れています。もし変わらなかったら失敗したと思って下さい。(^^;

無事root化できていたら、次はフォント入れ替えの作業に移ります。マウントの設定は再起動するたびにやり直す必要がありますので、先ほどと同じく、もう一度

# mount -o rw,remount -t ext3 /dev/root /

を実行して書き込み許可を与えます。そして

# cd /system/fonts

を実行してフォントのあるディレクトリに移ります。これからいよいよフォントをコピーするわけですが、あらかじめTrueTypeフォントをmicroSDのルートディレクトリにDroidSansJapanese.ttfという名前で保存してあるものと仮定します。問題はこのフォントをどこから持ってくるかですが、TrueTypeフォントであれば何でも構いません。Windowsにあるものでも結構です。僕はWindowsのメイリオフォントを少し加工したものを使っています。フリーのフォントとかもあるようですので、適当に検索して拾ってきて下さい。

ここでちょっと問題発生です。ファイルをコピーするには普通cpコマンドを使いますが、Androidのビルドによってはなぜかcpコマンドが効かないものがあります。M9Xもそうでした。この場合どうやってコピーするかというと、ちょっと裏技を使います。

# cat /mnt/sdcard/DroidSansJapanese.ttf >DroidSansJapanese.ttf

と入力してやれば、cpコマンドと同じようにコピーできます。catというのはテキストファイルの中身を表示するコマンドですが、別にテキストファイルでなくても構いません。その出力を画面の代わりにDroidSansJapanese.ttfというファイルへリダイレクトするわけです。そこまでできたら

# ls -l

を実行して、ちゃんとコピーされているか確認してみましょう。rootのままコピーするとオーナーがrootになってフルアクセスになってしまうみたいですが、気になる人はchownやchmodで変更しておきましょう。別にそのままでも問題はないと思います。そしてもう一度端末を再起動するとフォントが入れ替わっているはずです。もし変わらなかったり、日本語が何も表示されなくなったら、おそらくファイル名のスペルミスです。自分もやりました(笑)。慌てずリネームすればOKです。

最後のファイルコピーの操作は、Terminal EmulatorでやるよりPCにUSB接続してadb shellから行った方が楽なのですが、adbを有効にするためにはroot化が必要なようなので、どのみちTerminal Emulatorからやるしかないんですね。

さて、無事フォントの入れ替えに成功したら、こんな感じになりました。


これで中華臭が消えて気分スッキリ。(笑)

中華Padを使うということは、こんな苦労を厭わないドMな行為なんですよ(爆)。努力することが嫌いな人は絶対に中華Padなど買ってはいけません(笑)。

片雲の風に誘われて