王楠楠,華 中,寇志強,楊愛萍,宋占杰
(1.天津大學 電視與圖像研究所,天津 300072;2.天津中環電子信息集團有限公司,天津 300190;3.天津鉑創國茂電子科技發展有限公司,天津 300384)
基于Android的改進雙Loader的設計與實現
王楠楠1,華 中2,寇志強3,楊愛萍1,宋占杰1
(1.天津大學 電視與圖像研究所,天津 300072;2.天津中環電子信息集團有限公司,天津 300190;3.天津鉑創國茂電子科技發展有限公司,天津 300384)
Android機頂盒智能終端因具有開放的開發平臺、多樣化的圖形界面和友好的用戶體驗而深受開發商和用戶的青睞,然而其軟件升級的核心模塊Loader還有待完善。為了克服因意外導致Loader損壞而使機頂盒喪失軟件升級功能的缺陷,引入“雙Loader”運行模式;為了確保升級文件的正確性和完整性,增加升級的可靠性,采用雙重CRC算法對升級文件進行校驗;而數字簽名技術的使用,實現了開發商和運營商對軟件升級的控制。測試結果表明,新方案有效地完成了Android機頂盒應用程序及Loader本身的升級,為Android機頂盒開發商和運營商提供了一種優良的軟件升級方案。
Android機頂盒;Loader;雙loader;雙重CRC校驗;數字簽名
Android系統[1]是Google公司于2009年開發的一個新興的開放性的智能系統平臺,它采用Linux內核,具有高穩定性、可靠性,以及很好的可伸縮性和擴展性,能夠針對不同的應用和硬件環境調整,優化出滿足當前應用需要的最佳性能。因此,具有Android系統的智能終端設備深受用戶的喜愛。
隨著Android系統的廣泛應用,數字電視技術的日新月異,基于Android系統的數字電視機頂盒應運而生。作為一種新興的智能終端設備,軟件在其中扮演了非常重要的角色。由于機頂盒的功能不斷拓展,內部的軟件及Loader[2]本身的不斷更新,Android機頂盒能夠進行軟件升級的需求也變得日益迫切。目前,機頂盒Loader模塊多基于Linux平臺[3],基于Android平臺的少之又少,而且還存在很大的弊端。因此,為了保護開發商和運營商的利益,也為了讓用戶及時地享受新服務、感受新技術,本文設計了一種基于Android的能有效的完成應用程序以及自身升級的Loader模塊。
Loader中文名是下載器,是機頂盒軟件升級的功能模塊,也是其核心模塊,Loader模塊對于機頂盒的正常工作和后續軟件的升級起著至關重要的作用。本文設計的Loader在運行模式上,采用“雙Loader”運行模式;在升級文件完整性校驗上,采用雙重CRC32算法校驗;而在安全性上,結合信息摘要算法(Hash算法)與RSA算法,對升級文件添加數字簽名。具體框架如圖1所示。
1.1 雙Loader
當Loader軟件出現BUG或與前端設備不匹配時就必須通過Loader模塊的自身升級進行修復,然而Load?er在進行自身升級時,一旦發生意外將導致安裝失敗,Loader程序便不能正常運行,用戶便無法通過軟件升級來享受新服務、新技術。因此,為了確保Loader程序的可用性,保證用戶能及時地進行軟件更新,本方案引入“雙Loader”運行模式,即除了與開機引導程序(Start?er)、應用程序(App)同在系統應用分區中的主Loader外,SD卡分區中也存放了一份備份Loader安裝包。若因意外導致升級失敗或Loader損壞,機頂盒重啟后,Starter檢測到主Loader損壞便調用安裝SD卡分區的備份Loader安裝包進行同步過程,即安裝SD卡中的備份Loader替換損壞的主Loader,使機頂盒能重新具有升級功能。而在Loader完成自身升級后,要用新升級的Loader安裝包替換原來的備份Loader安裝包,以保證備份Loader隨著主Loader的更新而更新。雙Loader同步的具體過程如圖2所示。

圖1 改進的Laoder框架

圖2 雙Loader同步過程
1.2 雙重CRC校驗
升級流是由一個或多個PES[4]包組合而來的,由于數據的完整性十分重要,運營商在前端發送升級流時在每個PES包中均增加了CRC校驗碼。然而,單一的CRC校驗并不能完全可靠地驗證數據的完整性,升級文件在傳輸的過程可能會出現部分丟失或損壞的現象,造成文件傳輸不完整,因此,為了增加校驗的可靠性,本文在原有的基礎上再增加了一重CRC校驗,即對升級文件進行雙重CRC校驗,以確保升級文件完整。
CRC[5]校驗,即循環冗余校驗,是數據通信領域中最常用的一種差錯校驗碼,相對于目前常用的MD5算法,CRC算法實現簡單,檢錯能力強,運行時間短。經過CRC算法處理后的升級文件通過HFC網絡發送到用戶終端,用戶終端Loader模塊下載時首先對每個PES包進行校驗,校驗通過的PES包保存有效載荷區,未通過的舍棄,重復上述過程,直至所有升級文件下載完成為止。下載完成后再對緩存區的待升級文件進行CRC校驗,若校驗通過,則繼續升級過程,反之則停止升級過程。雙重CRC校驗的具體過程如圖3所示。
1.3 數字簽名
機頂盒品牌不同,Loader模塊實現升級的方式也不同。因此,為了讓本品牌的機頂盒只下載屬于自己的軟件,拒絕非法軟件的安裝,本文采用基于簽名的權限檢查機制[6],結合信息摘要算法(Hash算法)與數字簽名技術對升級流進行加解密處理,讓機頂盒以更安全的方式進行軟件更新。
RSA[7]算法是第一個能同時用于加密和數字簽名的算法,是迄今為止理論上最為成熟完善的公鑰密碼體制。然而,RSA加密算法適合處理小數據量的信息,對大數據文件運算效率較低。所以,對于大數據文件,本文結合信息摘要算法(Hash算法)只對其信息摘要進行加密,然后將加密的摘要與待升級的原文件一起發送到用戶終端。用戶終端Loader模塊接收完升級包后,首先利用固化在機頂盒中的運營商公鑰(OPK)對加密的提供商私鑰(PSK)進行解密,然后用解密后的私鑰(PSK)解密發送方加密的摘要文件,得到發送方升級文件的摘要,最后將下載的升級文件通過Hash算法生成接收方摘要[8],由于接收方摘要和發送方摘要是由相同的方法得到的,若兩者相同,則繼續升級過程,否則停止升級過程,其具體實現過程如圖4所示。
Android操作系統擁有開放的開發平臺,可幫助運營商便捷地完成系統的修改和二次開發,當某一程序經過完善再次投入使用時需要通過Android機頂盒Loader模塊進行軟件更新。軟件更新可通過自動升級或手動強制升級來完成。

圖3 雙重CRC校驗的實現過程

圖4 數字簽名實現過程
2.1 自動升級
自動升級是指由運營商前端統一播發升級數據流,通過網絡信息表(NIT)中的描述符(linkage_descrip?tor)中相關內容的變化觸發升級[9]。linkage_descriptor中相關內容如表1所示。

表1 linkage_descriptor描述子部分內容
根據NIT表檢索機制,當機頂盒主程檢測到機頂盒序列號在NIT表規定的范圍內時,且兩者OUI、硬件版本相等,linkage中軟件版本高于機頂盒中版本時,先將前端升級碼流的信道參數(下載頻率、符號率、解調參數等)與一些狀態變量存儲后,再引導機頂盒重啟進入Loader。Loader程序根據存儲的升級參數下載升級流進行升級過程。升級完成后,若是Loader自身的升級,則需更新SD卡分區中備份Loader安裝包。當自動升級失敗次數超過2次,需手動升級來實現軟件的更新。自動升級具體流程如圖5所示。
2.2 手動升級
手動升級是指用戶在機頂盒開啟時通過手動操作強制進入Loader升級過程。此時升級參數是由用戶手動設置而非前端碼流中的參數。若用戶設置下載方式為主動下載,則Loader程序根據用戶設置的參數下載升級流進行升級過程;反之,則需要檢測NIT表,并根據NIT表中信道參數下載升級文件進行升級過程,手動升級的具體過程如圖6所示。

圖5 自動升級流程圖

圖6 手動升級流程圖
本文在虛擬現實應用狀態下測試所設計方案的性能,終端Android機頂盒配置為:內存為512Mbyte,Falsh512Mbyte,CPU為Hi3716CV100,軟件系統為An?droid4.0.3,前端播發碼流速度為200kbit/s。由于內存限制,最大下載文件在200Mbyte左右。為了確保測試結果的可靠性,每個測試均選用10臺相同配置的機頂盒同時測試,每段測試流播發500次。其中故障率=總故障數/總測試數。
3.1 自動升級測試
自動升級是由NIT變化觸發,自動升級失敗2次后觸發手動升級。每個參數均單獨測試,此時其余參數均符合升級要求,測試結果如表2所示。

表2 自動升級測試結果
3.2 手動升級測試
手動升級參數中主動下載和非主動下載中非主動下載檢索機制不同,因此,除了測試手動按鍵是否能觸發升級,也測試主動下載和非主動下載,具體測試結果如表3所示。

表3 手動升級測試結果
3.3 改進措施測試
加密的測試流公鑰長度3byte,私鑰長度64byte,加密強度512bit,下載CRC校驗均合法,每個改進措施均獨立測試。測試結果如表4所示。
3.4 破壞性測試
模擬真實環境,測試機頂盒下載升級流時故障處理機制,其中物理斷線指短時間中斷(如閃斷、視頻線松動、視頻線掉落)。測試結果如表5所示。

表4 改進措施測試結果

表5 故障測試結果
由上述測試結果也表明,不符合機頂盒生產商要求的升級文件、不完整的升級文件、未受廣電運營商許可的升級文件均不能進行更新,這說明本文設計的Loader方案切實可行。
目前,該方案已通過天津廣電的測試要求,并且已得到部分Android生產商的認可。“雙Loader”運行模式的采用大大降低了機頂盒故障率,雙重加密技術的采用不僅保證了升級文件的正確性和升級的安全性,也實現了生產商和運營商對軟件升級的管控,確保升級軟件的合法性且保證機頂盒只接受本機頂盒廠商的升級軟件,為Android機頂盒生產商和運營商提供了一種優良的軟件升級方案。
[1] KUZMANOVIC N. Google’s Android as an application environ?ment for DTV decoder system [C]//Proc. 2010 IEEE 14th Interna? tional Symposium on Consumer Electronics. Germany: ISCE,2010:1-5.
[2] JINHUA G,WEI J,JIANPING Z. Stable and reliable software up?grade design for set top box embedded system software [D]. Jinan:Shandong University,2010.
[3] PRAVIN S. Set top box system with android support using embed?ded linux operating system paper [C]//Proc. 2012 International Conference on Advances in Engineering, Science and Manage?ment(ICAESM). Tamil Nadu: ICAESM,2012:474-478.
[4] 孫之剛.基于數字電視的數據傳輸技術研究[D].上海:上海交通大學,2003.
[5] BINGLONGQ.Analysis of CRC encoding and performance of er?ror detection[J].Computer Development&Applications,2012(10):33-34.
[6]ATREYAM.數字簽名[M].北京:清華大學出版社,2003.
[7] VERMAS,GARGD.Improvement in RSA cryptosystem[J].Jour?nal of Advances in Information Technology,2011,2(3):146-151.
[8]閆茂昌,華中,宋占杰.一種面向廣電運營商的Android軟件認證系統[J].電視技術,2013,37(10):23-26.
[9] IEC13818-6,天津廣電Loader規范[S].2012.
華 中,博士,中環電子科技集團高級顧問;
宋占杰(1963—),博導,教授,研究方向為隨機過程采樣、重構與逼近、隨機信號壓縮采樣及統計分析、水文測量與海洋監測的隨機數學模型研究。
Implementation and Design of Improved Double Loader Based on Android
WANGNannan1,HUAZhong2,KOUZhiqiang3,YANGAiping1,SONGZhanjie1
(1.School of Electronic Information Engineering,Tianjin University,Tianjin300072,China;2.Tianjin Zhonghuan Elec.&ITGroupCo.,Ltd., Tianjin300190,China;3.Tianjin BotroElectronicalScienceandTechCo.,Ltd.,Tianjin300384,China)
Open development platform, a variety of graphical interface and friendly user experience for Android STB are appreciated by developers and users. However Loader, the core module of software upgrade, has to face many challenges. The "Double-Loader" operation mode is introduced to overcome the loss of STB software upgrade function defects which caused by accidental damage. The double CRC check is used to ensure the completeness and correctness of the upgrade file. The digital signature technology is adopted to realize the real-time control of software upgrade. Test results show that the proposed scheme effectively complete the upgrades of application and Loader itself, provide a good software upgrade package for Android STB developers and operators.
Android STB;Loader;double Loader;dual CRC check;digital signatures
TN948
B
王楠楠(1986-),碩士生,研究方向為模式識別;
楊愛萍(1977-),女,博士,副教授,研究方向為數字圖像及視頻處理、模式識別、壓縮感知理論及應用等;
??盈
2013-07-06
【本文獻信息】王楠楠,華中,寇志強,等.基于Android的改進雙Loader的設計與實現[J].電視技術,2014,38(2).
國家自然科學基金項目(60932007)