專利名稱:一種基于linux嵌入式操作系統(tǒng)的程序校驗裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于嵌入式操作系統(tǒng)技術(shù)領(lǐng)域,具體涉及一種基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置。
背景技術(shù):
長期以來,一些使用Iinux嵌入式操作系統(tǒng)的產(chǎn)品,例如數(shù)字電視機頂盒產(chǎn)品,為保證系統(tǒng)主程序的安全性和完整性,會強制 要求采用loader裝載程序+app主程序架構(gòu),由loader裝載程序負責(zé)對app主程序進行自檢校驗、解壓,如果自檢通過、解壓正確,才會真正跳轉(zhuǎn)應(yīng)用app主程序開始運行,否則跳轉(zhuǎn)到指定的系統(tǒng)修復(fù)界面。隨著Iinux嵌入式操作系統(tǒng)大flash存儲設(shè)備的應(yīng)用,例如使用512M 2G的flash存儲設(shè)備,原有的loader裝載程序中校驗的校驗機制存在校驗時間長,效率不高的問題。這是由于,loader裝載程序中為計算校驗,已經(jīng)將app主程序加載了一次內(nèi)存,跳轉(zhuǎn)app主程序運行時又要再加載一次內(nèi)存,在app較大的場景,app加載內(nèi)存耗時較多,校驗耗時問題尤為突出,這樣會延長系統(tǒng)開機的時間,造成用戶的使用體驗不佳。更為麻煩的是由于上述loader裝載程序校驗做法的校驗碼是預(yù)先通過工具寫入的,寫入后不會隨著程序更改而自動更新,所以這種校驗機制只能用于校驗寫入后不會被自身更改的app主程序,不能適用于基于可讀寫文件系統(tǒng),例如yaffs可讀寫根文件系統(tǒng),這是由于在基于這類可讀寫文件系統(tǒng)的應(yīng)用運行過程中會自行產(chǎn)生和更改一些臨時文件的應(yīng)用場景。因此,隨著Iinux嵌入式操作系統(tǒng)的廣泛應(yīng)用,傳統(tǒng)的loader裝載程序校驗方式校驗速度慢、不適用于可寫文件系統(tǒng)的問題越發(fā)突出。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提出一種基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置,實現(xiàn)對需要校驗的程序模塊的校驗。解決傳統(tǒng)技術(shù)中校驗方式校驗速度慢、不適用于可寫文件系統(tǒng)的缺陷。本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案是—種基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置,包括有boot引導(dǎo)模塊、kernel內(nèi)核模塊、rootfs根文件模塊、loader裝載模塊、被檢驗?zāi)K,另外還包括校驗?zāi)K,該校驗?zāi)K保存在loader裝載模塊中;啟動腳本模塊,該啟動腳本模塊保存在loader裝載模塊中,用于在boot引導(dǎo)模塊、kernel內(nèi)核模塊、rootfs根文件模塊啟動運行后,調(diào)用校驗?zāi)K對被檢驗?zāi)K進行校驗。本發(fā)明的有益效果是本發(fā)明利用了 Iinux嵌入式操作系統(tǒng)本身的特點,將校驗工作放到Iinux嵌入式操作系統(tǒng)啟動后做,利用Iinux嵌入式操作系統(tǒng)啟動后,文件系統(tǒng)內(nèi)可以存在多個可執(zhí)行的獨立應(yīng)用,并通過自動執(zhí)行的腳本來調(diào)用這些應(yīng)用。這樣校驗、執(zhí)行工作在同一套操作系統(tǒng)中運行,校驗完不需要退出操作系統(tǒng),直接執(zhí)行,可以避免因校驗、執(zhí)行的不同目的將程序重復(fù)載入內(nèi)存;同時由于校驗標(biāo)的已經(jīng)是應(yīng)用程序的可執(zhí)行文件而不是應(yīng)用程序分區(qū)映像,對可寫文件系統(tǒng),分區(qū)映像雖然可能會隨時改變,但應(yīng)用的可執(zhí)行文件/文件夾不會變化,這樣就可以很好的規(guī)避可寫文件系統(tǒng)創(chuàng)建臨時文件、文件夾導(dǎo)致loader裝載模塊無法對分區(qū)映像校驗的問題, 因此能夠適用于可寫文件系統(tǒng)。該校驗裝置是基于Iinux嵌入式操作系統(tǒng)開發(fā)的,可以固件化,具有通用性好,容易跨硬件平臺移植的優(yōu)點。
圖I是本發(fā)明的裝置架構(gòu)圖。
具體實施例方式下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明。本實施例的技術(shù)方案主要適用于數(shù)字電視機頂盒產(chǎn)品,但也可以用于其他基于Iinux嵌入式操作系統(tǒng)的嵌入式設(shè)備的程序校驗,并不局限于機頂盒。如圖1,該基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置,包括有boot引導(dǎo)模塊、kernel內(nèi)核模塊、rootfs根文件模塊、loader裝載模塊、被檢驗?zāi)K,另外還包括校驗?zāi)K,該校驗?zāi)K保存在loader裝載模塊中;啟動腳本模塊,該啟動腳本模塊保存在loader裝載模塊中,用于在boot引導(dǎo)模塊、kernel內(nèi)核模塊、rootfs根文件模塊啟動運行后,調(diào)用校驗?zāi)K對被檢驗?zāi)K進行校驗。在檢驗?zāi)K中,包括參數(shù)接收模塊、校驗固件、標(biāo)志模塊,校驗所需的參數(shù)例如解壓方式和密鑰,由參數(shù)接收模塊進行接收,再由校驗固件按照參數(shù)接收模塊所接收的參數(shù)對被檢驗?zāi)K進行校驗。校驗的結(jié)果保存在標(biāo)志模塊中?;贗inux操作系統(tǒng)的獨立的校驗固件和配套的啟動腳本模塊可獨立制作,這樣可移植性和穩(wěn)定性更強校驗部分的應(yīng)用一旦做好,將不受平臺和驅(qū)動程序狀態(tài)影響,可以隨意移植到同一個編譯環(huán)境下的所有Iinux操作中去;如果是不同的編譯環(huán)境,也只需要重新編譯生成可執(zhí)行文件即可移植。不同的硬件平臺、不同的項目移植該模塊只需要啟動腳本模塊做相應(yīng)變化即可,這樣可以實現(xiàn)將原來的開發(fā)模式改為固件調(diào)用模式;算法優(yōu)良的固件也可以和配套的主程簽名工具打包出售,用于主程序安全管理。被檢驗?zāi)K可以是loader裝載程序模塊,也可以是app應(yīng)用程序模塊。由于該固件底層驅(qū)動基于Iinux操作,移植、維護的工作量將大大減小,因此更加適用于一些嵌入式產(chǎn)品對不同廠家統(tǒng)一 loader裝載程序模塊校驗方式、需要統(tǒng)一對app應(yīng)用程序模塊進行簽名的要求。loader裝載程序模塊和app應(yīng)用程序模塊可以使用同一個的固件進行全套校驗工具,不需要loader裝載程序模塊設(shè)計人員和app應(yīng)用程序模塊設(shè)計人員溝通交互,這樣就不容易出錯。如果需要節(jié)省flash存儲設(shè)備空間,可以在Iinux嵌入式操作系統(tǒng)系統(tǒng)中使用腳本直接調(diào)用Iinux嵌入式操作系統(tǒng)下的第3方解壓軟件進行處理,也可以調(diào)用第3方防毒、防木馬、防盜改的補?。灰部梢灾苯訉pp應(yīng)用程序模塊執(zhí)行文件做成自解壓運行的格式。由于校驗?zāi)K和啟動腳本模塊是基于Iinux嵌入式操作系統(tǒng)的可執(zhí)行程序,因此在校驗loader裝載程序模塊和app應(yīng)用程序模塊時,均可以通過mount掛載該校驗?zāi)K和啟動腳本模塊所在的文件系統(tǒng),然后直接在Iinux嵌入式操作系統(tǒng)下運行的方式來進行調(diào)用同一個模塊。對于被檢驗?zāi)K為app應(yīng)用程序模塊的情形,還可按以下方式進行校驗和簽名。在校驗裝置中還包括加密模塊,該加密模塊用于按照mount掛載U盤的方式對所述app應(yīng)用程序模塊簽名。在校驗裝置中,先判斷校驗固件是否存在,如果存在則運行該校驗固件,根據(jù)app應(yīng)用程序模塊的壓縮或加密或校驗的方式不同,校驗固件需傳入的參數(shù),例如解壓方式和密鑰,可能簡單、可能復(fù)雜甚至需要傳入一個獨立的參數(shù)文件。如果app應(yīng)用程序模塊校驗失敗,則校驗固件返回錯誤,由標(biāo)志模塊實現(xiàn)錯誤狀態(tài)標(biāo)志位的保存; 如果未發(fā)現(xiàn)校驗固件、或校驗固件輸入的參數(shù)非法,或者校驗固件中觸發(fā)了需要重簽名的后門,則跳轉(zhuǎn)運行加密模塊進行重簽名。上述調(diào)用的邏輯關(guān)系容易用Iinux腳本實現(xiàn),例如
權(quán)利要求
1.一種基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置,包括有boot引導(dǎo)模塊、kernel內(nèi)核模塊、rootfs根文件模塊、loader裝載模塊、被檢驗?zāi)K,其特征在于,還包括 校驗?zāi)K,該校驗?zāi)K保存在loader裝載模塊中; 啟動腳本模塊,該啟動腳本模塊保存在loader裝載模塊中,用于在boot引導(dǎo)模塊、kernel內(nèi)核模塊、rootfs根文件模塊啟動運行后,調(diào)用校驗?zāi)K對被檢驗?zāi)K進行校驗。
2.根據(jù)權(quán)利要求I所述的一種基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置,其特征在于,所述校驗?zāi)K包括 參數(shù)接收模塊,用于接收所述進行校驗所需的參數(shù); 校驗固件,按照參數(shù)接收模塊所接收的參數(shù)對被檢驗?zāi)K進行校驗。
3.根據(jù)權(quán)利要求2所述的一種基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置,其特征在于,所述校驗?zāi)K還包括標(biāo)志模塊,用于保存所述對被檢驗?zāi)K進行校驗的結(jié)果。
4.根據(jù)權(quán)利要求I所述的一種基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置,其特征在于,所述啟動腳本模塊隨該程序校驗裝置所應(yīng)用的平臺而變化。
5.根據(jù)權(quán)利要求I所述的一種基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置,其特征在于,所述被檢驗?zāi)K為loader裝載程序模塊。
6.根據(jù)權(quán)利要求I所述的一種基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置,其特征在于,所述被檢驗?zāi)K為app應(yīng)用程序模塊。
7.根據(jù)權(quán)利要求6所述的一種基于Iinux嵌入式操作系統(tǒng)的程序校驗裝置,其特征在于,還包括加密模塊,所述app應(yīng)用程序模塊需經(jīng)過該加密模塊按照mount掛載U盤的方式簽名后,再作為被檢驗?zāi)K進行校驗。
全文摘要
本發(fā)明涉及嵌入式操作系統(tǒng)技術(shù)。本發(fā)明解決了現(xiàn)有技術(shù)中校驗方式校驗速度慢、不適用于可寫文件系統(tǒng)的問題,提供了一種基于linux嵌入式操作系統(tǒng)的程序校驗裝置,其技術(shù)方案可概括為基于linux嵌入式操作系統(tǒng)的程序校驗裝置,包括boot引導(dǎo)模塊、kernel內(nèi)核模塊、rootfs根文件模塊、loader裝載模塊、被檢驗?zāi)K、校驗?zāi)K、啟動腳本模塊,校驗?zāi)K和啟動腳本模塊保存在loader裝載模塊中,在boot引導(dǎo)模塊、kernel內(nèi)核模塊、rootfs根文件模塊啟動運行后,由啟動腳本模塊調(diào)用校驗?zāi)K對被檢驗?zāi)K進行校驗。本發(fā)明的有益效果是,校驗速度快,適用于基于linux嵌入式操作系統(tǒng)的嵌入式設(shè)備。
文檔編號G06F9/445GK102902530SQ201210329850
公開日2013年1月30日 申請日期2012年9月7日 優(yōu)先權(quán)日2012年9月7日
發(fā)明者羅健豐, 熊建勇, 王偉軍 申請人:四川長虹電器股份有限公司