[Android] 日本語フォントを変更してみる(Nougat編)
このためROMを書き換えるたびにそのzipファイルをそのまま使用していたのですが、Nougatではフォントの管理が少々変わったらしく、fallback_fonts.xmlが廃止されました。
ただ、fonts.xml自体に大きな違いはなく、MarshMallowの設定でも問題が発生しなかったようです。とは言え、使わなくなったファイルをインストールするのも気持ち悪いので、その辺を修正することに。
今回の作業ですが、root権限がユーザ側にあること(いわゆるroot化済みであること)、LineageOS系のROMであること、の2点が前提条件となります。
システムファイルをいじるので前者に関しては説明の必要もありませんが、LineageOS系以外のROMにおいてはfonts.xmlの記述が異なったりするかもしれないのでご注意くだされ。
また、実際の作業にあたっては、事前にバックアップの実行をお忘れなく。フォントのインストールに失敗した場合、ブートループになったり、メッセージ類を読むことができなくなったりする可能性があります。
作業自体はさほど難しいモノではありません。まずは、適用したいフォントファイル(TrueType)を/system/fontsにコピーし、続いて/system/etc/fonts.xmlを編集すれば基本的には作業完了です。
fonts.xmlの編集に関してですが、PCを使える環境にあるなら一度PCにコピーして加工すると楽に行える...ような気が。
で、具体的な変更部分は以下のとおり。ファイルをテキストエディタなどで開いて該当する行を探します。おそらく文末に近い位置にあるかと。
■変更前
<family lang="ja"> <font weight="400" style="normal" index="0">NotoSansCJK-Regular.ttc</font> </family>
上記が見つかったら、以下のように書き換えます。なお、ここではレギュラーなフォントファイルであるmigu-1vs-regular.ttf、および太字のmigu-1vs-bold.ttfの2つを指定しています。
■変更後
<family lang="ja"> <font weight="400" style="normal">migu-1vs-regular.ttf</font> <font weight="700" style="normal">migu-1vs-bold.ttf</font> </family>
記述に間違いがないかチェックしてファイルを上書き保存。最後に、コピーしたフォントと(念のため)fonts.xmlのパーミッションを確認し、必要があれば書き換えます。ちなみに、いずれも644(rw-r--r--)が正解。
あとは端末を再起動すれば設定したフォントが有効になります。駆け足での解説となりましたが、何かの参考になりますれば。
コメント
いつも楽しく拝見しています。私もNexus5を使っていてFontの変更をしてみました。結果うまくいったのですが、ステータスバーの時計だけ変更出来ません。隣にあるBatteryの%表示の数字等は変更出来ています。
どこを書き換えれば、ステータスバーの時計のFontを変更出来るのでしょうか。
また、使えるFontは数字だけのものがあるのか、
文字(日本語や英字)と同包されているもので構わないのか合わせて教えて頂けないでしょうか。
お忙しいと思いますが、お時間ある時でいいので
よろしくお願いします。
逆にシステムUIが使用するRobotoファミリー(ステータスバーの時計のみであればRoboto-Regular.ttf)を置き換える方法もありますが、どこか別の場所に悪影響が出ないとも限りません。
AICPであれば、設定→ステータスバーのClockという項目で(Robotoファミリーの中からですが)選択は可能です。好きなフォントを指定できる訳ではありませんが、お手軽なのでまずはこの辺を試してみてはいかがでしょうか?
ちなみに、Robotoファミリーは英字(+数字)のフォントとなっております。