Usbs固件升級(jí)及加密的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及終端設(shè)備數(shù)據(jù)維護(hù)技術(shù)領(lǐng)域,尤其涉及一種USBS固件升級(jí)及加密的方法。
【背景技術(shù)】
[0002]隨著科技的不斷進(jìn)步,信息行業(yè)技術(shù)的不斷發(fā)展,人們可享受到越來越多由高科技帶來的便捷服務(wù)和高品質(zhì)的生活。特別是近年來在電信網(wǎng)絡(luò)而后多媒體技術(shù)的不斷升級(jí)、視頻技術(shù)與流媒體技術(shù)應(yīng)用不斷推陳出新的前景下,提供這些新業(yè)務(wù)的終端設(shè)備種類也越來越豐富、功能越來越強(qiáng)大、智能化程度越來越高。具有多媒體功能的終端正以多種不同形式進(jìn)入千家萬戶、政府機(jī)關(guān)和企事業(yè)單位,成為人們生活、工作和娛樂中不可或缺的通信產(chǎn)品。
[0003]終端設(shè)備有著共同的特點(diǎn)就是智能化、自動(dòng)化程度高,可以連上Iinternet或?qū)S芯W(wǎng)絡(luò),電信運(yùn)營(yíng)商根據(jù)開展的運(yùn)營(yíng)業(yè)務(wù)對(duì)終端設(shè)備的軟固件、配置進(jìn)行管理和升級(jí)維護(hù)。
[0004]目前終端設(shè)備的軟固件升級(jí)及保護(hù)的方式主要有以下幾種:
1)USB升級(jí):USB升級(jí)如手機(jī)刷固件,只需要一根USB線跟電腦上的上位機(jī)及其驅(qū)動(dòng)程序即可。實(shí)際上就是產(chǎn)品在升級(jí)的時(shí)候作為一個(gè)USB設(shè)備連接電腦,配合電腦上的上位機(jī)將固件寫入產(chǎn)品從而實(shí)現(xiàn)對(duì)產(chǎn)品固件的升級(jí);該升級(jí)方式由于在電腦端都需要一個(gè)上位機(jī)及驅(qū)動(dòng)程序,普通用戶操作的時(shí)候存在使用障礙,而且不同的系統(tǒng)需要分別開發(fā)上位機(jī)導(dǎo)致在一些電腦上根本無法升級(jí)。
[0005]2)SD卡升級(jí):SD卡升級(jí)是以SD卡作為媒介,升級(jí)固件的時(shí)候先將固件拷貝到SD卡,再將SD卡插入設(shè)備的卡槽,然后啟動(dòng)設(shè)備,設(shè)備中的bootloader通過根文件系統(tǒng)(如FAT32)檢查SD卡中的文件,當(dāng)檢測(cè)到新的固件時(shí)會(huì)將新的固件寫入產(chǎn)品中;由于SD卡升級(jí)在固件升級(jí)的時(shí)候需要SD卡(在將固件拷貝到SD卡的時(shí)候通常還需要讀卡器),這無疑增加了成本。而如果讓用戶使用自己的SD卡則用戶需要先將SD卡中的數(shù)據(jù)備份再格式化,然后再拷貝固件到SD卡,因?yàn)镾D卡中原來的文件如果太多會(huì)增加檢測(cè)SD卡中的固件所需的時(shí)間;
3)加密:現(xiàn)在很多IC都有全球唯一的ID,對(duì)ID進(jìn)行相應(yīng)的運(yùn)算可以得到一組加密信息,通過匹配加密信息就可以確定產(chǎn)品是否被破解,從而決定程序是否要進(jìn)一步往下執(zhí)行;目前的做法是判斷一個(gè)標(biāo)志位決定是否要生成加密信息,一旦標(biāo)志位被恢復(fù)則加密失效。
【發(fā)明內(nèi)容】
[0006]針對(duì)上述技術(shù)中存在的不足之處,本發(fā)明提供一種USBS固件升級(jí)及加密的方法,該方法具有便捷的升級(jí)操作、安全的加密方式、端口的可配置性及節(jié)省了硬件成本,且而USBS使用的加密是將生成加密的代碼擦除從而確保不會(huì)重復(fù)生成加密信息。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明提供一種USBS固件升級(jí)及加密的方法,包括以下步驟: 步驟I,對(duì)終端設(shè)備進(jìn)行上電復(fù)位; 步驟2,判斷為初次上電或第二次上電及后續(xù)上電;若為初次上電,則進(jìn)行步驟31 ;若為第二次上電及后續(xù)上電,則進(jìn)行步驟32 ;
步驟31,在執(zhí)行過程中完成加密之后通過自編程方式擦除加密代碼,以保證加密信息只生成一次;擦除加密代碼后復(fù)位并結(jié)束;
步驟32,校驗(yàn)加密信息;
步驟4,連機(jī)檢測(cè);
步驟5,掛載U盤;
步驟6,刷固件且進(jìn)行USB線聯(lián)機(jī)檢測(cè);
步驟7,復(fù)位:當(dāng)升級(jí)完成后拔出USB線設(shè)備進(jìn)行軟件復(fù)位。
[0008]其中,從第二次上電開始無需執(zhí)行步驟31,直接執(zhí)行步驟32,該步驟是校驗(yàn)步驟31過程中生成的加密信息,若是校驗(yàn)通過,則進(jìn)行步驟4 ;若是校驗(yàn)不通過,則報(bào)錯(cuò)并停止繼續(xù)往下執(zhí)行。
[0009]其中,所述步驟4的具體步驟為:在終端設(shè)備的硬件設(shè)計(jì)上,當(dāng)該終端設(shè)備通過USB線連接電腦時(shí)會(huì)在一個(gè)特定的管腳上產(chǎn)生一個(gè)有效電平,通過檢測(cè)該管腳上的有效電平?jīng)Q定是升級(jí)固件還是引導(dǎo)App。
[0010]其中,所述步驟4中若是電平無效,則直接引導(dǎo)App,之后App就運(yùn)行起來了 ;若是電平有效則將設(shè)備進(jìn)行步驟5 ;且該有效電平是通過配置軟件配置的。
[0011 ] 其中,所述步驟5的具體步驟為:當(dāng)終端設(shè)備檢測(cè)到USB線連接時(shí),初始化USB、資源和數(shù)據(jù),即可在電腦上看到一個(gè)U盤,對(duì)該U盤的操作將是直接對(duì)芯片內(nèi)部Flash的操作。
[0012]其中,所述步驟6的具體步驟為:對(duì)該U盤格式化之后就可以將固件的格式*.bin與*.mac拷貝到該U盤中進(jìn)行升級(jí)固件。
[0013]其中,所述步驟6還包括以下動(dòng)作:刷固件的同時(shí)不停地檢測(cè)USB線連機(jī),以判斷USB線是否已經(jīng)拔出;若是檢測(cè)到USB線未拔出則繼續(xù)檢測(cè);若是USB線拔出則進(jìn)入到下一步。
[0014]其中,所述步驟7的具體步驟為:若是當(dāng)升級(jí)完成后拔出USB線設(shè)備將進(jìn)行軟件復(fù)位,復(fù)位之后軟件流程將從步驟32開始執(zhí)行,若是當(dāng)USB線一直處于斷開狀態(tài)將在步驟4中引導(dǎo)App ;若是USB線拔出又迅速連接上將繼續(xù)執(zhí)行步驟5、6、7。
[0015]其中,所述*.bin為直接的機(jī)器碼文件;所述*.mac是自定義的*.bin文件的擴(kuò)展。
[0016]其中,該USBS提供端口配置功能可在不編譯代碼的情況下根據(jù)終端設(shè)備用PC端配置軟件配置端口 ;使得同一個(gè)程序只需根據(jù)終端設(shè)備實(shí)際使用的端口重新配置一下即可使用在不同的終端設(shè)備上。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明提供的USBS固件升級(jí)及加密的方法,具有如下有益效果:
1)便捷的升級(jí)操作:由于在升級(jí)固件時(shí)通過USB線將產(chǎn)品連接到電腦,在電腦上看到的只是一個(gè)U盤,然后將提供的固件拷貝到這個(gè)U盤即可升級(jí)固件,該固件升級(jí)方式的操作與拷貝一個(gè)文件到U盤的操作是一樣,免驅(qū)且無需上位機(jī)以達(dá)到了升級(jí)操作的便捷性;
2)節(jié)省硬件成本:SBS在升級(jí)的時(shí)候不像SD卡升級(jí)那樣需要SD卡作為媒介,從而相比SD卡升級(jí)可以節(jié)省SD卡的成本;
3)安全的加密方式:過去依賴于ID的加密方式由于是判斷標(biāo)志位決定是否生成加密信息,從而導(dǎo)致加密信息存在多次生成的可能,所以并不能很好地保護(hù)自己的軟件;而本發(fā)明USBS通過將生成加密信息的代碼擦除從而確保加密信息只生成一次,更好地保護(hù)自己的軟件;
4)端口可配置:傳統(tǒng)可以通過一些編譯器的可視化界面配置我們?cè)谲浖惺褂枚丝冢仨毥?jīng)過編譯配置才能生效,本發(fā)明USBS可以不用重新編譯而直接通過可視化界面配置端口,在不同的產(chǎn)品上根據(jù)終端設(shè)備用PC端配置軟件配置端口即可,無需重新編譯代碼,使得同一個(gè)程序只需根據(jù)產(chǎn)品實(shí)際使用的端口重新配置一下即可使用在不同的產(chǎn)品上。
【附圖說明】
[0018]圖1為本發(fā)明的USBS固件升級(jí)及加密的方法的流程圖;
圖2為本發(fā)明與現(xiàn)有的升級(jí)方式的對(duì)比圖;
圖3為本發(fā)明中不同的操作系統(tǒng)對(duì)U盤的兩種不同的處理方式;
圖4為本發(fā)明中PC端配置軟件配置端口的運(yùn)行界面圖。
【具體實(shí)施方式】
[0019]為了更清楚地表述本發(fā)明,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地描述。
[0020]請(qǐng)參閱圖1,本發(fā)明的USBS固件升級(jí)及加密的方法,包括以下步驟:
步驟SI,對(duì)終端設(shè)備進(jìn)行上電復(fù)位;
步驟S2,判斷為初次上電或第二次上電及后續(xù)上電;若為初次上電,則進(jìn)行步驟S31 ;若為第二次上電及后續(xù)上電,則進(jìn)行步驟S32 ;該步驟有兩個(gè)獨(dú)立的過程,分別是步驟S31和步驟S32 ;它們不是傳統(tǒng)意義上的if語句分支,初次上電時(shí)執(zhí)行步驟S31過程。
[0021]步驟S31,在執(zhí)行過程中完成加密之后通過自編程方式擦除加密代碼,以保證加密信息只生成一次;擦除加密代碼后復(fù)位并結(jié)束;該步驟主要負(fù)責(zé)加密,在執(zhí)行過程中完成加密之后將通過自編程方式擦除加密代碼以保證加密信息只生成一次,并且以特定的代碼覆蓋步驟S31過程的入口,從而確保后續(xù)上電只執(zhí)行步驟S32過程,步驟S31過程最后將通過軟件復(fù)位,至此步驟S31結(jié)束。
[0022]步驟S32,校驗(yàn)加密信息;從第二次上電開始無需執(zhí)行步驟S31,直接執(zhí)行步驟32,該步驟是校驗(yàn)步驟S31過程中生成的加密信息,若是校驗(yàn)通過,則進(jìn)行步驟S4 ;若是校驗(yàn)不