[app軟體] 米家app地區限制支援台灣版本 android

此方法已無效,請滾動到最底下的2022/10/21新說明

plugin_device_list_pref.xml
https://drive.google.com/file/d/1P18RtEIJC-D6jSd_IpTZ9DT_6En4T1Oz/view?usp=sharing

-------------
2018/07/24 ADB 備份修改

安裝ADB SDK

Java JDK

abe.jar
https://sourceforge.net/projects/adbextractor/
解開壓縮檔後找到abe.jar

手機開啟 開發人員選項 USB偵錯(連接USB進入偵錯模式)

手機USB連接電腦 以下是在MAC環境 開啟終端機




單獨備份 米家app
adb backup -f backup.ab com.xiaomi.smarthome

將備份檔解壓縮成.tar
java -jar abe.jar unpack backup.ab backup.tar

將.tar解壓縮
dd if=backup.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -

取得.tar封包路徑清單
tar -tf backup.tar > backup.list

電腦上的路徑 根據備份位置
apps/com.xiaomi.smarthome/sp
接著將plugin_device_list_pref.xml 放入解壓縮出的資料夾
米家掃地機器人路徑,也可同時更換apk檔案
apps/com.xiaomi.smarthome/f/plugin/install/mpk/134/


修改完成後重新重新封包成為.tar
tar -zcvf backup1.tar 路徑名稱/apps/com.xiaomi.smarthome

把初始的.tar路徑清單重新放回
cat backup.list |pax -wd >backup1.tar

重新打包成備份檔
java -jar abe.jar pack backup1.tar backup1.ab

回復米家app手機備份檔
adb restore backup1.ab


ADB修改方式,
只是需要在電腦上透過指令修改,這個方式是將手機內的米家app
資料備份到電腦上,接著置換檔案,再將備份檔重新打包放回。

windows環境沒有測試,ADB備份網路上有很多教學,就不詳談



--------------------------------
米家app 官網
http://app.mi.com/details?id=com.xiaomi.smarthome

開啟終端機
米家5.1.39版本
apktool d com.xiaomi.smarthome_5.1.39.apk

會得到以下資料夾




接著開啟assets

米家app地區限制支援台灣版本 android
開啟plugin_config


使用文字編輯器 去編輯plugin_config.json


pd_id 為產品編號 
icon 開頭為圖示,依照裝置狀態不同,所顯示不同圖示
model 就是該產品型號,大部分都是以此為判別
name 在app當中顯示的名稱
其餘的一些代碼就是相關的預設值

關於台版裝置的資訊
可以在米家5.3.19版本得到

同樣使用apktool 之後得到資料夾,進入plugin_config


可以發現原本的單一檔案被拆成4個,分別代表不同國家

plugin_config_sg.json 內部就含有台版產品資訊,

之後只要將產品資訊加入5.1.39版本的plugin_config.json就可以了。

5.3.19版本就只要將plugin_config_sg.json 資訊加入 plugin_config_cn.json

,通用的部分不需要加入。

使用apktool b com.xiaomi.smarthome_5.1.39

重新編譯,apk會生成在資料夾dist



生成之後還是不能使用,需要resign apk

signapk.sh

生成resign key

keytool -genkey -alias android.keystore

./signapk.sh com.xiaomi.smarthome_5.1.39.apk android.keystore



./signapk.sh com.xiaomi.smarthome_5.1.39.apk
直接調用 debug.keystore

之後就可以放到手機去做測試了。

由於直接放出米家apk會有些風險在,尤其是版權問題。

所以只能透過這種方式來講解,有興趣的人就自行參考。



參考用json,雲端無法含有副檔名json格式
請自行加入副檔名.json

5.1.39 json
5.3.19 json
5.4.10 json

2018/09/06

5.3.19
PluginManager.smali

5.4.10
PluginManager.smali
(此版本還是有刷新問題,用戶體驗計畫不打勾,每次開啟會詢問的問題,不推薦此版本)

路徑
smali>com>xiaomi>smarthome>core>server>internal>plugin

更換PluginManager.smali

重新封包成apk時,米家app過濾掉台版裝置問題,

當安裝完成後,並且登入帳號,雖然加入過的台版裝置會顯示,

但是圖案並不會出現,點擊也沒有反應。

因此在安裝完成後開啟米家app

->登入帳號

->在登入帳號跳回主頁面時關閉所有網路(wifi 3g 4g)

->米家app會顯示沒有網路

->將米家app關閉

->重新開啟網路

->開啟米家app


接著就會正常顯示 塞入的json檔案的產品清單


2019/10/26

由於米家app 5.6.6版本在AndroidManifest.xml

檔案中,把備份選項關閉了,所以找到下面這一行,改成true

application android:allowBackup="true"

改完之後要重新封包跟resign,接著丟回手機重新安裝就可以備份了。


-----
2020/01/26

米家app 俄羅斯論壇

https://4pda.ru/forum/index.php?showtopic=661250

MiHome от vevs 


2022/10/21

此為第三方封裝的米家App,第三方軟體具有一定風險,請自行承擔風險。

請先安裝MiHome от vevs 新版本,不用再使用上面的說明方法。



俄羅斯MiHome от vevs更換plugin

因為米家部分產品區域限制是在plugin中,vevs這位作者也

將大多數的plugin做了一個頁面可供下載


進入網站後可以點選plugins


這時候就可以去找到自己需要的plugin

這裡以米家掃地機1代為例子,下載檔案為1000623.zip



MiHome от vevs 開啟,並且先點選一次掃地機,讓系統自動去下載plugin,

由於自動下載的plugin會對台灣做出區域限制,接著進行手動更換。

請比對下載的編號是否跟手機內的資料夾有相符。


手機中的路徑為

Android-data-com.xiaomi.smarthome-files-plugin-install-rn-100623

接著點進去100623中,還有一個資料夾在,這裡的資料夾名稱為1011880

,接著點選進去後會看到一個資料夾為android,兩個檔案conf.json

跟model_list.json。


接著將剛剛下載回來的1000623解壓縮,會得到一個資料夾名稱android,

將這個檔案取代1011880中的android資料夾即可。


另一組路徑為

Android-data-com.xiaomi.smarthome-files-plugin-download-1000623

裡面有個資料夾1011880.rn,點進去一樣會有一個資料夾為android

這組路徑是下載回來的plugin備份,一但install資料夾檔案有遺失,

就會從這先進行安裝修復plugin。


置換過後重新打開MiHome от vevs app就可以解除掃地機區域限制了。


----------------------------------------

72 則留言:

  1. 您好,用了這篇的方法沒有出現TW 版的裝置
    Android 米家 5.1.39

    回覆刪除
    回覆
    1. 是否有先解除台版的綁定?

      刪除
    2. 台版的沒綁定
      在手動新增裝置輸入tw 沒有出現台版裝置

      刪除
    3. 如果方法1無效,就只能試試方法2了~

      只是非常的煩瑣。

      刪除
    4. 感謝提供修改的APK
      手動新增已會出現TW 的裝置
      但只有出現四樣裝置
      米家恆溫電水壺(有兩個)
      米家智能插座(zigbee)
      米家IH電子鍋

      刪除
  2. TW版插座用您提供的APP安裝檔安裝後有出現台版裝置,但是添加TW版插座失敗

    回覆刪除
    回覆
    1. 還在更正中,請先不要下載!~

      刪除
    2. 我試我的版本是可以加入台版米家插座的。

      刪除
    3. 請問Alexander也是用 Sfan 的方法嗎?

      刪除
    4. 都是用 sfan 大的方法,只是自己改 xml 檔

      刪除
    5. 請教一下,用這個方法的話,台版米家插座可以搭配路版網關嗎?還是需要額外一個台版網關來連接插座?

      刪除
    6. 只用這個方法不夠, 還有其他的 xml 需要修改(那一個 xml, 還在找)

      刪除
    7. Alexander 能不能提供您的版本?
      謝謝

      刪除
    8. Sfan 大,提供新方法了,你可以試試。

      刪除
    9. Alexander 您的插座是配台版網關嗎?

      刪除
    10. 請問目前有辦法完美修改台版智慧插座了嗎? 我的台版網關壞了,目前用的是最新的陸版多模網關

      刪除
  3. https://mega.nz/#!ueZQ0QoQ!WTUyPNL76pnXeRMOFg0L-s1Ep_B1dhpYttE3bsBtwxs

    回覆刪除
  4. 沒root 只有備份法可以,
    掃地機請參考http://shu-fan.blogspot.com/2017/11/ios.html

    回覆刪除
  5. 今天早上使用一直出現 Error: Unable to access jarfile abe.jar

    回覆刪除
    回覆
    1. java 環境設置的問題,或者是檔案資料夾指向問題,
      設置的問題直接google找會比較快。

      刪除
  6. 那可能要比對一下版本,有可能是新產品,所以json檔裡沒有相關資訊,先找到產品型號pd_id ,之後去找一下是否有在覆蓋的json檔裡面有,如果沒有就要知道相關的資訊,重新寫入json檔裡。

    回覆刪除
  7. plugin_device_list檔會在安裝米家app之後生成,有人反應修改了之後一樣無效,因為app會去刷新list檔案,所以才拿掉這個方法。
    因此直接重新封裝米家apk才是有效的方式。

    回覆刪除
  8. plugin_device_list_pref.xml 的方式就只能用備份法有效果,直接置換就沒辦法。
    所以就是備份法跟重新封裝apk選一種!~

    或者其他人的方式如以下連結

    https://zonglong.wordpress.com/2018/06/26/script-%E9%97%9C%E6%96%BC%E5%B0%8F%E7%B1%B3%E6%8E%83%E5%9C%B0%E6%A9%9F%E5%99%A8%E4%BA%BA%E7%9A%84%E5%9C%B0%E5%8D%80%E9%99%90%E5%88%B6/

    回覆刪除
  9. ‹string › ‹/string›
    以上面的格式作為單一產品的分隔,如果看不懂,可以先將地區設定為台版,去抓取台版產生的plugin_device_list_pref.xml的產品資訊,之後該品項擷取填入陸版就可以,大致上的做法是這樣。

    不過初期的做法,並不是填入台版全部資訊,而是修改部分string name為台版名稱,不過因為後期部份產品會被米家app給過濾掉,所以就放棄這個方式了。

    回覆刪除
  10. 留言都不成功..怪怪...

    請問 adb backup 出來的backup.ab 都只有1 k(41 byte)
    是那邊的問題呢?

    回覆刪除
    回覆
    1. 指令打錯,或者權限不足導致

      刪除
    2. 指令是照著您上面的指令
      (也有用 https://zonglong.wordpress.com/2018/06/26/script-%E9%97%9C%E6%96%BC%E5%B0%8F%E7%B1%B3%E6%8E%83%E5%9C%B0%E6%A9%9F%E5%99%A8%E4%BA%BA%E7%9A%84%E5%9C%B0%E5%8D%80%E9%99%90%E5%88%B6/ 這個script)

      都是一樣

      權限是手機的權限還是電腦的權限呢?
      昨晚先用 cygwin, 今天改用MAC
      都一樣......

      謝謝

      刪除
    3. 手機是android 7.0 以上版本嗎?

      刪除
    4. 米家app版本是?
      如果官方使用了allowBackup 關閉的話
      那就一定要root才能更動備份了。

      刪除
    5. 米家APP是 5.0.19跟5.4.5(google play 直接安裝) 都試過
      手機有Root (紅米3, 老手機拿來亂玩)
      Android 幾版...要回家確認

      刪除
    6. 有些手機會把 adb 備份功能關掉, 所以, 這類手機只能用 root 的方法, 置換 xml 檔.

      刪除
  11. 您好~想請問我是全用台版的,最近買了陸版的小方1S不能加入但切換大陸地區就可以安裝小方1S請問這樣可以改嗎?把陸版小方加入我的台灣區裡

    回覆刪除
    回覆
    1. 可能要測試備份法,重新封裝的方式可能會在選地區的時候刷新產品清單。

      刪除
    2. 台區米家的 xml 沒有小方設定, 所以, 一定要改 xml, 照 SFan 大的方式, 應該可以把陸版小方加入台區米家, 但是, 沒親自試過, 無法保證.

      刪除
    3. 我也覺得應該是可以的,只是2種方法我都沒用過要有時間研究,台版真的出好慢家裡快20個裝置也沒辦法轉陸版了

      刪除
  12. 大大你好,我想問能跟你伸手要小米的 apk 嗎? 我是用陸版的網關,但手上有兩枚台版的 插座,想說能不能在 pc 的 android 模擬器 (以 root),直接把 apk 灌進去安裝好後就收工了,先感謝

    回覆刪除
    回覆
    1. 陸版網關跟台版插座不能共用

      刪除
    2. 沒錯不能共用的,所以你的插座等於沒用了除非你再買個台版網管,我就是用台版的狠多陸版都不能用

      刪除
    3. 樓上的,可以喔。改 plugin 即可。

      刪除
    4. Alexander 陸版網關跟台版插座可以共用?

      刪除
  13. 台版出的插座不是WIFI版的喔,這樣也行??

    回覆刪除
  14. 請問石頭掃地機台版要在大陸區米家app使用,是改plugin.apk好還是改米家.apk?? 改米家apk是不是同上法??
    謝謝

    回覆刪除
    回覆
    1. 掃地機額外會下載一個xxxxx.apk,x為當時後的版本編號,地區限制在apk中,所以跟這裡的方式無關

      刪除
  15. 我在PC上操作過apk編譯,反編譯,能不能請前輩提點一下要修改或增加替換的地方??

    回覆刪除
  16. 你好 請問如果只是想用 台灣網關
    是不是用ADB 備份修改就可以了?
    置需要改plugin嗎?

    回覆刪除
    回覆
    1. 我自己的手機用備份法,要加入台版資訊是無效,不過有些人回報是可以加入的,所以你要自己測試看看了。

      刪除
  17. 有三個問題請教
    1. 用這種方式加入的裝置,在ios上可以正常控制嗎,我現在會出現裝置初始化失敗?
    2. 我使用上面大大分享的5.3.19版程式,剛打開程式的時候可以看到塞入的tw裝置(https://imgur.com/a/l7lK9Zo),但是過不久清單會自己更新(https://imgur.com/a/R5na9Nf),此時可以看到台版智慧插座,但是無法新增,其他台版裝置會被蓋掉,是因為清單太舊,所以才會自己更新嗎?
    3. 我趁清單還沒更新之前有順利加入台版網關,但是無法點進去控制網關內容,可是使用場景可以把夜燈打開,是哪邊有出錯嗎,還是一樣是程式版本太舊的關係?

    回覆刪除
    回覆
    1. 1.目前只能在android上使用,初始化失敗就是因為沒有對應的下載資訊。
      2.ios 每次都會刷新list,也會檢查list大小,不符合都會被強制刷新,所以才會沒有ios加入list的方式。
      3.UI端雖然可以進入,但是進入的同時list早已經更新,所以就沒辦法控制。

      刪除
    2. 我的問題2, 3 都是使用android進行操作唷

      刪除
    3. PluginManager.smali 這個是否有一同放入?
      不過隨著版本更新,也會導致list被強制更新,
      由於沒有再研究到底是哪部分觸發導致更新的。
      在pluginmanager裡面有好幾種觸發更新的方式,當初阻止更新
      也可能不是太完整。

      刪除

  18. 請問我都用陸版的商品 app地區也選大陸,但今天從qoo10網路上買來的空氣清淨機S2居然是台灣版的,明明是從大陸寄的,現在有辦法在設定成大陸版嗎,因為地區選大陸一直初始化失敗,非要我選台灣才能連線成功

    回覆刪除
    回覆
    1. 要改成陸版只能刷韌體的方式,目前的方式是透過修改米家app的裝置清單,加入台版資訊。
      另外也有自行架設Home Assistant將設備導入控制,
      由於google home目前可以連結米家app,掃地機可以做語音控制,
      空氣清淨機是不是全系列都可以連結,這部分我不清楚。

      刪除
    2. 你收到的應該是國際版的,國際版在陸區裝置清單是沒有資訊(台版的是有的)

      刪除
  19. HI板大
    我到unpack那邊就卡住了,顯示下面訊息
    Error: Unable to access jarfile abe.jar
    我在環境變數的path也有加上Java的路徑了
    還是不知道問題在哪QQ
    還是能跟板大直接拿apk檔呢~

    回覆刪除
    回覆
    1. 缺少了abe.jar
      https://sourceforge.net/projects/adbextractor/
      解開壓縮檔後找到abe.jar

      刪除
    2. 請問abe.jar是放在bin資料夾下嗎

      刪除
    3. 現在到這邊又出現這樣

      c:\platform-tools>dd if=backup.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -
      'dd' 不是內部或外部命令、可執行的程式或批次檔。

      刪除
    4. 後來我直接用解壓縮軟體解壓縮,但是後面又遇到一個問題
      c:\platform-tools2>cat backup.list |pax -wd >backup1.tar
      'cat' 不是內部或外部命令、可執行的程式或批次檔。

      求大大幫忙~~這步似乎蠻關鍵的
      不這樣做似乎沒辦法讓apk成功還原...

      刪除
    5. windows 環境 可以參考這一篇
      https://www.mobile01.com/topicdetail.php?f=566&t=3019116
      https://www.mobile01.com/topicdetail.php?f=566&t=3177721&p=1


      刪除
  20. 我用方法一, 還原回去之後, 在清單裡還是沒看到TW的裝置, 而且假如有替換米家掃地機的apk, 不知道為什麼在裝置列表點我的裝置都沒辦法跑出副程式。
    方法二的話則是卡在resign apk那

    沒root真的好麻煩, 想放棄了..., 小米這樣搞真的很煩

    回覆刪除
    回覆
    1. 最簡單的方式就是用雙開軟體,一個登入陸版一個登入台版。

      刪除
    2. 是的, 在我找到Sfan大的BLOG之前就是那樣用,不過我是用兩個使用者分別開, 因為我試過同個使用者下雙開米家APP, 第2個米家的副程式沒辦法正常運作,我的需求是只有要用台版掃地機,沒辦法用副程式就沒意義了.
      目前這樣還是能把掃地機加入自己裝置清單, 主要是被限制無法進到掃地機副程式, 唯一的安慰是至少還能透過"快捷操作卡片"來控制掃地機掃地或是回充,希望不要改掉這個 , 哈哈

      刪除
    3. 如果不是很在意其他功能,單純要控制啟動跟停止還有回充,明天會發另一篇用Google home控制的文章,台版跟陸版目前是沒有限制的。

      刪除
  21. 你好: 我依照您的步驟可是沒有出現dist這個資料夾,我的版本是5.319的,另外resign apk這部分看不太懂,我大概有查一下是否重新給apk檔金鑰?我目前想用的是讓台版的多功能網關可以接收到天然器偵測器,我看您提供的 plugin_config_cn.json裡面有這項,這樣應該可以用吧? 不好意思, 麻煩您了~~

    回覆刪除
    回覆
    1. 無法出現dist就是重新封包部分有錯誤出現,沒有resign軟體就無法安裝,網關部分我沒買,所以我不清楚是不是能連接天然氣偵測。

      刪除
  22. 買了陸版的插座WIFI版的, 想加入米家(台灣地區)使用,
    是否從 plugin_config_cn.json 提取出 陸板插座產品資訊,
    加入 plugin_config_sg.json ,再封裝APK檔即可??
    APK重新安裝後,
    還是找不到該插座?
    產品清單也看不到.

    回覆刪除
    回覆
    1. 不同,這裡討論的都是直接設定地區為大陸,而不是將陸版資訊加回台版,畢竟陸版提供的資源比較多。

      刪除
  23. 你好不知道能不能跟你要已經修改好的apk 我只想要接入台版插座 手機沒root很麻煩...我的mail: yk123u@gmail.com
    感謝您

    回覆刪除
  24. 大大你好 我手機沒ROOT 最近也買了台版石頭S6 APP是大陸的 因為有用陸版WIFI開關 目前只能雙開

    有裝過VEVS的APK 可以新增台版S6機器人但是會出現該設備無法在中國地區使用APP

    看了老半天 實在看不懂.....可以跟你要個修改好的APK jay8064313@hotmail.com 新年快樂

    回覆刪除
    回覆
    1. 石頭掃地機我沒買,去別人的網誌那邊找找有沒有喔~

      刪除
  25. 這樣似乎很難持續..米家每改一版就要改一次..
    不知是否有外掛APP可以用補強清單方式加入列表?

    回覆刪除