ICONIA A700 android 4.1.1 Jelly bean の中華フォントを直す

今更ですが、 Android版 Chrome の 中華フォント 問題が修正されないため、手持ちの ICONIA A700 を ROOT化 して問題を回避する事にしました。

supersu pro

事前に断っておきますが、この対処は ROOT化 が必須で、最低限のコマンドプロンプトの知識が必要です。メーカー保証が欲しかったりする人にはお勧めしません。

現象のあらまし

中華フォントと呼ばれる状態はフォントのリクエストが正常に行われていないためにフォールバックフォント(対応する物が発見出来ないので仕方なく読み込まれるフォント)が読み込まれてしまう事で起こります。

Android 4.1 では  /etc/system-fonts.xml/etc/fallback-fonts-ja.xml/etc/fallback-fonts.xml の順でフォントが捜索され、見つからなかった場合は最後のフォントが適応されるようです。

まず、fallback_fonts-ja.xml の末尾を提示します。

ここに記述されている MTLmr3m.ttf というのが Android 4.0 から採用された「モトヤフォント」で、 DroidSansFallback.ttf がいわゆる世間が中華フォントと呼んでいる物です。実際には日本語でも中国語でも何となく読めてしまうフォントセットなのではないでしょうか?(台湾メーカーとしてはこのほうが都合がよいとか…、)

    <family>
        <fileset>
            <file>AndroidEmoji.ttf</file>
        </fileset>
    </family>
    <family>
        <fileset>
            <file>MTLmr3m.ttf</file>
        </fileset>
    </family>
    <family>
        <fileset>
            <file>DroidSansFallback.ttf</file>
        </fileset>
    </family>
</familyset>

本来ならばfallback_fonts-ja.xml のフォントファミリーから日本語フォントの MTLmr3m.ttf が採用されます。これに該当しない場合、若しくはフォントが存在しない場合は仕方なく DroidSansFallback.ttf が使用される事になります。fallback_fonts.xml はこの部分が逆転していて MTLmr3m.ttf が評価される前に日本語かも知れない DroidSansFallback.ttf が採用されます。

    <family>
        <fileset>
            <file>AndroidEmoji.ttf</file>
        </fileset>
    </family>
    <family>
        <fileset>
            <file>DroidSansFallback.ttf</file>
        </fileset>
    </family>
    <family>
        <fileset>
            <file>MTLmr3m.ttf</file>
        </fileset>
    </family>
</familyset>

 

端末の言語を English に設定すると恐らくこちらの動作が優先され、日本語だか中国語だか分からない DroidSansFallback.ttf が採用される物と思います。ただ、端末言語を English にしていてもシステム上の日本語フォントや Firefox の表示言語は正常にフォントが採用されるため、これは Chrome が抱えているバグだと推察出来ます。

ROOT化

ROOT化 自体は XDA のフォーラムの記事に従って処理を進めるだけです。

[A700] EasyRoot 2.0 | Acer Iconia A700 and A510 | XDA Forums
http://forum.xda-developers.com/showthread.php?t=1953917

添付されているファイルが既に削除されていて存在しませんが、MD5が一致するファイルが下記から入手出来ます。ブートローダーをアンロックするために必要なファイルも含まれているので、まずはこれを入手します。

Dev-Host – a700-easy-root-2 (2).zip – The Ultimate Free File Hosting / File Sharing Service
http://d-h.st/Pmn

ICONIA A700 の USB Debug を使ったPCとの接続は以前の記事で書いているので割愛します。

EasyRoot 2.0 を適当な場所へ展開し、コマンドプロンプトを開いて展開したディレクトリへ移動しておきます。

XDA の記事にしたがってブートローダーをアンロックしてください。

Unlock bootloader | Acer Iconia A700 and A510 | XDA Forums
http://forum.xda-developers.com/showthread.php?t=1710755

続いて、Adbに接続された状態で easyroot.bat を実行し、メッセージに従えば root化が完了し、SupperSU のアプリがインストールされた状態で起動します。

中華フォントの回避策

root処理に対応した android のファイラーとエディタが必要です。ES Explorer は昨今よい噂を聞かないため、FX File Explorer を使用する事にしました。Root Add-Onと併せてインストールしておきます。FX File Manager にはテキストエディタが付属しているのでそれを使用する事にします。

File Explorer – Google Play の Android アプリ
https://play.google.com/store/apps/details?id=nextapp.fx

File Explorer (Root Add-On) – Google Play の Android アプリ
https://play.google.com/store/apps/details?id=nextapp.fx.rr

幾つか対処方法を思いつくわけですが、

  1. DroidSansFallback.ttf を MTLmr3m.ttf と同等の内容にしてしまう。
  2. fallback_fonts.xml を fallback_fonts-ja.xml と同等の内容にしてしまう。
  3. fallback_fonts.xml を適当にリネームして fallback_fonts-ja.xml を fallback_fonts.xml にしてしまう。

そもそも日本仕様の端末なのでローケルの例外設定のような fallback_fonts-ja.xml は使わないというのがスマートかも知れません。

この記事では 3 の方式を採る事にします。

FXで /etc ディレクトリにアクセスし read-write の属性でマウントします。

fx system root

fx etc mount rw

fx remount

あとはファイル名をタッチして出るメニューから  fallback_fonts.xml を fallback_fonts_.xml 等にリネームし、 fallback_fonts-ja.xml を fallback_fonts.xml にリネームして対処完了です。 強制終了 等でブラウザのアクティビティを終了させれば設定が有効になります。