0、ROM结构
一个完整的 ROM 根目录会有以下几个文件夹及文件:
/data(可选):
/META-IN:手工创建的,主要用来存放一个升级脚本update-script以及签名
脚本的语法比较简单,脚步语法
/system:是编译android的平台源代码生成的
boot.img:kernel+ramdisk.img 通过mkbootimg工具创建出来的。一般情况下,如果编译的是支持机型,则会直接生成boot.img,此时只需要将所需文件打包签名即可
我们常在刷机包见到的boot.img就是内核+ramdisk,Android的引导过程就是通过ramdisk内的启动脚本进行,而ramdisk内的目录结构明显就是一个linux的根目录,所以启动后,将system加载到ramdisk内的system下,userdata加载到ramdisk的data下,每次关闭系统的时候就会将当前的system文件夹再压缩为system.img覆盖原有的,data文件夹压缩覆盖原有的userdata.img,从而实现用户数据的记录。而userdata.img和system.img均是以yaffs2的格式压缩,这种格式是专为闪存设计的
1、一般定制ROM其实就是对手机内存里的system/app文件夹的内容进行自定义,系统所有的程序都在这个文件夹里,比如浏览器、拨号器、联系人等。自己安装的软件\data\文件夹中。
定制包的结构:*.zip
/system/app/my.apk(你想要放进系统中的程序)
/META-INF/com/google/update-script(定制包脚本)
/META-INF/CERT.SF(签名文件)
/META-INF/CERT.RSA(签名文件)
/META-INF/MANIFEST.MF(签名文件)
系统应用程序所在目录 /system/app/*.apk
用户安装应用程序所在目录 /data/app/*.apk
2 scipt 以及说明
deleteSYSTEM:app/DivXRegCode.odex
delete SYSTEM:app/YouTube.apk
copy_dir PACKAGE:system SYSTEM:
show_progress0.1 10
第一句是删除system/spp文件夹内的DivXRegCode.odex文件,
第二句是删除system/spp文件夹内的YouTube.apk文件,
第三句是复制(同时会覆盖已存在的文件)定制包中的system文件夹到手机内存的system文件夹。
第四句是现实recovery的进度,show_progress(0.1, 10);show_progress下面的操作可能进行10s,完成后进度条前进0.1(也就是10%)
系统应用程序所在目录 /system/app/*.apk
用户安装应用程序所在目录 /data/app/*.apk
签名
1、将各镜像文件和文件夹打包成zip,
打包时要进入文件夹中,不要再外面打包。
2、运行Auto-sign中的Sign.sh脚本即可将原文件重新签名,
生成新的签名文件