Android 7.0+ CJK 擴充字 新增額外字庫
Prologue
最近剛好有用手機看書的需求
再加上看的都是一些很古老的書 (ex. 山海經)
自然就會出現許多稀難字
有興趣的朋友可以先到 這裡 看一下自己是不有一堆口 XD
其實就連電腦應該也不少人滿滿的口
那也因為這樣
書看一看就一個口
而那些古字通常都是重要的名詞
我要馬得跳過要馬得去用我的電腦
哪來隨時能用電腦啊
我就看的正爽被卡,豈有此理 =日=
所以我很不爽,就產生了這篇文章…
Intro
先來說說為什麼會出現口
一般我們的裝置中都會有一些預設字體
而我們看到的 “字” 其實是從字體檔中
把 編號
對應 圖形
然後顯示給我們看
那如果字體檔本身不支援到某些編號
自然就印不出那些字啦~ 所以就變成口了
好的 那就開始進入正題
這次要用的字體為 hanazono
(俗稱 花園字體
)
本身支持 CJK
Ext.A
~ Ext.F
而最新的擴充區只到 G
等於說 花園字體
目前幾乎全包了各種詭異中文字,字量堪稱龐大
也讓我們期待什麼時候更新 Ext.G
進去吧XD
Notice & Tools
- 注意
:::danger
> ROOT Only <接下來會動到系統
如果不會救磚,請不要恣意操作
:::沒有 root 的檔案瀏覽器是沒辦法動到系統的喔
當然你也可以用adb shell
沒有 Root,不叫 Android [name=chess]
工具
- MiXplorer
- 先跟各位介紹一款 Android 上目前我認為最神的檔案瀏覽器
這不是工商,因為我沒收錢
至於它有多強大的功能,各位可以自己去看看 - 接下來的操作你會大量需要它
- 先跟各位介紹一款 Android 上目前我認為最神的檔案瀏覽器
- MiXplorer
所需檔案
HanaMinA.ttf
,HanaMinB.ttf
(下載花園字體解包獲得)/system/etc/fonts.xml
/system/fonts/
Tutorial
先將
HanaMinA.ttf
,HanaMinB.ttf
複製到/system/fonts/
底下
並將這兩個檔案權限設定為644
(-rw-r--r--
)
並且擁有者
與群組
確定為root
打開
/system/etc/fonts.xml
開始修改
直接拉到底部1
2
3
4
5<family lang="zg">
<font weight="400" style="normal">MyanmarSangamZawgyi-Regular.otf</font>
<font weight="700" style="normal">MyanmarSangamZawgyi-Bold.otf</font>
</family>
</familyset>你會看到一堆類似的東西,裡面內容物可能不一樣
不過沒關係
我們只需要找到</familyset>
在它的前面新增東西即可1
2
3
4
5
6
7
8
9
10
11
12
13<family lang="zg">
<font weight="400" style="normal">MyanmarSangamZawgyi-Regular.otf</font>
<font weight="700" style="normal">MyanmarSangamZawgyi-Bold.otf</font>
</family>
<!-- custom CKJ Extension begin -->
<family>
<font weight="400" style="normal">HanaMinA.ttf</font>
</family>
<family>
<font weight="400" style="normal">HanaMinB.ttf</font>
</family>
<!-- custom CKJ Extension end -->
</familyset>那兩段灰色字之間就是我們自己新增的段落
儲存之後
重開瀏覽器去看上面一堆口的網頁是否有正常顯示那些字
有顯示那些奇怪字就代表成功囉~
Epilogue
雖然說整個教學區塊非常短就結束了
但我幾乎都要爬爆 Google 了才找到解答 QQ
主要是因為網路上的教程幾乎都是在處理多字重的問題
完全沒看到討論擴充字
花了幾天終於看到一篇作者自己寫了 Magisk 套件來處理這個問題
我也去分析了這個專案到底如何做到這個功能
也因此才完整理解了 font.xml
這份文件的運作原理
再來就是為什麼標題會寫 7.0+
呢?
是因為 Android 7.0 之後的字體 loading 方式有所變更
目前為止到 10.0 應該都是可以用的 (?
在之前都是由 fallback_fonts.xml
與 fonts.xml
共存來處理
而在 7.0 之後直接捨棄了 fallback_fonts.xml
並將整個 fonts.xml
重寫
使得檔案減少但是功能卻更齊全也更容易讀懂
最後的最後我一定要噴一下
原本用了這支 ASUS Zenfone 3 Deluxe 一年多就不維護系統
這支是旗艦機欸 ASUS 大大
連原本自家論壇都被抹掉 一堆資料都找不太到
這些綜合因素讓我很不爽
一度有了這隻壞了就想要跳坑 iPhone 的想法
但經過這次之後我覺得還是 Android 比較香
喔絕對不是 ASUS 香
我以後不會再買這家的手機了
再加上 iPhone 感覺越來越沒有特別突出的地方
所以最後決定還是要留在我大安卓自由國度~
不知道這隻什麼時候會壞掉 我想換 Pixel ~
如有任何指教 歡迎發信給我~