老是做应用,都做腻了,所以买了一个android的pad,借这个机会玩玩系统,毕竟自己没有这方面的经验,所以看了看网上的资料,决定从简单的东西入手,先做到能够修改官方下载的固件再说吧。
参考了这个网页的内容:
首先,下载需要的固件,并对机器进行下载的测试,确认固件没有问题。
然后,安装了linux的虚拟机,根据网上的资料,编译解压工具——tccutil.rar,
|
文件: |
tccutil.rar |
大小: |
8KB |
下载: |
下载 | |
源代码很简单,tccpack用于打包,tccunpack用于解包,需要编译时,只要在linux环境下,执行下面的命令即可:
cc -o tccpack tccpack.c cc -o tccunpack tccunpack.c
|
使用下面的命令就可以解压tcc_mtd.img
解压后,生成三个文件:boot.img,system.img,recovery.img,具体三个文件做什么用途,我就不一一介绍了,转贴的网页说的也算详细,可以参考上面的说明。
接着我对system.img继续解压,解压工具为unyaffs:
|
文件: |
unyaffs.rar |
大小: |
7KB |
下载: |
下载 | |
同样,需要进行编译,
之后执行解压命令
这里需要说明,就是unyaffs这个软件我从网上下载后,执行报了段错误。查看了网上好多同志的帖子,似乎都有这个问题,但是没有什么人进行解答。没有办法,只能依靠自己,通过ue查看16进制的img文件,使用gdb单步调试unyaffs的代码,最后发现,原来img里面的某个结构的长度跟程序里面的不一样,不知道是不是厂家做了特别的处理。总之,修改代码长度后,我的img被解开了。这里鼓励下自己,不管遇到多大的困难,只要花心思去研究就一定能克服。这里挂出的链接是我自己修改过的程序。
解压system.img后,得到android的系统目录:
/system/app 系统应用程序存放目录 /system/bin 系统的本地程序,是binary二进制的程序,里面主要是Linux系统自带的组件。 /system/etc 系统的配置文件,比如APN接入点设置等核心配置。 /system/fonts 字体文件夹。 /system/framework 主要是一些核心的文件,从后缀名为jar可以看出是系统平台框架。 /system/lib 存放的主要是系统底层库,如平台运行时库。 /system/media 铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音 /system/usr 用户文件夹,包含共享、键盘布局、时间区域文件等。 /system/xbin 存放系统管理工具,他们都是为系统管理员准备的,是一些系统管理和配置工具。 /system/build.prop 属性文件,“关于MID”中所显示的软件版本、内核、机型等信息。
|
修改需要的东西,然后对system进行打包,同样打包也需要使用工具,有现成的工具可以使用:
|
文件: |
yaffs2.rar |
大小: |
113KB |
下载: |
下载 | |
在utils目录下,编译mkffs2imge
cc -o mkffs2imge mkffs2imge.c
|
执行程序进行打包:
mkffs2imge system system.img
|
再通过tccpack 形成最终镜像:
tccpack boot.img system.img recovery.img tcc_mtd.img
|
整个过程完成
阅读(2421) | 评论(3) | 转发(0) |