本發(fā)明實(shí)施例涉及存儲(chǔ)技術(shù),尤其涉及一種重寫Flash的方法及裝置。
背景技術(shù):
閃存(Flash)可作為手機(jī)或平板電腦等終端設(shè)備的存儲(chǔ)器,F(xiàn)lash當(dāng)中既存有終端設(shè)備的相關(guān)信息,例如存在回環(huán)保護(hù)分區(qū)(Replay Protected Memory Block,RPMB)分區(qū)的根據(jù)中央處理器(Central Processing Unit,CPU)的型號(hào)信息生成的秘鑰,也存有Flash本身的型號(hào)信息,例如客戶身份(Customer IDentity,CID)。
當(dāng)終端設(shè)備里的硬件發(fā)生改變,例如原有的CPU損壞后更換新的CPU,但是Flash的RPMB分區(qū)中存的是根據(jù)原有的CPU的型號(hào)信息生成的舊秘鑰,根據(jù)新的CPU的型號(hào)信息生成的新秘鑰與RPMB分區(qū)中的舊秘鑰不一致,致使秘鑰驗(yàn)證失敗,秘鑰驗(yàn)證失敗會(huì)導(dǎo)致終端設(shè)備無法進(jìn)行指紋驗(yàn)證及指紋支付。
所以當(dāng)終端設(shè)備發(fā)生更換CPU等硬件改變時(shí),需要擦除Flash的RPMB分區(qū)中的秘鑰等信息,但是現(xiàn)有的刷機(jī)工具(flash tool)無法擦除Flash的秘鑰等信息。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種重寫Flash的方法及裝置,可以擦除Flash中的秘鑰等信息。
第一方面,本發(fā)明實(shí)施例提供了一種重寫Flash的方法,包括:
獲取Flash的型號(hào)信息,所述型號(hào)信息包括出廠的CID;
對(duì)所述Flash進(jìn)行擦除,被擦除的信息包括秘鑰和所述出廠的CID;
將獲取到的出廠的CID替換擦除后所述Flash重新生成的CID。
可選的,所述對(duì)所述Flash進(jìn)行擦除包括:
設(shè)置所述Flash的寄存器,擦除所述秘鑰和所述出廠的CID,新CID替代所述出廠的CID。
可選的,所述將獲取到的出廠的CID替換擦除后所述Flash重新生成的CID,包括:
通過USB獲取恢復(fù)CID軟件,通過串口從日志Log中讀取所述新CID;
把所述新CID添加到所述恢復(fù)CID軟件的代碼里進(jìn)行兼容,設(shè)置Flash時(shí)序;
通過所述恢復(fù)CID軟件將固件和所述出廠的CID寫入所述Flash。
第二方面,本發(fā)明實(shí)施例還提供了一種重寫Flash的裝置,包括:
型號(hào)信息獲取模塊,用于獲取Flash的型號(hào)信息,所述型號(hào)信息包括出廠的CID;
擦除模塊,與所述型號(hào)信息獲取模塊相連,用于對(duì)所述Flash進(jìn)行擦除,被擦除的信息包括秘鑰和所述出廠的CID;
CID替換模塊,與所述擦除模塊相連,用于將獲取到的出廠的CID替換擦除后所述Flash重新生成的CID。
可選的,所述擦除模塊具體用于:
設(shè)置所述Flash的寄存器,擦除所述秘鑰和所述出廠的CID,新CID替代所述出廠的CID。
可選的,所述CID替換模塊包括:
新CID讀取單元,用于通過USB獲取恢復(fù)CID軟件,通過串口從日志Log中讀取所述新CID;
兼容單元,與所述新CID讀取單元相連,用于把所述新CID添加到所述恢復(fù)CID軟件的代碼里進(jìn)行兼容,設(shè)置Flash時(shí)序;
寫入單元,與所述兼容單元相連,用于通過所述恢復(fù)CID軟件將固件和所述出廠的CID寫入所述Flash。
本發(fā)明實(shí)施例通過獲取Flash的型號(hào)信息,對(duì)Flash進(jìn)行擦除,以及將獲取到的出廠的CID替換擦除后Flash重新生成的CID,使得Flash中的秘鑰等希望被擦除的信息被擦除,出廠的CID等希望被保留的信息被保留,F(xiàn)lash在經(jīng)過重寫后被設(shè)置為理想狀態(tài)。
附圖說明
圖1是本發(fā)明實(shí)施例一提供的一種重寫Flash的方法流程圖;
圖2是本發(fā)明實(shí)施例二提供的一種重寫Flash的方法流程圖;
圖3是本發(fā)明實(shí)施例三提供的一種重寫Flash的方法流程圖;
圖4是本發(fā)明實(shí)施例四提供的一種重寫Flash的方法流程圖;
圖5是本發(fā)明實(shí)施例五提供的一種重寫Flash的裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
實(shí)施例一
圖1是本發(fā)明實(shí)施例一提供的一種重寫Flash的方法流程圖,本實(shí)施例可適用于重寫Flash的情況,該方法可以由重寫Flash的裝置來執(zhí)行,該裝置可以由軟件和/或硬件方式實(shí)現(xiàn),該裝置可以集成在任何包含CPU的設(shè)備中,例如典型的是用戶終端設(shè)備,如手機(jī)、平板電腦等。該方法包括:
S101、獲取Flash的型號(hào)信息,型號(hào)信息包括出廠的CID。
在終端設(shè)備開機(jī)啟動(dòng)的時(shí)候,獲取終端設(shè)備中Flash的型號(hào)信息,包括出廠的CID。通常CID不宜隨意更改,CID更改后可能導(dǎo)致軟件的不兼容。獲取Flash的型號(hào)信息是為了便于Flash被擦除后恢復(fù)出廠的CID。
S102、對(duì)Flash進(jìn)行擦除,被擦除的信息包括秘鑰和出廠的CID。
Flash中存著終端設(shè)備的相關(guān)信息,例如Flash的RPMB分區(qū)存儲(chǔ)了根據(jù)CPU的型號(hào)信息生成的秘鑰。當(dāng)終端設(shè)備中如CPU等硬件更換后,就需要相應(yīng)地修改Flash中的秘鑰。這就需要擦除Flash中的秘鑰。然而被擦除的信息除了秘鑰還有出廠的CID,在對(duì)Flash進(jìn)行擦除后出廠的CID被新CID取代。秘鑰是應(yīng)該被擦除的,出廠的CID被擦除是不希望出現(xiàn)的。
S103、將獲取到的出廠的CID替換擦除后Flash重新生成的CID。
在對(duì)Flash進(jìn)行擦除過程中CID被設(shè)置為默認(rèn)值,即在擦除過程中CID默認(rèn)值作為新CID取代了出廠的CID,在擦除過程后,為了使Flash能夠與軟件兼容,需要將Flash中的CID需要被設(shè)置為出廠的CID,可以將S101中獲取到的出廠的CID替換擦除后Flash重新生成的新CID。這樣Flash就能夠與軟件兼容,可以將軟件下載進(jìn)Flash。
可選的,在Flash擦除成功和/或CID替換成功后,還可進(jìn)行震動(dòng)提醒。
在S102的Flash擦除成功和/或S103的CID替換成功后,可讓終端設(shè)備執(zhí)行震動(dòng)程序,以提示步驟完成。
本實(shí)施例通過獲取Flash的型號(hào)信息,對(duì)Flash進(jìn)行擦除,以及將獲取到的出廠的CID替換擦除后Flash重新生成的CID,使得Flash中的秘鑰等希望被擦除的信息被擦除,出廠的CID等希望被保留的信息被保留,F(xiàn)lash在經(jīng)過重寫后被設(shè)置為理想狀態(tài)。
實(shí)施例二
圖2是本發(fā)明實(shí)施例二提供的一種重寫Flash的方法流程圖,實(shí)施例二以上述實(shí)施例為基礎(chǔ),將對(duì)Flash進(jìn)行擦除,優(yōu)化為,設(shè)置Flash的寄存器,擦除秘鑰和出廠的CID,新CID替代出廠的CID。相應(yīng)的,本實(shí)施例的方法包括:
S201、獲取Flash的型號(hào)信息,型號(hào)信息包括出廠的CID。
S202、設(shè)置Flash的寄存器,擦除秘鑰和出廠的CID,新CID替代出廠的CID。
Flash包含寄存器和存儲(chǔ)模塊,RPMB分區(qū)就屬于存儲(chǔ)模塊的一部分,通過軟件可對(duì)Flash中的寄存器進(jìn)行設(shè)置,實(shí)現(xiàn)對(duì)Flash中存儲(chǔ)模塊的信息進(jìn)行操作。Flash在擦除時(shí)根據(jù)Flash的廠商和型號(hào)查找到Flash擦除操作對(duì)應(yīng)的寄存器參數(shù),將寄存器設(shè)置為Flash擦除操作對(duì)應(yīng)的參數(shù),可以擦除Flash中存儲(chǔ)模塊的全部信息,包括RPMB分區(qū)中的秘鑰和出廠的CID,出廠的CID被擦除后,新CID替代出廠的CID。Flash斷電后信息徹底清除,相當(dāng)于進(jìn)行了“格式化”。
S203、將獲取到的出廠的CID替換擦除后Flash重新生成的CID。
本實(shí)施例通過設(shè)置Flash的寄存器,可將Flash中的全部信息進(jìn)行擦除,操作簡(jiǎn)單,便于向Flash中重新寫入秘鑰等信息。
實(shí)施例三
圖3是本發(fā)明實(shí)施例三提供的一種重寫Flash的方法流程圖,實(shí)施例三以上述實(shí)施例為基礎(chǔ),將獲取到的出廠的CID替換擦除后Flash重新生成的CID,優(yōu)化為,通過USB獲取恢復(fù)CID軟件,通過串口從日志Log中讀取新CID;把新CID添加到恢復(fù)CID軟件的代碼里進(jìn)行兼容,設(shè)置Flash時(shí)序;通過恢復(fù)CID軟件將固件和出廠的CID寫入Flash。相應(yīng)的,本實(shí)施例的方法包括:
S301、獲取Flash的型號(hào)信息,型號(hào)信息包括出廠的CID。
S302、設(shè)置Flash的寄存器,擦除秘鑰和出廠的CID,新CID替代出廠的CID。
S303、通過USB獲取恢復(fù)CID軟件,通過串口從日志Log中讀取新CID。
終端設(shè)備分別連接USB和串口,可以通過USB將恢復(fù)CID軟件下載到Flash。為了使恢復(fù)CID軟件與Flash兼容需要讀取擦除操作產(chǎn)生的新CID,下載的時(shí)候由于上電會(huì)運(yùn)行程序產(chǎn)生Log文件,可通過終端設(shè)備的串口從Log中讀取新CID。
S304、把新CID添加到恢復(fù)CID軟件的代碼里進(jìn)行兼容,設(shè)置Flash時(shí)序。
把新CID添加到恢復(fù)CID軟件的代碼以及設(shè)置Flash時(shí)序,以使得恢復(fù)CID軟件與Flash兼容,恢復(fù)CID軟件便能正常下載和運(yùn)行。
S305、通過恢復(fù)CID軟件將固件和出廠的CID寫入Flash。
終端設(shè)備開機(jī)時(shí)判斷讀取到的是新CID,將廠商提供的Flash固件和出廠的CID按照設(shè)置的Flash時(shí)序?qū)懭隖lash??蛇x的,寫成功后,讓終端設(shè)備一直震動(dòng)提示寫成功?;謴?fù)出廠的CID之后Flash可下載各種軟件,而且這些軟件不用再為兼容而做修改,F(xiàn)lash恢復(fù)出廠的CID后可以兼容量產(chǎn)版本的軟件,可以下載量產(chǎn)版本的軟件。
本實(shí)施例通過串口從日志Log中讀取新CID,并把新CID添加到恢復(fù)CID軟件的代碼里,簡(jiǎn)單而有效地實(shí)現(xiàn)恢復(fù)CID軟件與擦除后的Flash兼容,通過恢復(fù)CID軟件將固件和出廠的CID寫入Flash,使得Flash能兼容及下載軟件。
實(shí)施例四
圖4是本發(fā)明實(shí)施例四提供的一種重寫Flash的方法流程圖,實(shí)施例四以上述實(shí)施例為基礎(chǔ),在將獲取到的出廠的CID替換擦除后Flash重新生成的CID后,增加了,根據(jù)Flash連接的CPU的型號(hào)信息生成新的秘鑰并存儲(chǔ)在Flash的RPMB分區(qū)。相應(yīng)的,本實(shí)施例的方法包括:
S401、獲取Flash的型號(hào)信息,型號(hào)信息包括出廠的CID。
S402、對(duì)Flash進(jìn)行擦除,被擦除的信息包括秘鑰和出廠的CID。
S403、將獲取到的出廠的CID替換擦除后Flash重新生成的CID。
S404、根據(jù)Flash連接的CPU的型號(hào)信息生成新的秘鑰并存儲(chǔ)在Flash的RPMB分區(qū)。
手機(jī)或平板電腦等終端設(shè)備生產(chǎn)時(shí),在產(chǎn)線就會(huì)寫入秘鑰,而秘鑰的生成,為了確保其唯一性和安全性,一般采用特定的算法,根據(jù)CPU的信息(即使相同型號(hào)的CPU,其型號(hào)信息都不一樣)生成唯一序列號(hào)作為秘鑰,存儲(chǔ)進(jìn)終端設(shè)備的Flash的RPMB分區(qū)。假如終端設(shè)備的CPU損壞了,然后更換了新的CPU,根據(jù)新CPU生成的新的秘鑰和存儲(chǔ)在RPMB分區(qū)的舊的秘鑰不一致會(huì)導(dǎo)致秘鑰驗(yàn)證失敗,秘鑰驗(yàn)證失敗會(huì)導(dǎo)致終端設(shè)備無法進(jìn)行指紋驗(yàn)證,也就是說終端設(shè)備無法使用指紋支付功能了。
要想指紋支付功能重新能用,就要清除掉舊的秘鑰并寫入根據(jù)新CPU生成的新的秘鑰,但是常用的flash tool工具無法擦除RPMB分區(qū),也就無法清除掉舊的秘鑰。因此目前在終端設(shè)備的CPU更換后,為了更新秘鑰,常常也將Flash一起更換掉,比較浪費(fèi)。
由于Flash中的信息被全部擦除,RPMB分區(qū)存的舊的秘鑰也沒了,可以根據(jù)與Flash連接的新的CPU生成新的秘鑰,并存儲(chǔ)在Flash的RPMB分區(qū)。這樣秘鑰驗(yàn)證就會(huì)成功,指紋支付功能就可以正常使用。
本實(shí)施例根據(jù)Flash連接的CPU的型號(hào)信息生成新的秘鑰并存儲(chǔ)在Flash的RPMB分區(qū),在不更換Flash的情況下實(shí)現(xiàn)秘鑰的更新,確保秘鑰驗(yàn)證成功,使得終端設(shè)備的CPU更換后指紋支付功能仍能正常使用。
實(shí)施例五
圖5是本發(fā)明實(shí)施例五提供的一種重寫Flash的裝置結(jié)構(gòu)示意圖,該裝置用于執(zhí)行上述實(shí)施例中的重寫Flash的方法。該裝置包括:型號(hào)信息獲取模塊501、擦除模塊502及CID替換模塊503。
型號(hào)信息獲取模塊501,用于獲取Flash的型號(hào)信息,型號(hào)信息包括出廠的CID。
擦除模塊502,與型號(hào)信息獲取模塊501相連,用于對(duì)Flash進(jìn)行擦除,被擦除的信息包括秘鑰和出廠的CID。
CID替換模塊503,與擦除模塊502相連,用于將獲取到的出廠的CID替換擦除后Flash重新生成的CID。
本實(shí)施例通過獲取Flash的型號(hào)信息,對(duì)Flash進(jìn)行擦除,以及將獲取到的出廠的CID替換擦除后Flash重新生成的CID,使得Flash中的秘鑰等希望被擦除的信息被擦除,出廠的CID等希望被保留的信息被保留,F(xiàn)lash在經(jīng)過重寫后被設(shè)置為理想狀態(tài)。
可選的,擦除模塊502具體用于:設(shè)置Flash的寄存器,擦除秘鑰和出廠的CID,新CID替代出廠的CID。
本實(shí)施例通過設(shè)置Flash的寄存器,可將Flash中的全部信息進(jìn)行擦除,操作簡(jiǎn)單,便于向Flash中重新寫入秘鑰等信息。
可選的,CID替換模塊503包括:新CID讀取單元、兼容單元及寫入單元。
新CID讀取單元,用于通過USB獲取恢復(fù)CID軟件,通過串口從日志Log中讀取新CID。
兼容單元,與新CID讀取單元相連,用于把新CID添加到恢復(fù)CID軟件的代碼里進(jìn)行兼容,設(shè)置Flash時(shí)序。
寫入單元,與兼容單元相連,用于通過恢復(fù)CID軟件將固件和出廠的CID寫入Flash。
本實(shí)施例通過串口從日志Log中讀取新CID,并把新CID添加到恢復(fù)CID軟件的代碼里,簡(jiǎn)單而有效地實(shí)現(xiàn)恢復(fù)CID軟件與擦除后的Flash兼容,通過恢復(fù)CID軟件將固件和出廠的CID寫入Flash,使得Flash能兼容及下載軟件。
可選的,重寫Flash的裝置還包括:新的秘鑰生成模塊,與CID替換模塊503相連,用于根據(jù)Flash連接的CPU的型號(hào)信息生成新的秘鑰并存儲(chǔ)在Flash的RPMB分區(qū)。
本實(shí)施例根據(jù)Flash連接的CPU的型號(hào)信息生成新的秘鑰并存儲(chǔ)在Flash的RPMB分區(qū),在不更換Flash的情況下實(shí)現(xiàn)秘鑰的更新,確保秘鑰驗(yàn)證成功,使得終端設(shè)備的CPU更換后指紋支付功能仍能正常使用。
可選的,重寫Flash的裝置還包括:震動(dòng)提醒模塊,分別與擦除模塊502及CID替換模塊503相連,用于Flash擦除成功和/或CID替換成功后,進(jìn)行震動(dòng)提醒。
本發(fā)明實(shí)施例所提供的重寫Flash的裝置可用于執(zhí)行本發(fā)明任意實(shí)施例所提供的重寫Flash的方法,具備執(zhí)行該方法相應(yīng)的功能和有益效果。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。