介绍——修改system.img(系统镜像)

系统镜像是地址ROM最常使用的一个镜像,用于存储Android系统的核心文件,System.img就是设备中system目录的镜像,里面包含了Android系统主要的目录和文件。一般这些文件是不允许修改的。系统镜像对应的文件名一般叫system.img,当然,系统镜像的文件可以任意命名,之所以叫system.img,是为了与生成镜像文件之前的system目录保持一致,这样比较容易与其他类型的镜像文件区分。

system.img可以添加

1、Android系统应用,

2、更多的library so文件

那么如何查看在system.img镜像中都有哪些内容呢,那么就需要我们解压

尽管ROM中的5个镜像文件的扩展名都是img,但其格式却不同,也就是说不能使用同一种方法对其解压。

对于system.img文件来说,可以使用unyafss命令对其解压。Android源代码中并未提供该命令,所以读者可以到

http://code.google.com/p/unyaffs/downloads/list下载unyaffs的二进制程序和源代码,要注意,unyafss的二进制程序是Linux版本,如果要得到其他系统(windows和mac)的版本,需要在相应的系统上重新编译源代码。

编译命令

gcc -o unyaffs unyaffs.c

unyaffs system.img

如果对编译Android源代码生成的system.img文件执行上面的命令,可以完美的将system.img文件还原成system目录,会从system目录中看到相应的子目录,例如,/system/app、/system/lib等,实际上,system.img文件就是Android远吗/out/target/product/generic/system中的文件压缩生成的。不过很遗憾,对官方提供的system.img文件执行上面的命令并不能将system.img解压,所以可以初步判断官方提供的system.img的格式与有Android源代码生成的system.img文件格式不同。

为了进一步验证system.img文件的格式,可以分别对官方提供的和由Android源代码生成的system.img文件执行如下的命令,并进行对比。

file system.img

我们发现不同,既然官方提供的system.img文件不能用unyaffs命令解压,那就使用另外一种方法。这种方法并不需要讲system.img解压,而是将系统镜像挂载(mount)到Linux的某个目录,实际上,这种方式比直接解压system.img文件更方便操作。

注意:

实际上,高版本Android的system.img通常是ext4格式的文件系统,而不是yaffs格式的文件系统,所以不能使用mkyaffs2image命令制作system.img,也不能使用unyaffs命令将其解压。如果想生成system.img文件,需要使用make_ext4命令,解压system.img需要使用mount命令将其挂载到某个目录.

由于system.img是压缩格式,所以并不能直接使用mount命令挂载。在编译Android 源代码后会在Android源代码目录/out/host/linux-x86/bin目录生成一个simg2img命令行工具,建议将该目录加到PATH环境变量中,因为在本书中会大量使用bin目录中的各种命令行工具。

simg2img可以通过如下的命令将system.img转化为普通的Linux镜像文件(system.img.raw)。

simg2img system.img system.img.raw

然后在/mnt目录中建立一个system子目录,并执行下面的 命令挂载系统镜像。

mount system.img.raw /mnt/system

执行文上面的命令后,进到/mnt/system目录,就会看到官方提供的系统镜像中所有文件,

所有的目录都是可读写的。

文件列表如下

===========================================================

app目录:存放一般的apk文件。

bin目录:存放一些Linux的工具,但是大部分都是toolbox的链接.

etc目录:存放系统的配置文件。

fonts目录:存放系统的字体文件。

framework目录:存放系统平台所有jar包和资源文件包。

lib目录:存放系统的共享库。

media目录:存放系统的多媒体资源,主要是铃声。

priv-app目录:android4.4开始新增加的目录,存放系统核心的apk文件。

tts目录:存放系统的语言合成文件。

usr目录:存放各种键盘布局,时间区域文件。

vendor目录:存放一些第三方厂商的配置文件、firmware以及动态库。

xbin目录:存放系统管理工具,这个文件夹的作用相当于标准Linux文件系统中的sbin.

build.prop文件:系统属性的定义文件。

============================================================

将system.img.raw挂载到/mnt/system 目录后,该目录中的内容实际上与system.img中的内容完全一样,现在可以任意修改/mnt/system目录中的内容,例如,添加或替换/mnt/system/app 目录中的apk文件,或更换开机动画。在修改完系统镜像后,还需要使用make_extfs命令将/mnt/system目录重新生成system.img文件(EXT4文件系统)。

make_ext4fs命令在如下的目录中,所以建议读者将该目录加到PATH环境变量中,这样的任意目录下都可以使用make_ext4fs命令。

我们可以在Linux终端执行如下的命令生成system.img文件。

make_ext4fs -s -l 1024M -a system system.img /mnt/system

在执行make_ext4fs 命令使用了3个命令行参数,这些参数的含义如下:

-s:生成Spare格式的镜像。这种格式的镜像文件的尺寸会更小,但无法直接使用mount命令挂载。要想挂载Spare格式的镜像文件,需要首先使用simg2img命令按着前面描述的方式进行转换。如果不加-s参数,生成的system.img文件是可以直接通过mount挂载。不过不管是不是Spare格式的系统镜像文件,Nexus 7都可以使用(其他的Android设备应该也可以),但建议生成Spare格式的镜像文件,因为这样的镜像文件尺寸更小。

-l :  镜像的尺寸。该参数指定的值并不是生成镜像文件(r如system.img)的实际尺寸,而是文件系统的尺寸。这有些类似在Windows中建立的心得逻辑分区,而该参数指定的值就是逻辑分区的尺寸,生成的镜像文件的尺寸不能大于文件系统的尺寸。例如官方提供的用于Nexus 7的system.img文件(Spare格式的镜像文件)的尺寸大小越是480M,

-a: 指定挂载点,这里是system.

重新生成经过修改的system.img文件后,首先让Nexus 7 进入Bootloader模式,然后执行下面的命令即可刷机

fastboot flash system system.img 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容