本發(fā)明涉及電子產(chǎn)品維修領(lǐng)域,特別涉及一種基于Uboot的電子產(chǎn)品故障調(diào)試方法及系統(tǒng)。
背景技術(shù):
消費類電子產(chǎn)品是嵌入式系統(tǒng)的一大應(yīng)用領(lǐng)域,隨著人們?nèi)粘I?、生產(chǎn)和工作消費類電子產(chǎn)品的使用結(jié)合得越來越緊密,也對這類產(chǎn)品的軟件硬件安全性提出了更高的要求。
嵌入式軟件一般包含了引導(dǎo)升級程序(bootloader)、操作系統(tǒng)和應(yīng)用程序三個部分,其中bootloader程序負(fù)責(zé)整個系統(tǒng)的啟動、操作系統(tǒng)的加載和軟件數(shù)據(jù)升級等各種功能,是整個軟件系統(tǒng)中至關(guān)重要的換件。Uboot是目前最為主流的一種bootloader程序,適合在ARM、MIPS等體系的芯片中使用,可以用于加載Linux、Android、ECOS和VmWorks等各種操作系統(tǒng)。
Uboot可工作在兩種模式,正常啟動模式和命令運行模式。在正常啟動模式下,Uboot負(fù)責(zé)初始化軟硬件運行環(huán)境,然后加載操作系統(tǒng),最后將CPU的控制權(quán)轉(zhuǎn)交給操作系統(tǒng),對于最終的產(chǎn)品,Uboot都工作在這類模式下。在命令模式下,Uboot負(fù)責(zé)接收從串口輸入的命令并調(diào)用對應(yīng)的函數(shù)執(zhí)行,可以查詢并修改系統(tǒng)中ROM和RAM各個區(qū)域的數(shù)據(jù),這種做法給開發(fā)調(diào)試帶來了極大的方便。Uboot工作在正常模式或者命令行模式是在系統(tǒng)上電初始化后,通過讀取串口數(shù)據(jù)的結(jié)果決定的,如果一段時間內(nèi)未從串口獲取到任何數(shù)據(jù),則默認(rèn)進(jìn)入正常啟動模式,如果這段時間內(nèi)有讀取到數(shù)據(jù),則Uboot進(jìn)入命令模式,等待用戶輸入命令執(zhí)行。
由于Uboot可以工作在兩種模式,所以對于采用Uboot的消費類電子設(shè)備一般也可以有兩種模式,一種是支持開發(fā)調(diào)試模式的工程機器,對于這種模式的設(shè)備,用戶或者開發(fā)者可以通過串口對設(shè)備進(jìn)行各種操作。另一種是處于產(chǎn)品模式的正式機器,串口可能已經(jīng)從硬件上移除,這種模式下用戶或者開發(fā)者都無法通過Uboot進(jìn)行任何操作。這種模式對于保護(hù)設(shè)備的軟件安全性和用戶數(shù)據(jù)安全性都有一定好處,但是卻給后期的產(chǎn)品調(diào)試維護(hù)帶來很大不便。
采用串口通信進(jìn)入命令模式以及命令輸入,使得前期的開發(fā)調(diào)試和后期的維修十分不便。一方面開發(fā)調(diào)試的時候每次都要先手動進(jìn)入命令模式,然后輸入相應(yīng)的指令才能運行程序或者打印出調(diào)試信息,會降低開發(fā)效率。另一方面,對于銷售到市場后的機器如果出現(xiàn)故障,也難以維修,因為大部分消費類電子設(shè)備已不再保留串口,所以無法進(jìn)行相關(guān)的故障查詢和調(diào)試。
現(xiàn)有的進(jìn)入命令模式的方法過于簡單,對軟件和用戶數(shù)據(jù)的獲取和篡改十分容易。由于僅僅通過串口通信就可以輕易的進(jìn)入命令模式,而不做任何身份校驗的操作,所以只要熟悉相應(yīng)開發(fā)平臺軟件結(jié)構(gòu)的開發(fā)者,可以十分輕易的對設(shè)備的系統(tǒng)軟件進(jìn)行篡改,又稱為刷機成別人的系統(tǒng)軟件。另一方面,也可以輕易的讀取用戶數(shù)據(jù)進(jìn)行分析和篡改。因此這種模式下的Uboot對于軟件和用戶數(shù)據(jù)的保護(hù)較弱,安全性差。
申請?zhí)枮?01210436671.3的中國發(fā)明專利公開了一種高效嵌入式系統(tǒng)調(diào)試方法,但該專利解決的是在研發(fā)新產(chǎn)品過程中調(diào)試一個新功能或是解決一個新bug失效時,需要重新拆flash,燒錄flash,焊接flash的問題;該專利所公開的技術(shù)特征未解決現(xiàn)有基于Uboot的產(chǎn)品因移除串口而不便于后期產(chǎn)品調(diào)試維護(hù)的問題以及基于Uboot的產(chǎn)品在調(diào)試維護(hù)過程中帶來的安全問題。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:本發(fā)明提供一種基于Uboot的電子產(chǎn)品故障調(diào)試方法及系統(tǒng),解決現(xiàn)有基于Uboot的產(chǎn)品因移除串口而不便于后期產(chǎn)品調(diào)試維護(hù)的問題以及基于Uboot的產(chǎn)品在調(diào)試維護(hù)過程中帶來的安全問題。
為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:一種基于Uboot的電子設(shè)備故障調(diào)試方法,包括以下步驟:
通過USB接口或SD卡接口獲取存儲在外接存儲設(shè)備的命令校驗文件;所述命令校驗文件包括第一密鑰數(shù)據(jù);所述電子設(shè)備中存儲有第二密鑰數(shù)據(jù);
比對第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù);
若第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù)一致,則進(jìn)入命令模式;
通過USB接口或SD卡接口根據(jù)外接存儲設(shè)備中的命令獲取故障調(diào)試信息;
根據(jù)故障調(diào)試信息調(diào)試電子設(shè)備;
若第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù)不一致,則進(jìn)入下一步校驗;所述下一步校驗包括以下步驟:
獲取第三密鑰數(shù)據(jù);所述第三密鑰數(shù)據(jù)由用戶通過串口輸入得到;
比對第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù);
若第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù)一致,則進(jìn)入命令模式;
通過串口獲取用戶輸入的故障調(diào)試信息;
若第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù)不一致,則進(jìn)入正常運行模式。
本發(fā)明的有益效果在于:本發(fā)明涉及的一種基于Uboot的電子設(shè)備故障調(diào)試方法,根據(jù)基于Uboot的電子設(shè)備中配備USB接口或SD卡接口的特點,本發(fā)明提出了利用既有的USB接口或SD卡接口進(jìn)入命令模式的方法,這樣不用增加額外的接口,提高電子設(shè)備調(diào)試的便捷性,為后期設(shè)備維修調(diào)試帶來便利;特別是對于處于產(chǎn)品模式的正式電子設(shè)備,串口被移除的情況下提供故障調(diào)試方法;而USB或SD通道的數(shù)據(jù)傳輸速度高于串口通道的數(shù)據(jù)傳輸速度,且通過USB通道或SD卡通道可以獲取預(yù)先存儲在外接存儲設(shè)備中的密鑰數(shù)據(jù)或故障調(diào)試命令,實現(xiàn)了自動化的故障調(diào)試,相比傳統(tǒng)通過串口調(diào)試需要人工命令交互的方式,提高了調(diào)試維護(hù)的效率。
本發(fā)明還引入了安全校驗方法,通過在電子設(shè)備中存儲密鑰數(shù)據(jù),在進(jìn)入命令模式之前需要經(jīng)過安全校驗,只有獲取與密鑰數(shù)據(jù)匹配的數(shù)據(jù)才允許進(jìn)入命令模式,進(jìn)行進(jìn)一步的故障調(diào)試,這種方式保證了電子設(shè)備的安全性,有效避免系統(tǒng)軟件被惡意篡改。
附圖說明
圖1為本發(fā)明具體實施方式的一種基于Uboot的電子設(shè)備故障調(diào)試方法流程圖;
圖2為本發(fā)明具體實施方式的一種基于Uboot的電子設(shè)備故障調(diào)試系統(tǒng)結(jié)構(gòu)圖;
標(biāo)號說明:
1、第一獲取模塊;2、第一比對模塊;3、第一進(jìn)入模塊;4、第二獲取模塊;5、調(diào)試模塊;6、第三獲取模塊;7、故障調(diào)試模塊;8、第二進(jìn)入模塊;9、第四獲取模塊;10、第三進(jìn)入模塊。
具體實施方式
為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、所實現(xiàn)目的及效果,以下結(jié)合實施方式予以說明。
本發(fā)明最關(guān)鍵的構(gòu)思在于:通過密鑰數(shù)據(jù)進(jìn)行安全驗證后進(jìn)入命令模式,電子設(shè)備通過USB接口或SD卡接口根據(jù)外接存儲設(shè)備中的命令獲取故障調(diào)試信息,為電子設(shè)備特別是移除串口的電子設(shè)備提供了快捷、安全的故障調(diào)試方法。
請參照圖1至圖2,本發(fā)明提供一種基于Uboot的電子設(shè)備故障調(diào)試方法,包括以下步驟:
通過USB接口或SD卡接口獲取存儲在外接存儲設(shè)備的命令校驗文件;所述命令校驗文件包括第一密鑰數(shù)據(jù);所述電子設(shè)備中存儲有第二密鑰數(shù)據(jù);
比對第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù);
若第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù)一致,則進(jìn)入命令模式;
通過USB接口或SD卡接口根據(jù)外接存儲設(shè)備中的命令獲取故障調(diào)試信息;
根據(jù)故障調(diào)試信息調(diào)試電子設(shè)備;
若第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù)不一致,則進(jìn)入下一步校驗;所述下一步校驗包括以下步驟:
獲取第三密鑰數(shù)據(jù);所述第三密鑰數(shù)據(jù)由用戶通過串口輸入得到;
比對第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù);
若第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù)一致,則進(jìn)入命令模式;
通過串口獲取用戶輸入的故障調(diào)試信息;
若第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù)不一致,則進(jìn)入正常運行模式。
上述基于Uboot的電子設(shè)備故障調(diào)試方法,根據(jù)基于Uboot的電子設(shè)備中配備USB接口或SD卡接口的特點,本發(fā)明提出了利用既有的USB接口或SD卡接口進(jìn)入命令模式的方法,這樣不用增加額外的接口,提高電子設(shè)備調(diào)試的便捷性,為后期設(shè)備維修調(diào)試帶來便利;特別是對于處于產(chǎn)品模式的正式電子設(shè)備,串口被移除的情況下提供故障調(diào)試方法;而USB或SD通道的數(shù)據(jù)傳輸速度高于串口通道的數(shù)據(jù)傳輸速度,且通過USB通道或SD卡通道可以獲取預(yù)先存儲在外接存儲設(shè)備中的密鑰數(shù)據(jù)或故障調(diào)試命令,實現(xiàn)了自動化的故障調(diào)試,相比傳統(tǒng)通過串口調(diào)試需要人工命令交互的方式,提高了調(diào)試維護(hù)的效率。
本發(fā)明還引入了安全校驗方法,通過在電子設(shè)備中存儲密鑰數(shù)據(jù),在進(jìn)入命令模式之前需要經(jīng)過安全校驗,只有獲取與密鑰數(shù)據(jù)匹配的數(shù)據(jù)才允許進(jìn)入命令模式,進(jìn)行進(jìn)一步的故障調(diào)試,這種方式保證了電子設(shè)備的安全性,有效避免系統(tǒng)軟件被惡意篡改。
本方法中依然保留從串口獲取調(diào)試信息的方式;對于保留串口的設(shè)備提供故障調(diào)試的渠道。由于串口的檢測不同于USB接口或SD卡接口檢測,串口檢測必須延遲一段時間,等待用戶輸入命令校驗數(shù)據(jù),如果有數(shù)據(jù)輸入,則進(jìn)行命令校驗授權(quán)處理,因此優(yōu)先檢測USB或SD卡接口的方法,若USB或SD卡接口檢測到命令校驗文件的密鑰數(shù)據(jù),并通過校驗,則可直接進(jìn)入命令模式,跳過檢測串口的步驟,這種方法有效節(jié)省了檢測和校驗時間。并且每臺電子設(shè)備所使用的三組密鑰數(shù)據(jù)都是唯一的,防止某臺設(shè)備的某個密鑰數(shù)據(jù)泄露而導(dǎo)致所有機器的軟件和運行環(huán)境都出現(xiàn)風(fēng)險,從而提高系統(tǒng)的安全性。
進(jìn)一步的,所述電子設(shè)備的加密芯片中存儲有第二密鑰數(shù)據(jù)。
由上述描述可知,設(shè)備的密鑰數(shù)據(jù)保存在加密芯片中,主芯片在從USB接口、SD卡或者串口獲得命令校驗文件后,將該文件中的數(shù)據(jù)發(fā)送到加密芯片中進(jìn)行校驗處理,校驗的結(jié)果再返回給主芯片,讓主芯片來判斷是否進(jìn)入命令模式。這種實現(xiàn)模式中,所有安全相關(guān)的操作都在加密芯片中進(jìn)行處理,專用性強,數(shù)據(jù)安全性高,但是也增加了設(shè)備的成本。
進(jìn)一步的,所述電子設(shè)備的主芯片OTP區(qū)域存儲有第二密鑰數(shù)據(jù)。
由上述描述可知,目前已經(jīng)有越來越多的主芯片自身帶有一定容量的OTP區(qū)域和專用的硬件加解密模塊,再這種情況下,可以將設(shè)備的密鑰數(shù)據(jù)保存在OTP區(qū)域。軟件通過讀取OTP區(qū)域的密鑰數(shù)據(jù)和命令校驗文件中的數(shù)據(jù),送到硬件加解密模塊進(jìn)行校驗處理。這種模式中,所有和安全相關(guān)的操作都在主芯片中進(jìn)行處理,為了進(jìn)一步提高數(shù)據(jù)的安全性,密鑰在OTP區(qū)域必須以加密的方式保存,而該方案僅需要用到現(xiàn)有的主芯片,不用額外添加芯片,所以不會增加成本。
進(jìn)一步的,所述電子設(shè)備的ROM中存儲有第二密鑰數(shù)據(jù)。
由上述描述可知,上述方法適用于主芯片為通用芯片的設(shè)備中,密鑰數(shù)據(jù)以私有的數(shù)據(jù)格式加密存儲在系統(tǒng)的ROM中,而校驗過程中所用到的加解密操作由純軟件實現(xiàn)。這種方式最節(jié)約成本,并且通過解密并打亂密鑰數(shù)據(jù)的存儲格式,可以提高密鑰數(shù)據(jù)的安全性。
進(jìn)一步的,一種基于Uboot的電子設(shè)備故障調(diào)試系統(tǒng),包括:
第一獲取模塊1:用于通過USB接口或SD卡接口獲取存儲在外接存儲設(shè)備的命令校驗文件;所述命令校驗文件包括第一密鑰數(shù)據(jù);所述電子設(shè)備中存儲有第二密鑰數(shù)據(jù);
第一比對模塊2:用于比對第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù);
第一進(jìn)入模塊3:用于當(dāng)?shù)诙荑€數(shù)據(jù)與第一密鑰數(shù)據(jù)一致時,則進(jìn)入命令模式;
第二獲取模塊4:用于通過USB接口或SD卡接口根據(jù)外接存儲設(shè)備中的命令獲取故障調(diào)試信息;
調(diào)試模塊5:根據(jù)故障調(diào)試信息調(diào)試電子設(shè)備;
第三獲取模塊6:用于獲取第三密鑰數(shù)據(jù);所述第三密鑰數(shù)據(jù)由用戶通過串口輸入得到;
第二比對模塊7:用于比對第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù);
第二進(jìn)入模塊8:用于若第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù)一致,則進(jìn)入命令模式;
第四獲取模塊9:用于通過串口獲取用戶輸入的故障調(diào)試信息;
第三進(jìn)入模塊10:用于若第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù)不一致,則進(jìn)入正常運行模式。
實施例1
請參照圖1,一種基于Uboot的電子設(shè)備故障調(diào)試方法,包括以下步驟:
S1:電子設(shè)備通過USB接口或SD卡接口獲取存儲在外接存儲設(shè)備的命令校驗文件;所述命令校驗文件包括第一密鑰數(shù)據(jù);所述電子設(shè)備中存儲有第二密鑰數(shù)據(jù);
S2:比對第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù);
判斷第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù)一致是否一致;
S31:若第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù)一致;則進(jìn)入命令模式;
S311:通過USB接口或SD卡接口根據(jù)外接存儲設(shè)備中的命令獲取故障調(diào)試信息;
S4:根據(jù)故障調(diào)試信息對電子設(shè)備進(jìn)行調(diào)試。
實施例2
請參照圖1,一種基于Uboot的電子設(shè)備故障調(diào)試方法,包括以下步驟:
S1:電子設(shè)備通過USB接口或SD卡接口獲取存儲在外接存儲設(shè)備的命令校驗文件;所述命令校驗文件包括第一密鑰數(shù)據(jù);所述電子設(shè)備中存儲有第二密鑰數(shù)據(jù);
S2:比對第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù);判斷第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù)一致是否一致;
S32:若第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù)不一致;則進(jìn)入下一步校驗;
S321:獲取第三密鑰數(shù)據(jù);所述第三密鑰數(shù)據(jù)由用戶通過串口輸入得到;
S322:比對第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù);
判斷第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù)是否一致;
S3221:若第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù)一致;則進(jìn)入命令模式;
S32211:根據(jù)用戶通過串口輸入的命令獲取故障調(diào)試信息;
S4:根據(jù)故障調(diào)試信息對電子設(shè)備進(jìn)行調(diào)試。
實施例3
S1:電子設(shè)備通過USB接口或SD卡接口獲取存儲在外接存儲設(shè)備的命令校驗文件;所述命令校驗文件包括第一密鑰數(shù)據(jù);所述電子設(shè)備中存儲有第二密鑰數(shù)據(jù);
S2:比對第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù);判斷第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù)一致是否一致;
S32:若第二密鑰數(shù)據(jù)與第一密鑰數(shù)據(jù)不一致;則進(jìn)入下一步校驗;
S321:獲取第三密鑰數(shù)據(jù);所述第三密鑰數(shù)據(jù)由用戶通過串口輸入得到;
S322:比對第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù);
判斷第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù)是否一致;
S3222若第三密鑰數(shù)據(jù)與第二密鑰數(shù)據(jù)不一致時,則進(jìn)入正常運行模式;
S4:根據(jù)故障調(diào)試信息對電子設(shè)備進(jìn)行調(diào)試。
綜上所述,本發(fā)明涉及的一種基于Uboot的電子設(shè)備故障調(diào)試方法,根據(jù)基于Uboot的電子設(shè)備中配備USB接口或SD卡接口的特點,本發(fā)明提出了利用既有的USB接口或SD卡接口進(jìn)入命令模式的方法,這樣不用增加額外的接口,提高電子設(shè)備調(diào)試的便捷性,為后期設(shè)備維修調(diào)試帶來便利;特別是對于處于產(chǎn)品模式的正式電子設(shè)備,串口被移除的情況下提供故障調(diào)試方法;而USB或SD通道的數(shù)據(jù)傳輸速度高于串口通道的數(shù)據(jù)傳輸速度,且通過USB通道或SD卡通道可以獲取預(yù)先存儲在外接存儲設(shè)備中的密鑰數(shù)據(jù)或故障調(diào)試命令,實現(xiàn)了自動化的故障調(diào)試,相比傳統(tǒng)通過串口調(diào)試需要人工命令交互的方式,提高了調(diào)試維護(hù)的效率。
本發(fā)明還引入了安全校驗方法,通過在電子設(shè)備中存儲密鑰數(shù)據(jù),在進(jìn)入命令模式之前需要經(jīng)過安全校驗,只有獲取與密鑰數(shù)據(jù)匹配的數(shù)據(jù)才允許進(jìn)入命令模式,進(jìn)行進(jìn)一步的故障調(diào)試,這種方式保證了電子設(shè)備的安全性,有效避免系統(tǒng)軟件被惡意篡改。
本方法中依然保留從串口獲取調(diào)試信息的方式;對于保留串口的設(shè)備提供故障調(diào)試的渠道。由于串口的檢測不同于USB接口或SD卡接口檢測,串口檢測必須延遲一段時間,等待用戶輸入命令校驗數(shù)據(jù),如果有數(shù)據(jù)輸入,則進(jìn)行命令校驗授權(quán)處理,因此優(yōu)先檢測USB或SD卡接口的方法,若USB或SD卡接口檢測到命令校驗文件的密鑰數(shù)據(jù),并通過校驗,則可直接進(jìn)入命令模式,跳過檢測串口的步驟,這種方法有效節(jié)省了檢測和校驗時間。
以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書內(nèi)容所作的等同變換,或直接或間接運用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。