基于Android的改进双Loader的设计与实现
2014-07-07王楠楠寇志强杨爱萍宋占杰
王楠楠,华 中,寇志强,杨爱萍,宋占杰
(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模块。
1 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所示。
2 Loader的实现
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 手动升级流程图
3 性能分析
本文在虚拟现实应用状态下测试所设计方案的性能,终端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方案切实可行。
4 小结
目前,该方案已通过天津广电的测试要求,并且已得到部分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)