Android系统核心管理工具设计与实现
时间:2015-03-24 11:23 文章来源:http://www.lunwenbuluo.com 作者:关丽霞等 点击次数:
摘 要: 针对Android系统版本过多,导致普通用户对Android系统的ROM进行管理配置操作困难及升级滞后的难题,提出并实现了一个Android系统核心管理工具软件。以Android提供的通用格式,采用图形化用户界面的方法,对Android系统的核心镜像boot.img进行管理配置,支持解包、读取信息、修改信息、打包的完整流程,实现系统定制和固件升级的简易操作。测试结果表明,该软件形成了一个可扩展的框架,对快速加入用户提出的核心管理功能,可极好地满足普通用户简易操作,快速升级固件的要求。
关键词: Android系统; 内核; boot.img; 固件
中图分类号:TP315 文献标志码:A 文章编号:1006-8228(2015)03-44-02
Abstract: Since a variety of excessive Android system version, the ordinary users are hard to operat to the Android system’s ROM for management, configuration and upgrade. This paper presents the design and implementation of a core management tool software for Android system, which configures the core mirror boot.img of Android system by using the graphical user interface in the general format offered by Android, supports the complete process of unpacking, the information reading, modifying and packing, and realizes the simple operating of system customizing and firmware upgrading. The test results show that, the software has formed an extensible framework, to quickly add user proposed core management functions, meet the ordinary user easy to operate, rapid upgrade firmware requirements.
Key words: Android system; kernel; boot.img; firmware
0 引言
Android是Google基于Linux平台推出的开源操作系统,主要用于各种智能手机和平板电脑。Android平台的开放性允许任何移动终端厂商加入到Android联盟中来,使得Android在国内外有着广泛的应用[1]。
正由于Android开放性的特点,很多厂商都通过定制自己的Android系统(如界面、应用程序)来给用户提供丰富的选择,同时也形成了各种各样的过多的版本。再加上Google Android升级很快,而厂商对固件的升级要经过深度研发,需要有一定的周期,这又造成了升级的滞后问题。
Android系统的ROM中boot.img和recovery.img是系统最核心的部分,管理系统启动时的各种关键任务和配置。但是Android系统对ROM的管理、配置、修改功能的管理还很松散,操作非常不方便,难以被普通用户使用。目前国内外尚没有出现较简洁的管理方式,一般都是在Linux环境下通过各种工具在命令行方式下进行,步骤较多,操作较复杂,而且稍有不慎就可能损坏镜像,造成死机,极不适合普通用户[2]。
针对上述问题,本文提出实现一个图形化用户界面的方法,对Android系统的核心镜像boot.img进行管理、修改、配置,从而使系统定制和固件升级变得简单和易于操作。
1 Android系统核心管理工具开发过程
Android系统ROM中的boot.img包含系统启动时使用的内核(kernel)、文件系统(ramdisk)及附加部分(second)。recovery.img主要用于恢复系统原始配置时使用,其所包含的内容不同于boot.img,但包含的文件镜像和boot.img相似。这里以boot.img为例,对这两个镜像的管理分两个步骤完成。
1.1 镜像制作打包
kernel来自于Linux 2.6的内核,是Android系统采用的底层操作系统,主要有进程、内存管理和硬件设备驱动等模块,由内核编译得到相应的镜像。
ramdisk映像是一个最基础的小型文件系统,在内核启动完毕后,会将此映像挂载为根文件系统,ramdisk是一种内存文件系统,整个映像作为内存盘,它包括了初始化系统所需要的全部核心文件,例如:初始化init进程以及init.rc(可以用于设置很多系统的参数)等文件。可以由cpio工具进行打包和gzip压缩得到。
1.2 镜像解包
根据mkbootimg的打包文件格式,对boot.img进行解包,其中boot header主要记录整个镜像的全部信息,大小为一页2k(根据大容量Nand Flash页的大小决定)。我们的解包程序将读取boot header的信息,首先判断魔数是否为"ANDROID!"确认所给镜像为boot.img,然后根据各部分镜像大小和页大小分别提取kernel、ramdisk、second三个部分的内容。用户界面将及时提示解包出的各个镜像信息,也可以将信息存储成相应的文件。
对ramdisk,second镜像进行解包,还原系统文件。首先对ramdisk使用gzip解压缩,将根文件系统还原为原来大小,然后由cpio工具对镜像进行解包,保存到指定的目录中,解包过程中保留Linux系统需要的各文件的UID/GID/权限等信息。所以,需要将gzip或7z等压缩工具设定为无损压缩。用户界面显示解压出的文件列表,用户根据需要选择相应文件,可以进行修改、替换、删除、添加等操作,例如修改init.rc,对Android系统启动进程进行管理。
以上流程将做成一个与mkbootimg相对应的工具debootimg。镜像解包流程中还包含对各部分文件的管理工作,如删除、添加、替换等操作。这一部分将由debootimg核心解包工具提供相应接口对用户界面进行支持。
2 关键技术
实现boot.img和recovery.img的解包和打包,要求可以解出两个img中的头信息、启动核心、ramdisk及附加部分,以及ramdisk中的文件。要求保留Linux系统需要的各文件的UID/GID/权限等信息。
编写界面程序,需处理各种异常情况。形成一个可扩展的框架,对以后用户提出的核心管理功能可以快速加入。一键完成对核心的打包压缩。根据用户爱好设定并实现对核心部分的智能化管理。
3 生成图形化用户操作窗口
在用户操作的界面中,显示当前正在编辑home/zz/kunpeng/test_d/boot_img/ram/init.rc文件。在用户配置好boot.img文件路径以及工具集路径后,即可以选择制作升级包或者解包来完成相应的操作。其图形化用户操作窗口界面略。
4 结束语
本文以Android提供的通用格式,采用图形化用户界面的方法,实现了一个Android系统核心管理工具,对Android系统的核心镜像boot.img进行管理、修改、配置,实现了boot.img和recovery.img的解包和打包,可以解出两个img中的头信息、启动核心、ramdisk及附加部分,以及ramdisk中的文件,并且保留了Linux系统需要的各文件的UID/GID/权限等信息。实验结果表明,该软件支持解包、读取信息、修改信息、打包的完整流程,方便普通用户对Android系统的ROM进行管理,实现系统定制和固件升级的简易操作。下一步将对该软件进一步完善,形成一个可扩展的框架,让用户可以快速的加入其所需要的核心管理功能,如对一键完成对核心的打包压缩和Flash的烧写,根据用户爱好设定,实现对核心的智能化管理等,进一步满足普通用户简易操作,快速升级固件的要求。
参考文献:
[1] 柯元旦.Android内核剖析[M].电子工业出版社,2001.
[2] 陈璟,陈平华,李文亮.Android内核分析[J].现代计算机,2009.11:
112-115
- 论文部落提供核心期刊、国家级期刊、省级期刊、SCI期刊和EI期刊等咨询服务。
- 论文部落拥有一支经验丰富、高端专业的编辑团队,可帮助您指导各领域学术文章,您只需提出详细的论文写作要求和相关资料。
-
- 论文投稿客服QQ:
2863358778、
2316118108
-
- 论文投稿电话:15380085870
-
- 论文投稿邮箱:lunwenbuluo@126.com