search 登录 注册
arrow_back返回列表
ID:91830
light_modestarstar
Lv.1 韶华一笑间
edit_note帖子 49
stars积分 8,382
event加入 2012-01-16
安卓交流

[安卓技术]教你制作专属于你自己的ROM

schedule发表于 2012-12-11 14:44:00 visibility查看 403 chat_bubble回复 4
#1 楼主
修改rom大致可分为:精简、增补、美
化三类这里主要讨论的是精简和增补
两个方面,至于美化大家可以参看其
他帖子。
一。首先我们来看看rom中到底有些
什么:
用winrar打开刷机包后可以看到几个
目录,下面列出了和我们有关的几个
目录和说明
dev_data/apps/: 系统程序的apk文件
目录,相当于刷机后“/data/app_s/“,
这里的程序刷机后不可卸载
dev_data/app/ : 用户程序apk文件目
录,相当于刷机后 “/data/app/“,这
里的程序刷机后可卸载。(10月28日
以后的版本中才有,以前的版本大家
可以自己加这个目录)
meta-inf/com/google/android/: 刷机
脚本文件
system/etc/: 存放了一些配置文件
system/etc/permissions/: 和软件权
限有关,部分补丁需要在这个目录中
添加文件
system/lib/: 系统程序的库文件存放位

二。再来认识一下刷机脚本文件
用recovery刷机时,刷机过程由脚本
文件控制。 脚本文件就是压缩包中
meta-inf\com\google\android目录下
的*-script文件,用文本编辑器可以打
开。脚本文件中有这么几条语句是我
们关心的
(1)show_progress0.1 0 :显示进
度条
这是用来显示刷机进度条的,前面的
0.1表示进度条的位置,可以改为别的
数值(小于1)。后面的数字不清楚是
什么含义,大体上除了最后一条为
10,其他都为0。有些rom在刷机时会
出现刷机完成了进度条才走到一半多
点,大家可以试试把最后一句改为
show_progress 0.8 10,进度条就可
以走到底了。
(2)几个关键字
(a)“system:“代表刷机后的系统目
录 =“/system/“
(b)“internal:“代表刷机后的 /data
目录 =“/data/“
(c)“package:“代表压缩包的根目录
例如“system:etc/“相当于刷机后的“/
system/etc/“目录
“package:dev_data“相当于压缩包中
的 dev_data 目录(3) copy_dir
package:dev_data internal:
copy_dir是用来复制目录的,前一个
参数是要复制的目录,后一个参数是
复制到那里。
例如 copy_dir package:dev_data
internal: 是用来把rom压缩包中dev_
data目录中的东西复制到刷机后的“/
data/“目录下
(4)set_perm_recursive 0 2000
0755 0755 system:bin
设置目录或文件权限的,使用方法和
linux中设置权限的方法类似。
(5)* system:app/youtube.apk
删除文件,这个一般用不到,要删除
的话,直接删就是了。
好了,可以动手精简和增加程序了
二。精简系统程序
所谓精简实际上就是删除系统程序,
我们用不到的那些程序可以删除掉。
删除这些程序好处在于(1)有些东西
是我们用不到的,显示在程序列表中
很烦人,如果这样的程序过多也会导
致打开程序列表过慢。(2)有些程序
启动后会占用内存而我们又用不到。
例如,短信拦截等。(3)有些程序不
想用原rom中自带的,想换个别的,
例如不喜欢adw,改用launch pro
等。
精简的方法很简单,用winrar打开
rom,进入dev_data\apps中找到不
要的程序,删除。
那些程序可以精简:这个问题有很多
帖子都提到了,大家可以搜一搜,比
如下面几个帖子
三。添加程序
添加程序有两个方法,一是把程序添
加为系统程序,二是添加为用户程
序。 把程序添加为系统程序的好处在
于执行速度快(大家这么说的,我好
像没有体会到),缺点是不能直接卸
载,只有通过re等工具删除。其实用
re直接删除系统程序apk文件时并非都
卸载干净了,不信大家可以看看/data/
data/这个目录,是不是每个程序都对
应了一个目标,其目录名和程序包的
名称相同(不是xxx.apk这个xxx)。
1。添加系统程序:
添加系统程序方法最简单:
(1)用winrar打开rom压缩文件,
进入“\dev_data\app_s“这个目录,把
要添加的程序的apk文件复制进去。
(2)用winrar打开要添加进去的apk
文件看看“\lib\armeabi”目录中是否
有.so结尾的文件,它们是程序运行时
需要用到的库文件,有的话把他们复
制到压缩包中的“system/lib/”目录
中。有些童鞋在修改rom的时候添加
的程序无法执行,大多属于这个情
况。例如新版本的谷歌拼音输入法。
2。添加用户程序:
添加用户程序稍微麻烦点,但是刷机
后可直接卸载。如果用的是10月28日
以后的rom,直接把apk拖入“dev_
data/app/“目录中。这一步很简单,
麻烦的是apk中有库文件的情况。简单
处理方法同添加系统程序中的第2步,
这种方法的缺点是卸载时库文件还会
保留在“system/lib/”中,好在大多数
程序都没有库文件,少数程序保留下
来的库文件并无大碍。高级点的方法
是通过写脚本进行安装。
10月28日以前的rom在“dev_
data/”中没有app这个目录,大家可以
自己建立(winrar中点击右键,选创
建一个新文件夹),建立好目录后要
在刷机脚本中设置目录属性:在刷机
脚本中找到这一段:
copy_dir package:dev_data
internal:
set_perm 1000 1000 0771
internal:app_s
在其后加上这一句:
set_perm 1000 1000 0771
internal:app
其中第一句是把rom中dev_data目录
中的所有东东复制到/data目录下
第二句是设置 app_s的权限
我们加的那一句是设置app的权限
接下来可以修补,调整rom了四。
firstboot脚本
要对rom进行高级点的设置,可以利
用firstboot.sh脚本。firstboot.sh脚
本在rom中的dev_data目录中。脚本
中的代码是在刷完机后第一次启动时
执行的,利用它可以对系统进行设
置,安装apk等工作。
看看liudidi1028rom中的脚本片段
# system default settings
/system/xbin/sqlite3 $$$$$$$$
database“* into system (name,
value) values (‘trackball_wake_
screen‘, 1);“
/system/xbin/sqlite3 $$$$$$$$
database“* into system (name,
value) values (‘trackball_unlock_
screen‘, 1);“
/system/xbin/sqlite3 $$$$$$$$
database“* into system (name,
value) values
(‘lock_home_in_memory‘, 1);“我想
大家应该可以猜出这三句代码的作用
了吧。至于脚本这么写,不要来问
我,我也不熟,大家可以共同研究。
在脚本中可以使用rm,mv等命令,
用它可以直接把某些配置文件覆盖
掉。
例如:busybox rm /system/etc/某文

busybox mv /system/etc/某文件
当然,如果修改的是系统文件,先要
取得权限:busybox mount -o
remount,rw /system
之后再改为只读 :busybox mount -
o remount,ro /system
firstboot.sh很有用,要是哪位大大能
写个初级教程就好了!五。rom常见
的系统配置文件。
修改这些文件可以调整系统设置
1。\system\etc\spn-conf.xml:显示
营运商的
例如
<?xml
version=“1.0“encoding=“utf-8“?>
<spnoverrides>
<spnoverride
numeric=“46001“
spn=“中国联通“/>
<spnoverride
numeric=“46000“
spn=“中国移动“/>
<spnoverride
numeric=“46002“
spn=“中国移动“/>
</spnoverrides>如果下载的rom中显
示的是英文,可以试着修改这个文
件。
2
\system\etc\gps.conf:和gps搜星相
关,所谓提高搜星速度就是修改这个
文件了
方法,把文件中ntp_
server=xxxxx.pool.ntp.org改为ntp_
server=cn.pool.ntp.org。我试过,这
个网站ping的速度的确比原始设置中
的那个要快一倍以上
3。\system\bin\rc:这个大家应该很
熟悉了,用来设置swap,compcache
之类的。
(1)设置swap进入文件后找到
####################
###### swap ########
####################
其后的代码是和开启swap有关的
例如
swapnum=`fdisk -l /dev/block/
mmcblk1|grep swap|sed -e ‘s/ .*//
g‘`
if [ -n“$$$$$$$$swapnum“];then
echo 60>/proc/sys/vm/swappiness
swapon $$$$$$$$swapnum
fi
在每行前面加#注释掉后就可以不开机
启动swap了
要改swappiness的大小可以该第三行
中的60这个数字。设置 compcache大
家可以自己试试
(2)修改内存管理参数
在rc文件中加入这一行
echo“1536,1536,3072,1536,10240,
12800“>/sys/module/
lowmemorykiller/parameters/
minfree
其中的数字从左到右为:前台进程、
可见进程、次要服务、后台服务、内
容供应节点、空进程,其中的数值的
单位是4k,也就是说1536 :
4k*1536=6144k=6m4。 \system\etc
\apns-conf.xml:和网络接入点设置
有关
例如,和移动联通有关的设置
<apn carrier=“中国移动
(internet)
“apn=“cmnet“mcc=“460“mnc=“00“
type=“default,supl“/>
<apn carrier=“中国移动 (wap)
“apn=“cmwap“proxy=“10.0.0.172“
port=“80“mcc=“460“mnc=“00“type
=“default,supl“/>
<apn carrier=“中国移动
(mms)
“apn=“cmwap“mmsc=“http://
mmsc.monternet.com“mmsproxy
=“10.0.0.172“mmsport=“80“mcc=“
460“mnc=“00“type=“mms“/><apn
carrier=“中国联通
(internet)
“apn=“3gnet“mcc=“460“mnc=“01“
type=“default,supl“/>
<apn carrier=“中国联通 (wap)
“apn=“3gwap“proxy=“10.0.0.172“
port=“80“mcc=“460“mnc=“01“type
=“default,supl“/>
<apn carrier=“中国联通
(mms)“apn=“3gwap“mmsc=“http://
mmsc.myuni.com.cn“mmsproxy=“
10.0.0.172“mmsport=“80“mcc=“
460“mnc=“01“type=“mms“/>
<apn carrier=“中国移动 (internet)
“apn=“cmnet“mcc=“460“mnc=“02“
type=“default,supl“/>
<apn carrier=“中国移动 (wap)
“apn=“cmwap“proxy=“10.0.0.172“
port=“80“mcc=“460“mnc=“02“type
=“default,supl“/>
<apn carrier=“中国移动 (mms)
“apn=“cmwap“mmsc=“http://
mmsc.monternet.com“mmsproxy
=“10.0.0.172“mmsport=“80“mcc=“
460“mnc=“02“type=“mms“/>如果
rom中没有自带apn设置,可以在这个
文件中加入,如果rom中显示的接入
点名称不是中文也可以通过修改这个
来实现
注意:
1. 修改rom时最好不要解压缩,直接
在winrar中*作,因为rom应该是在
linux中压缩的,压缩格式可能会和在
weindows下直接用winrar压缩出来
的不同。
2. 包中的文件不要有中文文件名
3. 刷机前一定要备份,修改的rom要
是有什么地方弄错了很容易进不了系

六。无google套件google地图定位补
丁下载gapps的刷机包,
复制下述文件到rom中的对应目录即
可:
\data\app_s\networklocation.apk
\system\framework
\com.google.android.maps.jar
\system\etc\permissi**
\com.google.android.maps.xml
最后一步“签名“
修改完rom后最后一步就是签名了,
其实签名很简单,下载签名工具,把
修改好的rom改名为*.zip,放在签名
工具的目录中,执行签名工具中的
sign.bat,等一会会生成一个updata_
signed.zip的文件,这个就是签名好的
rom了。之后就可以开始刷机,享受
自己的劳动成果了。
运行签名工具需要有java环境,网络
上下载jdk,安装ok
好了梦友们,想制作专属自己rom的
梦友可以试试。
所有的教程复制完了,纯手机复制,
本文来自艾网。
因为有个友友让我不设置回复,我就
改过来了。
现在是没有回复可见的呢!

全部回复 (4)

ID:91326
dark_mode
Lv.1 韶华一笑间
2012-12-11 14:45:00 沙发
不懂
ID:59593
light_modedark_modestarstarstar
Lv.1 韶华一笑间
2012-12-11 16:31:00 板凳
安卓我最行!
ID:96065
light_mode
Lv.1 韶华一笑间
2012-12-12 10:01:00 地板
看帖回帖是美德!
ID:140744
light_modestarstar
Lv.1 韶华一笑间
2014-01-03 06:35:00 #5
╮(╯3╰)╭
登录 后才能回复