最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

CM_rom定制完整版

IT圈 admin 21浏览 0评论

2024年4月9日发(作者:许阳)

Cm rom定制教程(初级)

本文以cm5.05 rom为例。

我们下载好的cm5.05是一个zip压缩文件。如果是刷机,它就是一个签名过的rom包,

如果你是想定制rom,它就只是一个普通的压缩文件(因为我们定制完后,需要重新签名)。,

直接用winrar打开这个rom包。

Rom包里包含几个东西:

1.META-INF文件夹---文件的加密信息,以及升级脚本

2.System文件夹--android的系统文件

3.文件--android的启动分区文件

4.文件--cm里的自动备份脚本

有的rom里,还有个data文件夹。我们也可以自行在cm5.05中新建一个(后面介绍)。

初级阶段,我们主要修改的是system文件夹里的内容:

System文件夹里包含了:

1. app文件夹—这里面都是所谓系统自带的软件

2. bin文件夹--android的命令

3. etc文件夹

4. fonts文件夹—字体文件夹

5. framework文件夹--系统函数

6. lib文件夹--so库

7. media文件夹—铃声以及开机画面

8. usr文件夹

9. xbin文件夹

10. 文件—配置文本

app文件夹的修改:如果想删除一些系统自带软件,那我们就可以进入app文件夹,找到相应

的文件,删除就可以了。如果你想添加软件,也可以把apk放进app文件夹里,不过注意的

是,app文件夹里的软件,不能在系统程序管理里卸载,哪怕是你放进去的第三方软件。

Fonts文件夹的修改:你可以用自己喜欢的字体,替换进fonts里,这样刷机后直接就是新字

体了。比如我用丽黑字体,下载好后,字体文件名改为,拷贝进fonts文件夹,

替换里面的原文件(可以先把原文件备份出来)。

Media文件夹的修改:里面有一个,它就是开机动画,如果你不喜欢cm的

蓝色开机,可以找之前的原版rom,把这个文件替换掉即可。

Audio文件夹里存放的都是系统的铃声,可以自行添加或删除(注意控制文件大小和铃声时

长哦)。如果你想让相机无声,可以找到ui文件夹里的camera_,就是它了,自己

录一个“无声”的声音文件,改名成一样的,替换掉就ok了:)

Lib文件夹的修改:这个文件夹里面的文件,我们最好别动它,不过当你需要中文联系人排

序的时候,就要修改了。我们找一个中文联系人排序版的文件,替换进lib里,

覆盖原文件即可。

etc文件文件夹:这个文件夹很有意思。里面有个文件,它就是接入点设置,

会修改xml文件的可以直接修改,不会的朋友,可以在网上找一个接入点比较全的替换进

去即可。

Hosts。翻墙用的。一般情况下不需要修改,但如果你的地区正好封锁谷歌服务的,就直接

用文本打开hosts这个文件,在里面加进新的地址保存即可。

Init.d文件夹。里面都是一些脚本。懂linux的朋友,可以自己编一些。不懂的也没关系,在

网上或者其他rom里找一些现成的放进去。比如pandora之前发过cpu降频脚本,app2sd脚

本。

文件的修改:可以直接用文本编辑器打开。

=****,=***,你可以修改成你自己喜欢的版本号(中英文都可以)。

ge=en,=US。如果想第一次开机向导语言直接

是中文,可以分别把en和US改成zh和CN。

ne=****。如果你替换过铃声,***部分改为你想要的默认铃声的文件名。

sion=***。Mod版本号,也可以改成自己喜欢的名字。中英文都可以。

(如果版本号里包含中文字符的,改完文件后,请以utf-8编码保存文件,如果

没有中文字符的,直接保存即可。保存后的文件,注意看一下文件名,别保存成txt了··这

个不用我教了吧)

Ok。System文件夹的主要修改就到此结束了。

Ps:自己加入软件到app文件夹,可以让我们rom直接内置软件,不过有些第三方软件apk

里包含了so库,我们需要单独提取出来,并放入system的lib库文件夹里。

最典型的就是搜狗输入法。我们把搜狗.apk文件名改为搜狗.zip,然后解压它,会看到有个

lib文件夹,里面armeabi,再里面有两个so文件,把这两个文件复制到rom/system/lib里即

可,然后把搜狗.zip重新恢复成搜狗.apk,然后拷到app里即可。

以后,只要是你自己添加的软件,都要看一下apk里是否有so文件,刚开始可能觉得比较

麻烦,但弄个几次,你就知道哪些软件需要折腾,哪些软件直接放到app就可以了:)

用winrar打开rom包修改的时候,可以单独解压其中某一个文件或者文件夹出来做修改,

完成后在替换回去,没必要把整个rom包都先解压出来。

一切准备就绪后,我们需要对修改过的rom.包进行重新签名。我会上传一个签名工具包(工

具包需要java支持,请先自行下载java并在电脑上安装好),大家下载到电脑里,解压出来。

修改过的改名成,并放到签名工具包内,双击即可自动进行签名。

签名完成后,会在同目录内生产一个update_文件,就是我们签过名的刷机包了。

开刷··

初级篇到此为止。喜欢进一步折腾的朋友,请关注后面的中级篇···

Cm rom定制教程—中级篇

前面的初级篇,大概分析了rom包的构成,简单的修改。现在我们进一步研究rom的

修改。

Data文件夹的加入:

喜欢研究的朋友会发现,cm原版rom比pandora或者modaco少了一个data文件夹。

我在初级篇里提到过,当你内置软件在rom里,如果直接把apk放在system/app里的话,

是不可以在应用管理里卸载的。那么这个data文件夹的作用就来了。

以cm5.041为例,它里面没有data文件夹,我们就自己新建一个,然后再data文件夹

里再建一个app文件夹,路径就为:/data/app 。它和/system/app的区别就是,让我们内置

的软件今后可以自行卸载,而且当你使用app2sd的时候,软件可以直接安装到扩展卡里。

我们新建好,就可以把什么搜狗输入法啦,root管理器的apk都放进去。

META-INF文件夹的修改:

那么光新建这个文件夹就ok了吗?当然不是。记得初级篇里提到的那个/META-INF文

件夹吗?就是文件的加密信息,以及升级脚本,当当当,该它登场了。

打开META-INF文件夹,你会看到一些文件和一个文件夹。文件就是加密信息,我们

可以不用管它,重要的是那个文件夹,一步步点进去,会看到update-script,这个就是升级

脚本,它控制着我们刷机的步骤和顺序等信息,非常重要。

我大概复制一部分来做下解释(该文件可以直接用文本打开并编辑):

assert compatible_with("0.2") == "true"

assert getprop("") == "passion" || getprop("t") == "passion"

show_progress 0.500000 0 ----插入一个标签信息

format SYSTEM: ----格式化system

copy_dir PACKAGE:system SYSTEM: --拷贝刷机包的system到机身system

symlink ../xbin/su SYSTEM:bin/su

symlink busybox SYSTEM:xbin/[

symlink busybox SYSTEM:xbin/[[

symlink toolbox SYSTEM:bin/hd

symlink toolbox SYSTEM:bin/id

symlink toolbox SYSTEM:bin/ifconfig

symlink toolbox SYSTEM:bin/iftop

symlink toolbox SYSTEM:bin/insmod

symlink toolbox SYSTEM:bin/ioctl

symlink toolbox SYSTEM:bin/vmstat

symlink toolbox SYSTEM:bin/watchprops

symlink toolbox SYSTEM:bin/wipe

set_perm_recursive 0 0 0755 0644 SYSTEM: -------权限类的设置

set_perm_recursive 0 2000 0755 0755 SYSTEM:bin

set_perm 0 3003 02755 SYSTEM:bin/netcfg

set_perm 0 3004 02755 SYSTEM:bin/ping

set_perm 1001 1005 0444 SYSTEM:etc/

set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez

set_perm 0 0 0755 SYSTEM:etc/bluez

set_perm 1002 1002 0440 SYSTEM:etc/

set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks

set_perm_recursive 0 2000 0755 0750 SYSTEM:etc/init.d

set_perm 0 0 0755 SYSTEM:etc/init.d

set_perm 0 2000 0550 SYSTEM:etc/

set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp

set_perm_recursive 0 2000 0755 0755 SYSTEM:xbin

set_perm 0 0 06755 SYSTEM:xbin/librank

set_perm 0 0 06755 SYSTEM:xbin/procmem

set_perm 0 0 06755 SYSTEM:xbin/procrank

set_perm 0 0 06755 SYSTEM:xbin/su

set_perm 0 0 06755 SYSTEM:xbin/tcpdump

show_progress 0.200000 0 -------再插入一个标签

write_raw_image PACKAGE: BOOT: ---刷写boot

format CACHE: -----格式化缓存

show_progress 0.100000 10 -----插入一个标签

ok,大部分的东西都不需要我们修改。但如果你自己新建了一个/data/app,并在里面内置了

自己喜欢的软件,那我们就要在升级脚本里做一些修改了,因为脚本里并没有提到这个data

文件夹(上面的脚本里,提到了system文件夹)。

我们只需要加入(这个是比较保守的写法):

show_progress 0.200000 0 ---样成好习惯,加入一个显示标签吧

delete DATA:app

delete DATA:

delete DATA:local

delete DATA:dalvik-cache

copy_dir PACKAGE:data DATA: -----拷贝刷机包的data

set_perm 1000 1000 0771 DATA:app ----设置data/app的权限

那我们把这段脚本加在哪个位置呢?我自己一般是放在

show_progress 0.200000 0

write_raw_image PACKAGE: BOOT:

的前面。

修改过的升级脚本,就可以让你新建的data文件夹,能够成功刷进去了。

再次体现,升级脚本是非常重要的东西,如果你想制作一个简单的升级补丁,也需要用到升

级脚本。我在后面会单独介绍小补丁的制作方法。

app2sd的加入:

cm5.05应该是内置app2sd的,我就不做介绍了。网络上有很多rom,有些是内置app2sd功

能的,但经过我的观察,每个romer的app2sd内置方法都不太一样。

最简单的鉴别app2sd是否内置的方法:看看/system里有没有一个sd文件夹,文件夹里有没

用一个placeholder文件,如果有,那么这个rom一般就是内置app2sd补丁的。

自己内置app2sd进rom的方法:我们需要修改4个地方。

1, 把04apps2sd这个文件,放在/system/ etc/init.d里

2, 把e2fsck这个文件,放在/system/xbin里

3, 在/system里建一个叫做sd的文件夹,并在里面放一个叫做placeholder的文件。这个文

件其实就是一个空文件,但如果你不放,刷机的过程中会认为sd文件夹是多余的,而

不刷进系统。

4,在升级脚本里加入(同样加入在BOOT之前的位置):

set_perm 0 0 04755 SYSTEM:bin/su

set_perm 0 0 04755 SYSTEM:xbin/e2fsck

如果你的升级脚本,已经对xbin文件夹整体设置过权限,那也应该是可以的,就不需

要单独加这段了。

要点总结:

update-script这个升级脚本非常重要,你可以根据自己的需要来修改里面的信息。如果你其

他地方改的再好,脚本没有修改正确,都是白搭。

Placeholder文件的作用就是:不让“刷机程序”认为这个文件夹是空的。

2024年4月9日发(作者:许阳)

Cm rom定制教程(初级)

本文以cm5.05 rom为例。

我们下载好的cm5.05是一个zip压缩文件。如果是刷机,它就是一个签名过的rom包,

如果你是想定制rom,它就只是一个普通的压缩文件(因为我们定制完后,需要重新签名)。,

直接用winrar打开这个rom包。

Rom包里包含几个东西:

1.META-INF文件夹---文件的加密信息,以及升级脚本

2.System文件夹--android的系统文件

3.文件--android的启动分区文件

4.文件--cm里的自动备份脚本

有的rom里,还有个data文件夹。我们也可以自行在cm5.05中新建一个(后面介绍)。

初级阶段,我们主要修改的是system文件夹里的内容:

System文件夹里包含了:

1. app文件夹—这里面都是所谓系统自带的软件

2. bin文件夹--android的命令

3. etc文件夹

4. fonts文件夹—字体文件夹

5. framework文件夹--系统函数

6. lib文件夹--so库

7. media文件夹—铃声以及开机画面

8. usr文件夹

9. xbin文件夹

10. 文件—配置文本

app文件夹的修改:如果想删除一些系统自带软件,那我们就可以进入app文件夹,找到相应

的文件,删除就可以了。如果你想添加软件,也可以把apk放进app文件夹里,不过注意的

是,app文件夹里的软件,不能在系统程序管理里卸载,哪怕是你放进去的第三方软件。

Fonts文件夹的修改:你可以用自己喜欢的字体,替换进fonts里,这样刷机后直接就是新字

体了。比如我用丽黑字体,下载好后,字体文件名改为,拷贝进fonts文件夹,

替换里面的原文件(可以先把原文件备份出来)。

Media文件夹的修改:里面有一个,它就是开机动画,如果你不喜欢cm的

蓝色开机,可以找之前的原版rom,把这个文件替换掉即可。

Audio文件夹里存放的都是系统的铃声,可以自行添加或删除(注意控制文件大小和铃声时

长哦)。如果你想让相机无声,可以找到ui文件夹里的camera_,就是它了,自己

录一个“无声”的声音文件,改名成一样的,替换掉就ok了:)

Lib文件夹的修改:这个文件夹里面的文件,我们最好别动它,不过当你需要中文联系人排

序的时候,就要修改了。我们找一个中文联系人排序版的文件,替换进lib里,

覆盖原文件即可。

etc文件文件夹:这个文件夹很有意思。里面有个文件,它就是接入点设置,

会修改xml文件的可以直接修改,不会的朋友,可以在网上找一个接入点比较全的替换进

去即可。

Hosts。翻墙用的。一般情况下不需要修改,但如果你的地区正好封锁谷歌服务的,就直接

用文本打开hosts这个文件,在里面加进新的地址保存即可。

Init.d文件夹。里面都是一些脚本。懂linux的朋友,可以自己编一些。不懂的也没关系,在

网上或者其他rom里找一些现成的放进去。比如pandora之前发过cpu降频脚本,app2sd脚

本。

文件的修改:可以直接用文本编辑器打开。

=****,=***,你可以修改成你自己喜欢的版本号(中英文都可以)。

ge=en,=US。如果想第一次开机向导语言直接

是中文,可以分别把en和US改成zh和CN。

ne=****。如果你替换过铃声,***部分改为你想要的默认铃声的文件名。

sion=***。Mod版本号,也可以改成自己喜欢的名字。中英文都可以。

(如果版本号里包含中文字符的,改完文件后,请以utf-8编码保存文件,如果

没有中文字符的,直接保存即可。保存后的文件,注意看一下文件名,别保存成txt了··这

个不用我教了吧)

Ok。System文件夹的主要修改就到此结束了。

Ps:自己加入软件到app文件夹,可以让我们rom直接内置软件,不过有些第三方软件apk

里包含了so库,我们需要单独提取出来,并放入system的lib库文件夹里。

最典型的就是搜狗输入法。我们把搜狗.apk文件名改为搜狗.zip,然后解压它,会看到有个

lib文件夹,里面armeabi,再里面有两个so文件,把这两个文件复制到rom/system/lib里即

可,然后把搜狗.zip重新恢复成搜狗.apk,然后拷到app里即可。

以后,只要是你自己添加的软件,都要看一下apk里是否有so文件,刚开始可能觉得比较

麻烦,但弄个几次,你就知道哪些软件需要折腾,哪些软件直接放到app就可以了:)

用winrar打开rom包修改的时候,可以单独解压其中某一个文件或者文件夹出来做修改,

完成后在替换回去,没必要把整个rom包都先解压出来。

一切准备就绪后,我们需要对修改过的rom.包进行重新签名。我会上传一个签名工具包(工

具包需要java支持,请先自行下载java并在电脑上安装好),大家下载到电脑里,解压出来。

修改过的改名成,并放到签名工具包内,双击即可自动进行签名。

签名完成后,会在同目录内生产一个update_文件,就是我们签过名的刷机包了。

开刷··

初级篇到此为止。喜欢进一步折腾的朋友,请关注后面的中级篇···

Cm rom定制教程—中级篇

前面的初级篇,大概分析了rom包的构成,简单的修改。现在我们进一步研究rom的

修改。

Data文件夹的加入:

喜欢研究的朋友会发现,cm原版rom比pandora或者modaco少了一个data文件夹。

我在初级篇里提到过,当你内置软件在rom里,如果直接把apk放在system/app里的话,

是不可以在应用管理里卸载的。那么这个data文件夹的作用就来了。

以cm5.041为例,它里面没有data文件夹,我们就自己新建一个,然后再data文件夹

里再建一个app文件夹,路径就为:/data/app 。它和/system/app的区别就是,让我们内置

的软件今后可以自行卸载,而且当你使用app2sd的时候,软件可以直接安装到扩展卡里。

我们新建好,就可以把什么搜狗输入法啦,root管理器的apk都放进去。

META-INF文件夹的修改:

那么光新建这个文件夹就ok了吗?当然不是。记得初级篇里提到的那个/META-INF文

件夹吗?就是文件的加密信息,以及升级脚本,当当当,该它登场了。

打开META-INF文件夹,你会看到一些文件和一个文件夹。文件就是加密信息,我们

可以不用管它,重要的是那个文件夹,一步步点进去,会看到update-script,这个就是升级

脚本,它控制着我们刷机的步骤和顺序等信息,非常重要。

我大概复制一部分来做下解释(该文件可以直接用文本打开并编辑):

assert compatible_with("0.2") == "true"

assert getprop("") == "passion" || getprop("t") == "passion"

show_progress 0.500000 0 ----插入一个标签信息

format SYSTEM: ----格式化system

copy_dir PACKAGE:system SYSTEM: --拷贝刷机包的system到机身system

symlink ../xbin/su SYSTEM:bin/su

symlink busybox SYSTEM:xbin/[

symlink busybox SYSTEM:xbin/[[

symlink toolbox SYSTEM:bin/hd

symlink toolbox SYSTEM:bin/id

symlink toolbox SYSTEM:bin/ifconfig

symlink toolbox SYSTEM:bin/iftop

symlink toolbox SYSTEM:bin/insmod

symlink toolbox SYSTEM:bin/ioctl

symlink toolbox SYSTEM:bin/vmstat

symlink toolbox SYSTEM:bin/watchprops

symlink toolbox SYSTEM:bin/wipe

set_perm_recursive 0 0 0755 0644 SYSTEM: -------权限类的设置

set_perm_recursive 0 2000 0755 0755 SYSTEM:bin

set_perm 0 3003 02755 SYSTEM:bin/netcfg

set_perm 0 3004 02755 SYSTEM:bin/ping

set_perm 1001 1005 0444 SYSTEM:etc/

set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez

set_perm 0 0 0755 SYSTEM:etc/bluez

set_perm 1002 1002 0440 SYSTEM:etc/

set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks

set_perm_recursive 0 2000 0755 0750 SYSTEM:etc/init.d

set_perm 0 0 0755 SYSTEM:etc/init.d

set_perm 0 2000 0550 SYSTEM:etc/

set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp

set_perm_recursive 0 2000 0755 0755 SYSTEM:xbin

set_perm 0 0 06755 SYSTEM:xbin/librank

set_perm 0 0 06755 SYSTEM:xbin/procmem

set_perm 0 0 06755 SYSTEM:xbin/procrank

set_perm 0 0 06755 SYSTEM:xbin/su

set_perm 0 0 06755 SYSTEM:xbin/tcpdump

show_progress 0.200000 0 -------再插入一个标签

write_raw_image PACKAGE: BOOT: ---刷写boot

format CACHE: -----格式化缓存

show_progress 0.100000 10 -----插入一个标签

ok,大部分的东西都不需要我们修改。但如果你自己新建了一个/data/app,并在里面内置了

自己喜欢的软件,那我们就要在升级脚本里做一些修改了,因为脚本里并没有提到这个data

文件夹(上面的脚本里,提到了system文件夹)。

我们只需要加入(这个是比较保守的写法):

show_progress 0.200000 0 ---样成好习惯,加入一个显示标签吧

delete DATA:app

delete DATA:

delete DATA:local

delete DATA:dalvik-cache

copy_dir PACKAGE:data DATA: -----拷贝刷机包的data

set_perm 1000 1000 0771 DATA:app ----设置data/app的权限

那我们把这段脚本加在哪个位置呢?我自己一般是放在

show_progress 0.200000 0

write_raw_image PACKAGE: BOOT:

的前面。

修改过的升级脚本,就可以让你新建的data文件夹,能够成功刷进去了。

再次体现,升级脚本是非常重要的东西,如果你想制作一个简单的升级补丁,也需要用到升

级脚本。我在后面会单独介绍小补丁的制作方法。

app2sd的加入:

cm5.05应该是内置app2sd的,我就不做介绍了。网络上有很多rom,有些是内置app2sd功

能的,但经过我的观察,每个romer的app2sd内置方法都不太一样。

最简单的鉴别app2sd是否内置的方法:看看/system里有没有一个sd文件夹,文件夹里有没

用一个placeholder文件,如果有,那么这个rom一般就是内置app2sd补丁的。

自己内置app2sd进rom的方法:我们需要修改4个地方。

1, 把04apps2sd这个文件,放在/system/ etc/init.d里

2, 把e2fsck这个文件,放在/system/xbin里

3, 在/system里建一个叫做sd的文件夹,并在里面放一个叫做placeholder的文件。这个文

件其实就是一个空文件,但如果你不放,刷机的过程中会认为sd文件夹是多余的,而

不刷进系统。

4,在升级脚本里加入(同样加入在BOOT之前的位置):

set_perm 0 0 04755 SYSTEM:bin/su

set_perm 0 0 04755 SYSTEM:xbin/e2fsck

如果你的升级脚本,已经对xbin文件夹整体设置过权限,那也应该是可以的,就不需

要单独加这段了。

要点总结:

update-script这个升级脚本非常重要,你可以根据自己的需要来修改里面的信息。如果你其

他地方改的再好,脚本没有修改正确,都是白搭。

Placeholder文件的作用就是:不让“刷机程序”认为这个文件夹是空的。

发布评论

评论列表 (0)

  1. 暂无评论