小米最新機型都對【9008】進行了加鎖框杜,即線刷只能fastboot線刷浦楣,無法使用【9008】線刷袖肥。以后的新機型肯定會繼續(xù)對【9008】加鎖的咪辱,這對玩機來說,是一個非常困難事兒了椎组。必須破解之油狂。。寸癌。专筷。不然以后新機型都沒得玩了。
經(jīng)過我多日的研究蒸苇,很大概率磷蛹,不敢說100%,但是有99%的把握認為是小米對線刷包中的【prog_ufs_firehose_sdm855_ddr.elf】文件(是個二進制文件溪烤,9008線刷就是靠它)進行了加密味咳。miflash進行【9008】線刷,其實本質(zhì)就是調(diào)用高通的驅(qū)動檬嘀。高通線刷工具叫【qpst】槽驶,百度都可以下載。
我先說說其大概的工作原理:電腦會把這個【prog_ufs_firehose_sdm855_ddr.elf】文件下載到手機鸳兽,通過此文件來把線刷包中的所有文件按照各個xml的配置代碼掂铐,依次寫入手機中。小米對【9008】加密揍异,其實就是把【prog_ufs_firehose_sdm855_ddr.elf】給加密了全陨,導致miflash或者高通的qpst在讀取這個【prog_ufs_firehose_sdm855_ddr.elf】文件時,強制報錯衷掷。miflash強制報錯后烤镐,就會彈出登陸框,讓你登陸小米賬號棍鳖,如果此小米賬號有【9008】權(quán)限的話炮叶,便重啟線刷并走完浑彰。這就是整個刷【9008】的過程。
一般來說容劳,【prog_ufs_firehose_sdm855_ddr.elf】只有一個簽名(由高通提供)禽绪,用來保護手機型號,因為不用型號的手機【prog_ufs_firehose_sdm855_ddr.elf】文件是不能通用的侣肄,簽名就在這里發(fā)揮了作用旧困,防止其它型號的手機刷入。而小米似乎就在這個【prog_ufs_firehose_sdm855_ddr.elf】里面多加了一個小米自家的簽名稼锅,用來驗證你的小米賬號是否具有【9008】權(quán)限的吼具。所以,破解方式有兩種矩距。
一拗盒、破解【prog_ufs_firehose_sdm855_ddr.elf】文件中的小米自家簽名認證,刪除掉那段簽名認證的代碼锥债,這樣線刷就不會報錯(彈出沒有【9008】權(quán)限)了陡蝇。
二、直接對miflash下手哮肚,用com口抓包工具登夫,對正處于【9008】線刷狀態(tài)的miflash進行抓包,看看miflash到底對手機com發(fā)送了神馬代碼(這個代碼就是把線刷包中的文件寫入到手機)允趟,然后捕獲此代碼恼策,將其稍加修改,使其能直接用高通qpst進行線刷潮剪,而無需用miflash來線刷涣楷,這樣就算沒有【9008】權(quán)限的小米賬號,也能直接刷鲁纠。因為高通qpst工具不需要任何登陸总棵。
目前我試著改了【prog_ufs_firehose_sdm855_ddr.elf】中驗證權(quán)限的代碼,發(fā)現(xiàn)改了之后改含,需要重新用高通的簽名來簽名elf情龄,因此,此法不通捍壤。所以骤视,要想破解,就只能從miflash來入手了鹃觉。
以下是我破解過程中總結(jié)出來的經(jīng)驗专酗,我本人能力有限,分享出來盗扇,希望有能力更強的大佬祷肯,大家一起戰(zhàn)斗沉填。
用IDA_Pro_v7.0(百度下載)反編譯【prog_ufs_firehose_sdm855_ddr.elf】文件,查看其源代碼佑笋,或者直接用16進制工具(010Editor.exe)也可以查看其代碼翼闹。你能在源代碼中,找到這樣的代碼【only? nop and? sig】蒋纬,這個就是小米自家的簽名權(quán)限認證猎荠。破解它,就完事了蜀备。就是它关摇,讓我們在【9008】線刷時,彈出登錄框碾阁。你用老版本的miflash沒有任何用输虱,它只是讓你miflash強制報錯中止線刷而已,所以高通qpst也是如此被強制報錯中止瓷蛙。所以要用最新的miflash悼瓮,最新的miflash在接收到這樣的強制報錯后戈毒,就會彈出登錄框艰猬,登陸成功后鏈接服務器,判讀是否具有【9008】權(quán)限埋市,沒有則提示你沒有【9008】權(quán)限冠桃,然后就沒有然后了。如果判斷為有【9008】權(quán)限道宅,miflash便會自動清除錯誤信息并開始線刷(它會從服務器就收一些數(shù)據(jù)包食听,用來給【prog_ufs_firehose_sdm855_ddr.elf】文件中的【only? nop and? sig】這個代碼驗證判斷用)。然后我發(fā)現(xiàn)修改【prog_ufs_firehose_sdm855_ddr.elf】后污茵,需要重新使用高通的簽名對其簽名樱报,不然手機的cpu不認未簽名的文件,也就無法下載泞当。所以迹蛤,似乎只能從miflash入手了。
從miflash入手襟士,用記事本(其他編輯工具可能看不到)打開【XiaoMiFlash.exe】盗飒,有很多亂碼,不管他直接搜索代碼【f h _ l o? a d e r . e x? e】陋桂,這個文件其實是高通提供的逆趣,【9008】線刷就是它把線刷包中的文件寫入到手機的。miflash也是調(diào)用的它來寫入刷機包的嗜历。你能在記事本中找到類似于這樣的代碼【fh_loader.exe? ? –port=\.\COM20 –sendxml=partition.xml,patch4.xml,rawprogram4.xml? ? –search_path=D:\Users\R\Desktop\test? –noprompt? ? –showpercentagecomplete? –memoryname=UFS】看不懂宣渗?鏈接:【 查看附錄1 】我就懶得一個一個解釋參數(shù)的含義了抖所。【f? h _ l o a d e r . e x? e】文件就是通過這樣的命令將線刷包中的文件痕囱,一個一個的寫入到手機磁盤的部蛇。所以,對其正處于【9008】線刷狀態(tài)的miflash用com抓包工具咐蝇,進行抓包涯鲁,看看miflash到底發(fā)送了神馬樣的指令。如果成功將指令截取出來了有序,那么以后的【9008】強刷都無需這坑爹的miflash了抹腿,直接高通qpst線刷之,或者直接用cmd命令旭寿,依次執(zhí)行這些命令警绩,就可以完成【9008】線刷,那么盅称,小米所謂的【9008加密肩祥,售后賬號才能刷寫,這就完全成為了擺設】缩膝。
以上就是我的個人經(jīng)驗混狠,分享出來,希望有更多的大佬一起研究疾层,我個人實在能力有限将饺。。痛黎。予弧。
【9008】線刷走向:通過【QSaharaServer.exe】文件將【prog_ufs_firehose_sdm855_ddr.elf】文件下載到手機,再通過【fh_loader.exe】文件湖饱,執(zhí)行刷寫命令掖蛤,把線刷包中的所有文件依次一個一個的寫入手機磁盤中。
小米【9008】加密走向:使用miflash或者高通qpst開始線刷井厌,調(diào)用【QSaharaServer.exe】文件將【prog_ufs_firehose_sdm855_ddr.elf】文件下載到手機蚓庭,再調(diào)用【fh_loader.exe】文件,執(zhí)行刷寫命令旗笔,執(zhí)行到小米自家的簽名驗證代碼處彪置,強制【return? eoor】,迫使線刷工具(miflash或者高通qpst)報錯中止線刷蝇恶,高通qpst就沒有然后了拳魁,最新版本的(MiFlash2018-5-28-0)miflash接收到這個強制報錯信息,調(diào)用mi目錄下的【account_auth.exe】進行登陸小米賬號撮弧,鏈接服務器判斷張否權(quán)限問題潘懊,無權(quán)限就沒然后了姚糊,有權(quán)限,就從服務器下載相關(guān)數(shù)據(jù)包到本地授舟,再次以接收的數(shù)據(jù)包去執(zhí)行【fh_loader.exe】文件救恨,小米自家的簽名認證就通了,接下來就是開始正常刷入手機磁盤了释树。肠槽。。奢啥。
引導下載地址:
鏈接:https://pan.baidu.com/s/1ue8t5Cka2Ulur9aGE98uMQ 提取碼:4vxj
備用:https://www.lanzoux.com/b0ee2a5wd
密碼:6t35
【查看附錄1】關(guān)于如何開發(fā)類似QFIL下載工具
1.下載qpst工具秸仙,在QFIL文件夾下找到fh_loader.exe和QSaharaServer.exe文件
2.使用QSaharaServer.exe??下載firehorse代{過}{濾}理,如下:
QSaharaServer.exe –p \.\COM5 -s 13:C:\images\prog_emmc_firehose_8909.mbn
com5是diag端口號
C:\images\prog_emmc_firehose_8909.mbn是firehose代{過}{濾}理路徑
3.開始下載升級
fh_loader.exe –port=\.\COM5 –erase=0 –sendxml=rawprogram_unsparse.xml –
search_path=C:\8909images –noprompt –showpercentagecomplete –
memoryname=eMMC –reset
–erase=0代表全擦升級桩盲,也代表物理分區(qū)0擦除寂纪。例如erase=x。
–sendxml代表要用的xml文件赌结,如果是兩個xml捞蛋,可以這樣使用:–sendxml=rawprogram_nand_p2K_b128K.xml,patch_p2K_b128K.xml。
–search_path下載版本路徑柬姚。
–noprompt 取消用戶與fh_loader交互拟杉。
–showpercentagecomplete 指示下載百分率
–memoryname內(nèi)存類型。
–reset 下載完成后自動重啟伤靠。
以上是主要下載的可選參數(shù)捣域,也可以不選擇啼染,例如宴合,不全擦升級,可以如下操作fh_loader.exe –port=\.\COM5??–sendxml=rawprogram_unsparse.xml –
search_path=C:\8909images –noprompt –showpercentagecomplete –
memoryname=eMMC –reset迹鹅。
總結(jié):使用QFIL下載卦洽,實質(zhì)就是下載firehorse代{過}{濾}理后,通過代{過}{濾}理下載即可完成斜棚,以上只是簡單說明阀蒂,由于版權(quán)的說明,就補貼高通文檔了弟蚀,如果大家開發(fā)中遇到任何問題蚤霞,歡迎大家留言。
原文轉(zhuǎn)自酷安
特別感謝@Rannki@xueyu人生