Google Play出現DF-DFERH-01錯誤的分析與修復
背景
換了陪伴了兩年的MI5,換上了MIX2s。嗯……可是換機的數據遷移和初始化實在是工程量巨大。
當然,沒有Google全家桶的安卓機是不完美的。
於是問題來了。
錯誤描述
與MI5不同的是,MIX2s自帶谷歌框架。
但是出廠並不標配Google Play,需要在應用商店裡安裝。(當然,小米官方是沒有的,需要拉到最下面「在百度中搜索」或「在豌豆莢中搜索」)。
首次登陸的時候,並不會遇到什麼問題(前提是配置好紙飛機)。但是,在重新啟動Google Play,或者重啟手機後,再次使用均會出現「DF-DFERH-01」的錯誤。
只有清除Google Play應用數據後,才能恢復原狀。但是,一旦重啟應用或機器,錯誤就會重現。
錯誤分析
錯誤信息是,即從伺服器獲取信息失敗。但是,顯然我的紙飛機沒有問題啊(別問我怎麼知道的)。依靠錯誤代碼在網路上搜索了半天,並不能找到有效的解決方法,清數據、重新登陸谷歌賬號,都沒有用。但是谷歌的其他服務可以使用(賬戶同步等)。甚是奇怪。
最終,還是本國的論壇更加了解國情。在MIUI論壇中,我找到了相關信息。
在MI5中,由於系統並不自帶谷歌框架,所以我安裝的是原生的谷歌服務,連接谷歌服務的域名均為後綴。但是,小米自帶的谷歌服務,域名存在後綴,問題就在於此。
使用抓包工具對Google Play的數據進行分析,發現了以下數據包:
小米自帶的谷歌服務,在Google Play啟動的時候,會向獲取數據,而正常情況下(國際版),應是。在國內,由於眾所周知的原因,並不會指向谷歌伺服器,而是指向了北京某公司的伺服器。
以下是使用國內兩台主機獲取的host數據:
查詢這類ip地址的歸屬地,發現均歸屬於北京:
數據來源:ip138.com
而使用國外的主機獲取host數據,就截然不同。以下是使用新加坡以及加州的伺服器獲取的數據:
查詢ip歸屬,均屬於谷歌公司:
數據來源:ip138.com
由此,只要將換成國外的DNS伺服器進行解析,即可。
修復方案
最簡單的方法就是在紙飛機中操作。
如果想要省事,可以直接開啟,即把所有的DNS請求發送到牆外進行處理。但是這樣會導致訪問國內的一些服務出現延遲。
所以,最好的方法還是把路由方式改成自定義規則,先導入GFW List,再添加如下一條規則:,並設定為「域名及其所有子域名」。
最後,祝大家在互聯網中,學習愉快!
TAG:裂帛碎玉的想法 |