読者です 読者をやめる 読者になる 読者になる

physickのまったり生活

まったり工学系のお話をしたいですね

Galaxy S5にフォント導入〜♪

android

半年前くらいに格安SIMデビューしようと購入したGalaxy S5ですが…


f:id:physickelback:20161005204045j:image

どぅはっwww

ルート化されてるやんけw

ということで、今までiPhoneでまったりスマホユーザーだった僕が突然rootedスマホっていう過激な環境に置かれてしまったわけですね。

 

まぁ折角ですから色々遊んでみたいということで、まずはツイッターとかでたまに見る変な顔文字

 └(՞ةڼ◔)」トカイッテミチャッタリィィィ!!!!
▂▅▇█▓▒(’ω’)▒▓█▇▅▂
ŧ‹"ŧ‹"ŧ‹"ŧ‹"(๑´ㅂ`๑)ŧ‹"ŧ‹"ŧ‹"ŧ‹"

↑こういうキモいのね。

を表示できるようにしていきたいと思います。

 

まず、フォントを導入していない状態だと、対応していない文字が豆腐になってしまいます。


f:id:physickelback:20161006171216j:image

(http://a.excite.co.jp/News/bit/20121030/sum_E1351498844494.html)

 

Tofu destroyerなる、このような文字を表示してくれるアプリもあるようですが、いちいちアプリの指定欄にコピペで貼り付けなければならないので結構大変です…

 

 

0. 準備

必要なものは以下の通りです。

●root化されたスマホ

●ファイルエクスプローラー(今回はESファイルエクスプローラーを使用。)

 

1. フォントデータを入手

Google playにて「ツイやつγ font」をインストールします。

 

f:id:physickelback:20161005204316j:image
左上のやつね。

続いて、フォントデータを抽出していきまーす。

ファイルエクスプローラーで

/data/app/com.suruyatu.twitter.font...(略)

を開く。

因みにrootedな環境でないと…


f:id:physickelback:20161005214634j:image

dataフォルダの中身が丸ごと見えません。

フォルダの中にあるapkファイルを長押し、好きな場所に解凍します。


f:id:physickelback:20161005211542j:image

解凍されたフォルダを開いて…


f:id:physickelback:20161005211440j:image

assetsフォルダ内にあるフォントファイル(拡張子ttf)をコピーし、/system/fontsにペーストします。


f:id:physickelback:20161005211752j:image

 こんな感じになってればオッケー!

コピーしてきたフォントファイルの権限を644(つまり画像の通りrw-r--r--の状態)にすることを忘れずに!!

これを忘れる人多いです。(知らんけど多分そう。)

因みに、権限は長押ししてプロパティから変更できます。

 

 これで終わりだったら嬉しいのですが、他にもいくつか変更すべき事柄がありますね。

めんどくさいね。うん。

 

2. ファイルの書き換え

まず、

/system/etc/fonts.xml

を開きます。

やるべきことは、このファイルの最後の行に

画像内に示した3行を追加すること。


f:id:physickelback:20161005214117j:image

これでOSがフォントの存在を認識してくれます。

 

さらに、

/system/etc/fallback_fonts.xml

を開き、画像のように追記を行います。

 
f:id:physickelback:20161005214128j:image

これでめでたく終了です!!!

(system_fonts.xmlは書き換えなくて良いの?と思った方は下をお読みください。)

 

豆腐が解消されましたねー!ふぅぅーー!

やっぱroot化端末って楽しいですね!(怖い面もあったりするけどね)

 

【考察】

そもそも、fallback_fontsの書き換えも必須ではありませんが、フォントデータのリストをfonts.xmlに記述するという約束は比較的新しいもののようで、古いアプリなどに対応するためにはfallback_fontsの設定が必須のようです。

参考程度に、fonts.xmlの冒頭文を載せておきますと…

 

fonts.xml
NOTE: this is the newer (L) version of the system font configuration,
supporting richer weight selection. Some apps will expect the older
version, so please keep system_fonts.xml and fallback_fonts.xml in sync
with any changes, even though framework will only read this file.

All fonts withohut names are added to the default list. Fonts are chosen
based on a match: full BCP-47 language tag including script, then just
language, and finally order (the first font containing the glyph).

Order of appearance is also the tiebreaker for weight matching. This is
the reason why the 900 weights of Roboto precede the 700 weights - we
prefer the former when an 800 weight is requested. Since bold spans
effectively add 300 to the weight, this ensures that 900 is the bold
paired with the 500 weight, ensuring adequate contrast.

 

ということで、ここにはfontsに加えてfallback_fontsとsystem_fontsを書き換えなさいと書かれているのですが、system_fontsの冒頭分には、ここ(system_fonts)にないフォントはfallback_fontsから探してくるで〜と書かれているので、上記のように2ファイルのみの書き換えで問題ないかと思います。