Prism

2020年8月14日 星期五

小米手環5 - 01 錶盤修改

< 本文請勿轉載,謝謝 ! >

小米運動APP中 小米手環5 內建的錶盤不少,網上還有第三方提供的錶盤市場,加起來也有上百個可選,還再持續增加中,真的可以找到喜歡的錶盤,但有的錶盤想改 一週的語系、日期中日和月的前後順序、背景、人物更換...等等,讓錶盤更接近自己的喜好和習慣,看了錶盤市場AmazFaces討論區的說明,可以簡單的自己動手更改錶盤或自製錶盤...

錶盤市場 AmazFaces - https://amazfitwatchfaces.com/mi-band-5/fresh


一、下載 解封、封裝錶盤程式

請至下方連結 AmazFaces 討論區下載 解封、封裝錶盤程式  MiBandWFTool_2.1.6.zip,將其解壓縮在電腦目錄下即可 (討論區中有說到,解壓後若防毒軟體警告 WFPreview.exe 有木馬,可將其刪除,留下其它檔案即可)
https://amazfitwatchfaces.com/forum/viewtopic.php?f=29&t=720


二、解封錶盤

這邊找一個簡單的錶盤作說明:
1. 手機選擇小米運動APP中的錶盤 "交錯空間",並將"交錯空間"上傳至小米手環5作錶盤,則在手機上會甶留存"交錯空間"的本機錶盤資料。


2. 請將手機連接至電腦小米運動APP (4.4.0版) 中小米手環5 "交錯空間"錶盤資料位於電腦目錄

"本機\(手機名稱)\內部儲存空間\Android\data\com.xiaomi.hm.health\files\watch_skin_file\58"

依下載錶盤的多寡,內有一至數個長串英數字的目錄,查看各目錄內的 Png 圖檔可知該目錄是那一個錶盤資料,找到"交錯空間"錶盤圖後,將該目錄下副檔名為 bin 的檔案複製至上面MiBandWFTool_2.1.4解壓縮的目錄內。

3. 將上 bin檔案的檔名更改為易記的英文字 (這裏更改為 Sample.bin,方便後面說明使用)。
4. 將 Sample.bin檔案用滑鼠拖拉至 WatchFace.exe ,則會自動解封錶盤至一個新的Sample目錄。


三、修改錶盤

修改錶盤分為二個方面進行

1. Sample.json:
解封下的目錄有一個副檔名為 json 的版面配置檔案,為文字檔,紀錄各個物件圖檔的座標位置和執行方式,如要修改圖標數值的顯示位置,可修改這裏的文字座標。

2. Png圖檔:
目錄下有很多Png圖檔,錶盤上的每個數字、文字、圖示都是由這些圖檔組成,其經由 json 指定座標顯示,如要將英文的星期改為中文的話,可修改星期Png圖檔內容,共有七個Png檔需修改。

json內的格式,依其英文說明大致都可理解各個物件是做什麼的,對照下方Png縮圖簡單介紹如下:

{
  "Background": {		//背景圖 (尺寸 126X294px 96dpi)
    "Image": {
      "X": 0,			//背景圖 左上坐標 X,Y 為 0,0 位置
      "Y": 0,
      "ImageIndex": 0	//使用 0000.Png 圖檔
    },
    "Preview1": {		//預覽圖 3 張
      "X": 18,
      "Y": 17,
      "ImageIndex": 2
    },
    "Preview2": {
      "X": 18,
      "Y": 17,
      "ImageIndex": 3
    },
    "Preview3": {
      "X": 18,
      "Y": 17,
      "ImageIndex": 1
    }
  },
  "Time": {				//時間數字部份
    "Hours": {			//小時
      "Tens": {			//十位數部份
        "X": 22,		//左上坐標 X,Y 位置
        "Y": 54,
        "ImageIndex": 4,	//使用 0004.png 開始的數字圖檔
        "ImagesCount": 10	//共10 張 (可參考下方圖例) 
      },
      "Ones": {				//小時的個位數部分, 格式同上
        "X": 68,
        "Y": 54,
        "ImageIndex": 4,
        "ImagesCount": 10
      }
    },
    "Minutes": {		//分鐘部份, 格式同小時
      "Tens": {
        "X": 22,
        "Y": 119,
        "ImageIndex": 4,
        "ImagesCount": 10
      },
      "Ones": {
        "X": 68,
        "Y": 119,
        "ImageIndex": 4,
        "ImagesCount": 10
      }
    },
    "TimeDelimiterImage": {		//小時和分鐘間的符號
      "X": 82,
      "Y": 154,
      "ImageIndex": 14
    },
    "UnknownV11": 0				//不明, 都有加上這行
  },
  "Activity": {					//活動圖標
    "Steps": {					//步數
      "Number": {                //用數字表示
        "TopLeftX": 0,			//顯示區塊的左上坐標
        "TopLeftY": 244,
        "BottomRightX": 126,	//顯示區塊的右下坐標
        "BottomRightY": 258,
        "Alignment": "TopCenter",	//步數數字在區塊中對齊的方式
        "SpacingX": 0,				//數字的間距
        "SpacingY": 0,				//數字的行距
        "ImageIndex": 15,			//數字使用 0015.png 開始的圖檔
        "ImagesCount": 10			//共10張
      }
    },
    "UnknownV7": 0
  },
  "Date": {								//日期
    "MonthAndDayAndYear": {
      "OneLine": {				//一行模式, 另有日、月分開的模式 Separate 
        "Number": {
          "TopLeftX": 22,			//顯示區塊語法同上
          "TopLeftY": 184,
          "BottomRightX": 68,
          "BottomRightY": 198,
          "Alignment": "Center",
          "SpacingX": 0,
          "SpacingY": 0,
          "ImageIndex": 15,
          "ImagesCount": 10
        },
        "DelimiterImageIndex": 25
      },
      "TwoDigitsMonth": true,                //是否要雙位數顯示月份
      "TwoDigitsDay": true                    //是否要雙位數顯示日期
}, "DayAmPm": {            //顯示上午AM、下午PM "X": 20, "Y": 35, "ImageIndexAMCN": 47, "ImageIndexPMCN": 48, "ImageIndexAMEN": 49, "ImageIndexPMEN": 50 }, "ENWeekDays": {        //星期 英文語系 "X": 74, "Y": 183, "ImageIndex": 26, "ImagesCount": 7 }, "CNWeekDays": {        //星期 繁體中文語系 "X": 74, "Y": 183, "ImageIndex": 40, "ImagesCount": 7 }, "CN2WeekDays": {        //星期 簡體中文語系 "X": 74, "Y": 183, "ImageIndex": 33, "ImagesCount": 7 } }, "StepsProgress": { //步數圓形圖標的設定 "CircleScale": { "CenterX": 63,            //中心點坐標 "CenterY": 245,             "RadiusX": 36,            //半徑 "RadiusY": 36, "StartAngle": 0,        //起始角度 "EndAngle": 360,        //結束角度 "Width": 4,            //線的寬度 "Color": "0x1EDF9B"    //線的顏色 } }, "Status": { "DoNotDisturb": { //勿擾模式 "Coordinates": { "X": 10, "Y": 10 }, "ImageIndexOn": 52 }, "Lock": { //鎖定模弍 "Coordinates": { "X": 42, "Y": 10 }, "ImageIndexOff": 53 }, "Bluetooth": { //藍芽狀態 "Coordinates": { "X": 26, "Y": 10 }, "ImageIndexOff": 51 } }, "Battery": { //電池顯示 "BatteryText": { "Coordinates": { "TopLeftX": 60, "TopLeftY": 10, "BottomRightX": 96, "BottomRightY": 22, "Alignment": "TopRight", "SpacingX": 0, "SpacingY": 0, "ImageIndex": 54, "ImagesCount": 10 }, "SuffixImageIndex": 64 //附加在電量後的 % 符號 }, "BatteryIcon": { //電池圖標 "X": 96, "Y": 10, "ImageIndex": 65, "ImagesCount": 10        //10張,10段 } } }

舉例如要修改
A. 底圖:更換 0000.png 即可,如將其改為藍色 (PS: Png 圖檔必須設為 96dpi 才能使用)

B. 預覽圖 (手環更換錶盤時用來選擇的圖示):更換 0001.png ~0003.png 即可

C. 日期中日、月的順序:
若為 OneLine 語法 需改為 Separate 語法,如原錶盤即為Separate 語法,更換日、月的坐標即可

D. 一週文字語系更改:
一般內建有多國語系,若沒有的話,如上 0026.png~0032.png 的圖,需用繪圖軟體重新用中文建立


四、封裝錶盤

修改完後,將 Sample.json 檔用滑鼠拖拉至 WatchFace.exe ,則會自動封裝錶盤為 Sample_packed.bin 檔,及幾個錶盤預覽圖片。



五、上傳錶盤(手機請先連接電腦)

1. 手機請先關閉小米運動APP,電腦檔案總管移至手機"交錯空間"的目錄位置
"本機\(手機名稱)\內部儲存空間\Android\data\com.xiaomi.hm.health\files\watch_skin_file\58\b7c4c3e35ca8b10b1ca8e835653580c2"

2. 將上四中封裝好的 Sample_packed.bin檔,檔名改為上 1 內 bin的檔名 b7c4c3e35ca8b10b1ca8e835653580c2.bin

3. 將上四中 Sample_packed_static.Png檔,檔名改為 1內 Png的檔名 fae484120a0f79f234837d1b793af0361585454996816.png

4. 將2、3二個檔案複製回 1的目錄中,覆蓋手機"交錯空間"原始錶盤檔案。

5. 手機打開小米運動APP,至錶盤管理的 本機錶盤 就會看到修改好後的錶盤,就可上傳至小米手環5作錶盤使用。 


從網站 錶盤市場AmazFaces下載的錶盤,一樣是同這個步驟更改檔名,再用電腦複製至手機內覆蓋舊錶盤作更換。

AmazFaces也有提供手機APP:https://amazfitwatchfaces.com/awapp
不過現階段好像還不能直接在Android APP內直接更換錶盤,透過上述電腦連線更換是比較方便操作的...


找到喜歡的錶盤,自己動手換上 朋友、小孩、寵物、動漫...等照片,看時間感覺也會不同喔,祝大家身體健康!


02 小米手環5 錶盤製作