2019年06月18日

FireHD10 GoogleFontsの日本語正式サポート8書体+αを搭載して簡単にシステムフォントに置換えるツールが完成した!?

GoogleFontsの日本語正式サポート8書体+αとは?

2019-06-18.png

・KosugiMaru
・Kosugi
・MPLUS1p
・MPLUSRounded1c
・NotoSansJP
・NotoSerifJP
・SawaragiGothic
・SawaragiMincho
+
・AozoraMincho(これが一番のお気に入り(*´▽`*))

これらをKindle Fire HD 10で実装して、好きなフォントをシステムフォントにするツールを作成しました。

Gothic->Mincho->Gothicに変更する動画です。

本体をroot化する必要はありません。

ファイルは「SetFonts.zip」。
(アップロード先は検討中です。(^^;)

ダウンロードしたファイル(/sdcard/download)で「ここに解凍」すると「fonts」というフォルダの中に「setfonts.sh」というひとつのスクリプトと「fonts_xml」と「sqfs」という2つのフォルダが出来ます。

Screenshot_2019-06-18-15-44-28.png
setfonts.zipのサイズは最終的には75.458MB、ここに解凍するとfontsというフォルダが現れる。

Screenshot_2019-06-18-15-38-57.png
setfonts.shというシェルスクリプトが今回の目玉。

Screenshot_2019-06-18-15-39-29.png
GoogleFonts日本語8書体+αを組み込んだイメージファイル。


Screenshot_2019-06-18-15-39-48.png
フォントごとに作成したfonts.xml。

パソコンとADB接続して、mtk-suで一時的なroot権限を取得したら、「sh setfonts.sh」とコマンドを投入して簡単な質問に答えるだけのツールです。

では、実際に使った時のログを見てもらいましょう。(^^)↓

shell@suez:/sdcard/download/fonts # sh setfonts.sh⏎
Welcome to SetFonts.sh

Select Font No.
1 AozoraMincho
2 KosugiMaru
3 Kosugi
4 MPLUS1p
5 MPLUSRounded1c
6 NotoSansJP
7 NotoSerifJP
8 SawaragiGothic
9 SwarakiMincho
1⏎
mount -o remount -rw /system
rm /system/etc/fonts.xml
cp fonts_xml/fonts_AozoraMincho.xml /system/etc/fonts.xml
chmod 644 /system/etc/fonts.xml
-rw-r--r-- root root 22757 2019-06-18 15:04 fonts.xml
Do you want to reboot? (y/n)
y
C:\adb>

キーボードを叩いたのは、「sh setfonts.sh⏎」と「1⏎」と「y⏎」だけです。

ちなみに、フォントイメージ(container.sqfs)を置換える必要がある時は、フォント選択の前にイメージを置換えるか聞いてくるので、「y⏎」とするだけです。

Replace Mine Fonts-image(container.sqfs) (y/n)?
y⏎
Select Font No.
1 AozoraMincho
2 KosugiMaru
3 Kosugi
4 MPLUS1p
5 MPLUSRounded1c
6 NotoSansJP
7 NotoSerifJP
8 SawaragiGothic
9 SwarakiMincho

完全自動化!?して一瞬の作業なので、リスクは極限まで抑えられたか!?

setfonts.shの設計条件(^^)↓

・このスクリプトを起動したユーザーがroot(UID=0/GID=0)かチェックして、それ以外は処理を中止します。
・/system/sqfs/container.sqfsのファイルサイズをみて、オリジナルのものかここで提供したものかを判断しています。
 オリジナルのものであれば"Replace Mine Fonts-image(container.sqfs) (y/n)?"と質問して、
 yまたはYであれば、sqfsフォルダにcontainer.sqfsがあるか確認して、無いなら処理は中止します。
 yまたはY以外は使う気が無いと判断して処理を中止します。
 オリジナルでもここで提供したサイズでもなければ処理を中止します。
・フォント名を1から9から選択してもらいます。
 1〜9以外は処理を中止します。
・選択したフォントに対応するfonts.xmlがfonts_xmlフォルダにあるかチェックして、無ければ処理を中止します。
・/systemをリマウントして書込み出来る様にします。
・/system/sqfs/container.sqfsを置換える指定があれば置換えます。
・/system/etc/fonts.xmlを置換えます。
・最後にイメージとxmlの存在とパーミッションが確認できるようにして、リブートするか問い合わせます。

そんなツールを作成しましたが、使う人はいるかな?(*´ω`*)

P.S.
・kindle_fire_usb_driver.zipダウンロードサイト。
・adb-setup-1.4.3.exeのダウンロードサイト
・mtk-su_r16.zipのダウンロードサイト

・adbはc:\adbにインストールし、そこにmtk-su_r16.zipを解凍したarm64フォルダ内のmtk-suを入れておく。

たったそれだけで世界が変わる!?

実際の操作ログは以下の通り。(赤字がタイプしたもの)

Microsoft Windows [Version 10.0.17763.557]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\nscka>cd \adb
C:\adb>adb devices
List of devices attached
G000N60791340D48 device

C:\adb>adb push mtk-su /data/local/tmp
5938 KB/s (30464 bytes in 0.005s)
C:\adb>adb shell
shell@suez:/ $ cd /data/local/tmp
shell@suez:/data/local/tmp $ chmod 755 mtk-su
shell@suez:/data/local/tmp $ ./mtk-su -v
param1: 0x1000, param2: 0x8040, type: 9
Building symbol table
kallsyms_addresses pa 0x40aa4700
kallsyms_num_syms 66790, addr_count 66790
kallsyms_names pa 0x40b27000, size 832894
kallsyms_markers pa 0x40bf2600
kallsyms_token_table pa 0x40bf2f00
kallsyms_token_index pa 0x40bf3300
Patching credentials
init_task VA: 0xffffffc000e3a960
Potential list_head tasks at offset 0x368
0xffffffc020120368 0xffffffc031083168 0x000000000000008c
comm swapper/0 at offset 0x5e0
Found own task_struct at node 0
real_cred VA: 0xffffffc0672b9380
Parsing avc_denied
ffffffc00027629c+20: ADRP x0, 0xffffffc000f46000
ffffffc00027629c+24: LDR [x0, 2116]
selinux_enforcing VA: 0xffffffc000f46844
Setting selinux_enforcing
Selinux is already permissive
New UID/GID: 0/0
starting /system/bin/sh
shell@suez:/data/local/tmp # cd /sdcard/download/fonts
shell@suez:/sdcard/download/fonts # sh setfonts.sh
Welcome to SetFonts.sh
Replace Mine Fonts-image(container.sqfs) (y/n)?
y
Select Font No.
1 AozoraMincho
2 KosugiMaru
3 Kosugi
4 MPLUS1p
5 MPLUSRounded1c
6 NotoSansJP
7 NotoSerifJP
8 SawaragiGothic
9 SwarakiMincho
2
mount -o remount -rw /system
rm /system/sqfs/container.sqfs
cp sqfs/container.sqfs /system/sqfs
chmod 644 /system/sqfs/container.sqfs
-rw-r--r-- root root 87707648 2019-06-18 16:35 container.sqfs
rm /system/etc/fonts.xml
cp fonts_xml/fonts_KosugiMaru.xml /system/etc/fonts.xml
chmod 644 /system/etc/fonts.xml
-rw-r--r-- root root 22758 2019-06-18 16:35 fonts.xml
Do you want to reboot? (y/n)
y
C:\adb>

その直後にYahoo!を表示してみた。

Screenshot_2019-06-18-16-39-58.png
これが2 KosugiMaru。

ちょっとした解説(*´ω`)↓

container.sqfsとはSquashFS。
SquashFSとは、Linux向けの 圧縮された読み込み専用ファイルシステムである。
Kindle Fire HD 10では、fontsフォルダを圧縮した読み込み専用ファイルシステム。
オリジナルから削除したフォントは絶対に使われないフォント(fonts.xmlに記述無し)を基本とした。

fonts.xmlの変更部分は"ja"で探せばすぐに見つかる。
weightは400と700、フォントはMediumとBoldのみを格納。

ちょっとした便利技(*^^)↓

FireHD10をroot化している人は、fonts内のものすべてをTermuxのホームフォルダーにコピーしておくと便利ですよ。
su
sh setfonts.sh
これだけで簡単にフォントを切り替えられます。

posted by 62歳のガジェットオタク!? at 18:04| 山口 ☁| Comment(1) | KindleFireHD10 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
SetFonts.zip ください(TдT) フォント変換がちんぷんかんぷんです。
Posted by 公 at 2019年06月30日 18:06
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: