小米4 Android 6.0 版本 Root 並安裝 Xposed 框架攻略
本人自 Android 開發入坑一週年以來,向來對Root裝置不太感冒。我對Root的裝置的態度和對蘋果的越獄差不多。大學期間有個舍友越獄了自己的 iPhone,據說從此可以下載許多的收費應用和遊戲,所以越獄給我的映像就是破解軟體的收費限制,Root也差不多。自己成為一名開發者之後,深感 Google 大法好,不 Root 也能把 Android 玩得很好,然而我畢竟還是 too young too simple,在微信群的搶紅包大戰中敗給越獄之後的 iPhone 的搶紅包外掛之後,我決定研究 Android 上的搶紅包外掛。
上 Github 搜紅包外掛,果然層出不窮,知乎大神紛紛表示情緒穩定,談笑間丟擲一個名詞 – AccessibilityService。據說該 API 設計的初衷是為有障礙人士提供更方便的操作手機的的選擇,只要使用者為 App 開啟這個這個許可權的開關,App 就可以模擬使用者對應用進行操作:解析當前介面,點選,等等。我下載了 Github 上一個高 star 的搶紅包外掛,測試了一下,確實可以幫助使用者點開紅包,並拆開,比手點是快了點,但是這個東西一點都不穩定,常常紅包出現了,卻不去點,或者點開了紅包不拆開。另一個問題就是,這樣搶紅包依然太慢,還是要觀看拆紅包的那個動畫,達不到毫秒級搶紅包,與越獄後的 iPhone 搶紅包外掛效能相去甚遠。
另一個容易想到的方法就是在紅包到達時,呼叫微信的拆紅包操作 API(假設能逆向微信程式碼,並且找到對應程式碼),這裡涉及到的技術難點是 Hook 微信的方法,目前有比較成熟的方案便是 Xposed。
Root 小米4
Xposed 需要 Root 許可權,我手上有一個小米4,大概一個月以前跟著 MIUI 升級升到了 Android 6.0.1,發現以前很好用的傻瓜 Root 工具都不能用了,包括 KingRoot, Root精靈,Root大師等等,似乎 Android 6.0.1 對 Root 這件事控制得更加嚴格了。Google 了一圈 “Android 6.0 小米4 Root”的關鍵字以後也沒有找到現成的教程,本來開始有點心灰意冷,突然看到 MIUI 論壇有個人評論,“我還沒發現 SuperSU 不能 Root 的系統”,這下點燃的我的希望。
我找到了一個 SuperSU 的最新版本,然後被一堆名詞看得一臉懵逼。
刷機包使用步驟:
方法一:Recovery 刷入(推薦)
1、下載刷機包,複製到裝置的SD卡中;
2、裝置進入 CWM/TWRP Recovery(原廠 Recovery 不能刷);
3、在 Recovery 中將剛剛複製到 SD 卡的刷機包刷入;
4、重啟裝置,更新完成。
作為一個 Android 開發居然對上面這些名詞完全沒概念真是慚愧。在搜尋引擎裡補了一番課之後,明白了 Recovery 大概是 Android 系統的一種恢復機制,進入這個模式以後可以對系統進行一些修改,包括寫入一些新的內容,甚至重新寫入整個系統。如果要刷入 SuperSU 的話需要使用第三方的 Recovery 寫入,CWM 和 TWRP 都是第三方的 Recovery。
隨即 Google 了 CWM 和 TWRP 的兩個工具的官網, 發現沒有對應小米4 ROM的下載,於是轉戰搜尋國內百度,找到了一個國內大神為小米4定製的 CWM Recovery,然後我需要為我的小米4刷入這個 Recovery。關閉手機,按住音量下鍵與開關鍵開機,手機進入 FastBoot 模式,把手機與電腦使用 USB 線連線起來。把上面提到的 Recovery 解壓以後,裡面有一個檔名叫一鍵刷入Recovry.bat(這裡提一下,本人使用 Windows 系統,如果使用 Mac 或者 Linux 就需要你開啟這個檔案,參考著修改成對應的版本了。),開啟命令列,進入這個檔案所在的目錄,執行這個檔案,就OK了,簡直是我等懶人的福音。手機會重啟進入 CMW Recovery。
刷入 Super SU
在 CMW Recovery 的起始介面,會有“系統1”,“系統2”這樣的選項,選擇“系統1”進入,這時候你的命令列應該還停留在剛才的目錄,在把 Super SU 刷入之前,首先我們需要把下載下來的 Super SU 的複製到手機SD卡上,在命令列執行 adb push /path/to/your/super-su /sdcard/
, 然後在 CMW Recovery 的介面選擇從 SD 卡刷入指定 zip 包。
很快就刷完了,這時候從介面上選擇返回,重啟手機,在重啟前,該程式會詢問是否禁止小米的自動安裝Recovery指令碼,該指令碼會自動安裝小米官方 Recovery,從而導致即使我們在 FastBoot 刷入了第三方 Recovery 無效,因為在等到下次進入時,小米的 Recovery 會覆蓋第三方的 Recovery,所以到底要不要覆蓋,取決於你自己的需求吧,重啟結束後,你會發現,手機已經 Root 了,可以下載一個需要 Root 才能玩的 App,你會發現它會請求 Root 許可權了,不過,沒有什麼特殊需求儘量不要去允許 App 的 Root 許可權請求。此時我的心情大概是這樣的。
安裝 Xposed 框架
這個簡單,上應用寶市場,直接搜一個Xposed Installer,下載就可以了。不過馬上就碰到坑了,進入Xposed Installer後所有和“安裝”,“解除安裝”有關的按鈕都不可點,而且會有錯誤提示,Xposed 框架未啟用。
沒辦法,只好再上 Google 去補課了,在Xposed的官網,我發現在一開頭的申明就說到,如果是 Android 5.0 及以上的版本,安裝方法請移步到另外一個帖子,我跟了過去。帖子的大意就是,你需要首先安裝最新的Xposed Installer(應用寶上的已經是最新的了),然後你需要刷入一個名為xposed*.zip的 zip 包,帖子裡提供了連結,需要注意的是 sdk 版本選 23,且架構選 amd,因為小米處理器是32位的。
好在我們之前已經有過通過第三方 Recovery 刷入 zip 包的經驗了,我們重複之前的方法,刷入這個 zip 包,這次刷完重啟,就是漫長的等待,就和小米每次更新系統時那麼慢。
功夫不負有心人,我們重啟系統,發現。。。Xposed 框架依然沒啟用,儘管這時候報錯資訊已經發生改變了。經過多番查詢,原因是剛剛刷入的 zip 包對小米支援不好,所以無效了。我也找到了解決方案,在剛才的論壇中,居然有國外大神釋出了針對 MIUI 修改的 Xposed 的 zip 刷機包,簡直是真愛米粉,可見小米還是有挺強的國際號召力的。
這裡的具體過程我也就不說了,還是重複上面的類似操作,這時候刷機完重啟手機,你會發現 Xposed 已經成功激活了!
結語
我已經裝上了搶紅包外掛,我要和 iOS 紅包外掛大戰五百回合。