小米MiFlash刷機(jī)免認(rèn)證的方法
小米對(duì)線刷包中的【prog_ufs_firehose_sdm855_ddr.elf】文件(是個(gè)二進(jìn)制文件,9008線刷就是靠它)進(jìn)行了加密。miflash進(jìn)行【9008】線刷,其實(shí)本質(zhì)就是調(diào)用高通的驅(qū)動(dòng)。高通線刷工具叫【qpst】,網(wǎng)上都可以下載。
電腦會(huì)把這個(gè)【prog_ufs_firehose_sdm855_ddr.elf】文件下載到手機(jī),通過(guò)此文件來(lái)把線刷包中的所有文件按照各個(gè)xml的配置代碼,依次寫(xiě)入手機(jī)中。
小米對(duì)【9008】加密,其實(shí)就是把【prog_ufs_firehose_sdm855_ddr.elf】給加密了,導(dǎo)致miflash或者高通的qpst在讀取這個(gè)【prog_ufs_firehose_sdm855_ddr.elf】文件時(shí),強(qiáng)制報(bào)錯(cuò)。miflash強(qiáng)制報(bào)錯(cuò)后,就會(huì)彈出登陸框,讓你登陸小米賬號(hào),如果此小米賬號(hào)有【9008】權(quán)限的話,便重啟線刷并走完。這就是整個(gè)刷【9008】的過(guò)程。
【prog_ufs_firehose_sdm855_ddr.elf】只有一個(gè)簽名,用來(lái)保護(hù)手機(jī)型號(hào),因?yàn)椴挥眯吞?hào)的手機(jī)【prog_ufs_firehose_sdm855_ddr.elf】文件是不能通用的,簽名就在這里發(fā)揮了作用,防止其它型號(hào)的手機(jī)刷入。而小米似乎就在這個(gè)【prog_ufs_firehose_sdm855_ddr.elf】里面多加了一個(gè)小米自家的簽名,用來(lái)驗(yàn)證你的小米賬號(hào)是否具有【9008】權(quán)限的。
所以,解方式有兩種
一、解【prog_ufs_firehose_sdm855_ddr.elf】文件中的小米自家簽名認(rèn)證,刪除掉那段簽名認(rèn)證的代碼,這樣線刷就不會(huì)報(bào)錯(cuò)(彈出沒(méi)有【9008】權(quán)限)了。
二、直接對(duì)miflash下手,用com口抓包工具,對(duì)正處于【9008】線刷狀態(tài)的miflash進(jìn)行抓包,看看miflash到底對(duì)手機(jī)com發(fā)送了神馬代碼(這個(gè)代碼就是把線刷包中的文件寫(xiě)入到手機(jī)),然后捕獲此代碼,將其稍加修改,使其能直接用高通qpst進(jìn)行線刷,而無(wú)需用miflash來(lái)線刷,這樣就算沒(méi)有【9008】權(quán)限的小米賬號(hào),也能直接刷。因?yàn)楦咄╭pst工具不需要任何登陸。
目前我試著改了【prog_ufs_firehose_sdm855_ddr.elf】中驗(yàn)證權(quán)限的代碼,發(fā)現(xiàn)改了之后,需要重新用高通的簽名來(lái)簽名elf,因此,此法不通。所以,要想解,就只能從miflash來(lái)入手了。
用IDA_Pro_v7.0(百度下載)反編譯【prog_ufs_firehose_sdm855_ddr.elf】文件,查看其源代碼,或者直接用16進(jìn)制工具(010Editor.exe)也可以查看其代碼。你能在源代碼中,找到這樣的代碼【only nop and sig】,這個(gè)就是小米自家的簽名權(quán)限認(rèn)證。破解它,就完事了。就是它,讓我們?cè)凇?008】線刷時(shí),彈出登錄框。你用老版本的miflash沒(méi)有任何用,它只是讓你miflash強(qiáng)制報(bào)錯(cuò)中止線刷而已,所以高通qpst也是如此被強(qiáng)制報(bào)錯(cuò)中止。所以要用最新的miflash,最新的miflash在接收到這樣的強(qiáng)制報(bào)錯(cuò)后,就會(huì)彈出登錄框,登陸成功后鏈接服務(wù)器,判讀是否具有【9008】權(quán)限,沒(méi)有則提示你沒(méi)有【9008】權(quán)限,然后就沒(méi)有然后了。如果判斷為有【9008】權(quán)限,miflash便會(huì)自動(dòng)清除錯(cuò)誤信息并開(kāi)始線刷(它會(huì)從服務(wù)器就收一些數(shù)據(jù)包,用來(lái)給【prog_ufs_firehose_sdm855_ddr.elf】文件中的【only nop and sig】這個(gè)代碼驗(yàn)證判斷用)。然后我發(fā)現(xiàn)修改【prog_ufs_firehose_sdm855_ddr.elf】后,需要重新使用高通的簽名對(duì)其簽名,不然手機(jī)的cpu不認(rèn)未簽名的文件,也就無(wú)法下載。所以,似乎只能從miflash入手了。
從miflash入手,用記事本(其他編輯工具可能看不到)打開(kāi)【XiaoMiFlash.exe】,有很多亂碼,不管他直接搜索代碼【f h _ l o a d e r . e x e】,這個(gè)文件其實(shí)是高通提供的,【9008】線刷就是它把線刷包中的文件寫(xiě)入到手機(jī)的。miflash也是調(diào)用的它來(lái)寫(xiě)入刷機(jī)包的。你能在記事本中找到類(lèi)似于這樣的代碼【fh_loader.exe –port=\.\COM20 –sendxml=partition.xml,patch4.xml,rawprogram4.xml –search_path=D:\Users\R\Desktop\test –noprompt –showpercentagecomplete –memoryname=UFS】看不懂?鏈接:【 查看附錄1 】我就懶得一個(gè)一個(gè)解釋參數(shù)的含義了?!緁 h _ l o a d e r . e x e】文件就是通過(guò)這樣的命令將線刷包中的文件,一個(gè)一個(gè)的寫(xiě)入到手機(jī)磁盤(pán)的。所以,對(duì)其正處于【9008】線刷狀態(tài)的miflash用com抓包工具,進(jìn)行抓包,看看miflash到底發(fā)送了神馬樣的指令。如果成功將指令截取出來(lái)了,那么以后的【9008】強(qiáng)刷都無(wú)需這坑爹的miflash了,直接高通qpst線刷之,或者直接用cmd命令,依次執(zhí)行這些命令,就可以完成【9008】線刷,那么,小米所謂的【9008加密,售后賬號(hào)才能刷寫(xiě),這就完全成為了擺設(shè)】。
【9008】線刷走向:通過(guò)【QSaharaServer.exe】文件將【prog_ufs_firehose_sdm855_ddr.elf】文件下載到手機(jī),再通過(guò)【fh_loader.exe】文件,執(zhí)行刷寫(xiě)命令,把線刷包中的所有文件依次一個(gè)一個(gè)的寫(xiě)入手機(jī)磁盤(pán)中。
小米【9008】加密走向:使用miflash或者高通qpst開(kāi)始線刷,調(diào)用【QSaharaServer.exe】文件將【prog_ufs_firehose_sdm855_ddr.elf】文件下載到手機(jī),再調(diào)用【fh_loader.exe】文件,執(zhí)行刷寫(xiě)命令,執(zhí)行到小米自家的簽名驗(yàn)證代碼處,強(qiáng)制【return eoor】,迫使線刷工具(miflash或者高通qpst)報(bào)錯(cuò)中止線刷,高通qpst就沒(méi)有然后了,最新版本的(MiFlash2018-5-28-0)miflash接收到這個(gè)強(qiáng)制報(bào)錯(cuò)信息,調(diào)用mi目錄下的【account_auth.exe】進(jìn)行登陸小米賬號(hào),鏈接服務(wù)器判斷張否權(quán)限問(wèn)題,無(wú)權(quán)限就沒(méi)然后了,有權(quán)限,就從服務(wù)器下載相關(guān)數(shù)據(jù)包到本地,再次以接收的數(shù)據(jù)包去執(zhí)行【fh_loader.exe】文件,小米自家的簽名認(rèn)證就通了,接下來(lái)就是開(kāi)始正常刷入手機(jī)磁盤(pán)了。
關(guān)于QFIL下載工具
1.下載qpst工具,在QFIL文件夾下找到fh_loader.exe和QSaharaServer.exe文件2.使用QSaharaServer.exe 下載firehorse代{過(guò)}{濾}理,如下:
QSaharaServer.exe –p \.\COM5 -s 13:C:\images\prog_emmc_firehose_8909.mbn
com5是diag端口號(hào)
C:\images\prog_emmc_firehose_8909.mbn是firehose代{過(guò)}{濾}理路徑
3.開(kāi)始下載升級(jí)
fh_loader.exe –port=\.\COM5 –erase=0 –sendxml=rawprogram_unsparse.xml –
search_path=C:\8909images –noprompt –showpercentagecomplete –
memoryname=eMMC –reset
–erase=0代表全擦升級(jí),也代表物理分區(qū)0擦除。例如erase=x。
–sendxml代表要用的xml文件,如果是兩個(gè)xml,可以這樣使用:–sendxml=rawprogram_nand_p2K_b128K.xml,patch_p2K_b128K.xml。
–search_path下載版本路徑。
–noprompt 取消用戶與fh_loader交互。
–showpercentagecomplete 指示下載百分率
–memoryname內(nèi)存類(lèi)型。
–reset 下載完成后自動(dòng)重啟。
以上是主要下載的可選參數(shù),也可以不選擇,例如,不全擦升級(jí),可以如下操作fh_loader.exe –port=\.\COM5 –sendxml=rawprogram_unsparse.xml –
search_path=C:\8909images –noprompt –showpercentagecomplete –
memoryname=eMMC –reset。
總結(jié):使用QFIL下載,實(shí)質(zhì)就是下載firehorse代{過(guò)}{濾}理后,通過(guò)代{過(guò)}{濾}理下載即可完成。
以上來(lái)自吾愛(ài)破解網(wǎng)友的分享,希望大家也可以相互分享一下自己的一些刷機(jī)新心得!