Android のシステムフォントを Noto Sans CJK JP から Koruri に置換する Magisk モジュールを、Magisk V20.2以降向けのものに更新しました。
system-less でフォント置換
Android では基本的に Noto Sans CJK JP が日本語フォントとして利用されていますが、個人的には丸みを帯びた Koruri のほうが見やすいので、日本語フォントを Koruri に置き換える Magisk モジュールを作成しました。
Koruri は M+ OUTLINE FONTS と Open Sans を合成したオープンソースのフォントです。
Magisk モジュールはこちらからZIPファイルをダウンロードし、Magisk Manager でインストールしてください。(ソースコードはこちら)
これまでの Magisk では Magisk Module Template が使われていましたが、Magisk V20.2では新しい Magisk Module Installer へと変更されたため、v08で新しい形式に対応するようにしました。
Magisk V20.2より前のバージョンを使っていて何らかの理由で Magisk 本体をアップデートできない場合は、こちらからv07をダウンロードしてください。
インストールして再起動すると、日本語フォントが Koruri に置き換わります。英数字の表示も Koruri と合わせられるよう、日本語フォントだけでなく Roboto も Open Sans へと置き換えています。
なお、OnePlus 8TなどAndroid 11ベースの場合はOnePlus Sansになっていると中華フォントになってしまうため、言語設定を英語にしてCustomization → Font → Robotoに設定した後言語を戻してください。
Koruri-20180915 を使用しているため、ロック画面の”fancy colon” (U+EE01) が豆腐になる問題も解決されています。
モジュール作成がより簡単に
これまでのテンプレートだと更新がある度に色々なファイルを書き換えないといけなかったのですが、Magisk Module Installer では更新が必要なファイルは update-binary
のみになりました。update-binary
はここからダウンロードできる module_installer.sh の名前を変えたものです。
モジュールのディレクトリ構成:
module.zip
│
├── META-INF
│ └── com
│ └── google
│ └── android
│ ├── update-binary <--- module_installer.sh をリネームしたもの
│ └── updater-script <--- "#MAGISK"とだけ書かれたテキストファイル
│
├── customize.sh <--- (動作をカスタマイズしたいときだけ追加)
│ update-binary から読み込まれる
├── module.prop <--- モジュールのメタデータを書くファイル
│
├── system <--- マウントされるフォルダ
│ ├── ...
│ ├── ...
│ └── ...
│
│ *** 任意 ***
│
├── post-fs-data.sh <--- post-fs-data で実行されるスクリプト
├── service.sh <--- late_start サービスで実行されるスクリプト
├── uninstall.sh <--- Magisk がモジュールを削除した時に実行されるスクリプト
├── system.prop <--- このファイル内のプロパティが resetprop によりシステムプロパティとして読み込まれる
├── sepolicy.rule <--- カスタム sepolicy ルール
|
module.propには
id=<string>
name=<string>
version=<string>
versionCode=<int>
author=<string>
description=<string>
という形式でモジュール名やバージョンを書きます。
system 以下にファイルを追加したければ system フォルダを作ってその中にファイルを入れます。(例: /system/etc/example を追加したい場合、system フォルダの中に etc フォルダを作り、etc フォルダに example ファイルを入れる)
vendor、product 以下にファイルを置きたい場合は、ルートディレクトリではなく system フォルダ内にvendor、product フォルダを作ってください。
モジュール作成とメンテナンスが簡単になりましたが、モジュールを削除した時に実行される uninstall.sh スクリプトやカスタム sepolicy ルールを追加できる sepolicy.rule などが増えたため、従来より柔軟なカスタマイズができるようにもなっています。
詳しくは Developer Guides をご覧ください。