[筆記] Android fonts.xml (Android 5 以及之後) 相關資料整理

歷代 Fonts.xml (Android 5 以及之後) 變化

檔案整理於

FONTS.XML MD5SUM:
MD5SUM Android Version ROM Version Android File Path
12c0319bc14467859118d745fd3af561 5.1 CyanogenMod 12.1 /system/etc/fallback_fonts.xml
8b602c6cb8bef4090c14393ac297cad3 5.1 CyanogenMod 12.1 /system/etc/system_fonts.xml
a57d8700822991d0247b7da9eecc09cc 5.1 CyanogenMod 12.1 /system/etc/fonts.xml
18bf02d3119c1e7da10253f692fd4ae9 6.0 CyanogenMod 13.0 /system/etc/fallback_fonts.xml
18bf02d3119c1e7da10253f692fd4ae9 6.0 LineageOS 13.0 /system/etc/fallback_fonts.xml
8b602c6cb8bef4090c14393ac297cad3 6.0 CyanogenMod 13.0 /system/etc/system_fonts.xml
8b602c6cb8bef4090c14393ac297cad3 6.0 LineageOS 13.0 /system/etc/system_fonts.xml
b1287f070ead344a90389f78226df4b7 6.0 CyanogenMod 13.0 /system/etc/fonts.xml
b1287f070ead344a90389f78226df4b7 6.0 LineageOS 13.0 /system/etc/fonts.xml
f023a9f964eebaca5fc15d1a6b6ff8e2 7.1 CyanogenMod 14.1 /system/etc/fonts.xml
f023a9f964eebaca5fc15d1a6b6ff8e2 7.1 LineageOS 14.1 /system/etc/fonts.xml
272e1a4d92cb1e9ca7c816f51f0a085f 8.0 LineageOS 15.0 /system/etc/fonts.xml
38fa5db6511199f46cc6caa6f347775c 8.1 LineageOS 15.1 /system/etc/fonts.xml
9bd32ef3ac58871ee7e71dda1953bc55 9 LineageOS 16.0 /system/etc/fonts.xml
4e6d4131072e245d82e89fecfc2ec173 10 LineageOS 17.1 /system/etc/fonts.xml


歷代第三方刷機包 System 分割區映像的封裝方式

版本System 分割區封裝方式
CyanogenMod 12~12.1
(Android 5~5.1 Lollipop)
無封裝
CM 13 / LineageOS 13
(Android 6 Marshmallow)
system.new.dat
system.patch.dat
system.transfer.list
CM 14.1 / LineageOS 14.1
(Android 7.1 Nougat)
system.new.dat
system.patch.dat
system.transfer.list
LineageOS 15
(Android 8 Oreo)
system.new.dat
system.patch.dat
system.transfer.list
LineageOS 15.1
(Android 8.1 Oreo)
system.new.dat.br
system.patch.dat
system.transfer.list
LineageOS 16
(Android 9 Pie)
system.new.dat.br
system.patch.dat
system.transfer.list
LineageOS 17.1
(Android 10 Q)
system.new.dat.br
system.patch.dat
system.transfer.list


Android 稀疏映像資料格式 (sparse Android data image, sdat) (.dat) 轉換爲 System 分割區映像檔的參考資料:


[XDA 開發者討論區] Android 韌體重新打包工具(支援到 android-8 (Oreo)(android-9 (Pie) 測試版 )): 

[Github] sdat2img - Android 稀疏映像資料格式 (sparse Android data image, sdat) (.dat) 轉換為 System 分割區映像檔 (.img): 


將 Android 稀疏映像資料格式 (sparse Android data image, sdat) (.dat) 轉換爲 System 分割區映像檔:
此例將 sdat2img.py 放置於 ~/tool/sdat2img 下:
$ ~/tool/sdat2img/sdat2img.py
用法: sdat2img.py <transfer_list> <system_new_file> [system_img]

    <transfer_list>: transfer list 檔案
    <system_new_file>: system new dat 檔案
    [system_img]: 輸出 System 映像檔


造訪 xda thread 以取得更多資訊。

按下 ENTER 離開...
$ ~/tool/sdat2img/sdat2img.py system.transfer.list system.new.dat system.img


有關於 Brotli 無損壓縮演算法封裝格式:


Google 在 Android 8.1 更改了 System 分割區映像的封裝方式,採用了 Brotli 無損壓縮演算法做爲新的封裝方式。

[Wikipedia] Brotli: 

[XDA] system.new.dat.br 解封裝爲 system.new.dat


system.new.dat.br 解封裝爲 system.new.dat 的指令:
$ brotli -h
用法:brotli [選項] ... [檔案] ...
選項:
  -#                          壓縮等級(0-9)
  -c, --stdout                在標準輸出上寫入
  -d, --decompress            解壓縮
  -f, --force                 強制輸出檔案並覆蓋
  -h, --help                  顯示此說明並離開
  -j, --rm                    刪除來源檔案
  -k, --keep                  保留來源檔案(預設)
  -n, --no-copy-stat          不複製來源檔案屬性
  -o 檔案, --output=檔案      輸出檔案(僅當只有一個輸入檔案時)
  -q 數字, --quality=數字     ​​壓縮等級(0-11)
  -t, --test                  測試壓縮檔案的完整性
  -v, --verbose               列出過程
  -w 數字, --lgwin=數字       設定 LZ77 視窗大小(0, 10-24)
                              視窗大小= 2 ** NUM-16
                              0 讓壓縮器選擇最佳的值
  -S 副檔名, --suffix=副檔名  輸出檔案副檔名(預設:‘.br’)
  -V, --version               顯示版本並離開
  -Z, --best                  使用最佳壓縮等級(11)(預設)
可以合併一些簡單的選項,即 ‘-9kf’ 等效於 ‘-9 -k -f’。
沒有指定 “檔案” 或 “檔案” 的值為 - 時,讀取標準輸入。
‘-’ 之後的所有參數均視為檔案。
$ brotli --decompress system.new.dat.br -o system.new.dat

這個網誌中的熱門文章

[雜物] 自製的 Magisk 字型模組與一堆無趣的小玩意兒

[筆記][Void glitch] 捕捉謎之場所阿爾宙斯的最低必要條件

[蒐集] 刷機資源蒐集與記錄