简单易懂的Android ROM定制与修改教程

 

每个人对手机都有不同的要求,这里我想谈谈我的修改ROM的方法,其中大部分是总结于论坛中其他帖子,有一小部分是自己总结的经验。玩Android手机可为个层次:

1。最高境界:像大神这样的,对Android系统十分熟悉,能够编写系统代码
2。大大境界:像Liudidi、小白小仙等大大,能够修改代码和编译,需要熟悉linux系统和具备编程知识

3。高手境界:能够在非代码级修改ROM,美化ROM。

4。普通境界:会玩,会设置等

前两个层次要花大力气学习,向我这样的懒人看样子是达不到了,只能努力达到第三层。这里我想跟大家分享一下我的修改ROM的方法,其中大部分是总结与论坛中其他帖子,有一小部分是自己总结的经验。修改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 目录下的update-script文件,用文本编辑器可以打开。

脚本文件中有这么几条语句是我们关心的

(1)  show_progress 0.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)delete 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 ACKAGE:dev_dataINTERNAL: 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 defaultsettings/system/xbin/sqlite3 $DATABASE "INSERT INTO system (name, value) VALUES ('trackball_wake_screen', 1);" /system/xbin/sqlite3 $DATABASE "INSERT INTO system (name, value) VALUES('trackball_unlock_screen', 1);" /system/xbin/sqlite3 $DATABASE "INSERT 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><spnOverridenumeric="46001"spn="中国联通"/><spnOverridenumeric="46000"spn="中国移动/><spnOverridenumeric="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" ];thencho 60 > /proc/sys/vm/swappinessswapon $SWAPNUMfi

在每行前面加#注释掉后就可以不开机启动swap了

要改swappiness的大小可以该第三行中的60这个数字。

设置 Compcache大家可以自己试试

(2)修改内存管理参数

在rc文件中加入这一行

echo "1536,1536,3072,1536,10240,12800" >/sys/module/lowmemorykiller/parameters/minfree其中的数字从左到右为:前台进程、可见进程、次要服务、后台服务、内容供应节点、空进程,其中的数值的单位是4k,也就是说1536 : 4k*1536=6144k=6M

4。 \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要是有什么地方弄错了很容易进不了系统。

原文:http://wenku.it168.com/d_000628107.shtml

转载于:https://www.cnblogs.com/yun111/archive/2012/12/10/2811687.html

【转】简单易懂的Android ROM定制与修改教程相关推荐

  1. Android Rom定制与修改学习(一)

    最近ZUK惨遭联想抛弃,从而使得ZUK系列全线大降价,于是将服役了三年的荣耀6换下了,入手ZUK2 PRO,机器在硬件方面都挺让人满意,只是联想采用了一块AMOLED屏,相比较于IPS而言,A屏颜色实 ...

  2. 安卓android+rom定制,移植,安卓Android ROM定制移植教程.doc

    安卓Android ROM定制移植教程 CyanogenMOD移植教程 转自秋叶随风Ivan.系统选择和安装建议使用 ubuntu LTS 10.04 X64 新手朋友推荐Deepin Linux 基 ...

  3. 安卓android+rom定制,移植,安卓Android ROM定制移植教程。.doc

    安卓Android ROM定制移植教程. CyanogenMOD移植教程 转自秋叶随风Ivan.系统选择和安装建议使用 ubuntu LTS 10.04 X64 新手朋友推荐Deepin Linux ...

  4. Android ROM定制——界面美化基础

    Android ROM定制--界面美化基础 前言:很多童鞋对美化很感兴趣,都想拥有一个完完全全属于自己风格的手机系统!对那些自定义全局背景,1%电量显示,透明下拉菜单...都很感冒!美化的重点跟难点就 ...

  5. Android ROM定制

    前言:很多童鞋对美化很感兴趣,都想拥有一个完完全全属于自己风格的手机系统!对那些自定义全局背景,1%电量显示,透明下拉菜单...都很感冒!美化的重点跟难点就在于对"framework-res ...

  6. Android ROM定制 入门到精通(含改机、移植、破解网络层、root原理、植入hook框架,反安全监测等)

    最近在定制一款ROM,拉取谷歌源码,解包.精简.修改.打包.想要实现MIUI一样的效果和国人常用的功能设置和手势. 在这个过程中遇到了很多疑难问题,也发现公司刚招来的这些小孩基础太差,而且他们根本不知 ...

  7. android设置UI界面背景,Android ROM定制——界面美化基础(framework-res、SystemUI修改)...

    前言:很多童鞋对美化很感兴趣,都想拥有一个完完全全属于自己风格的手机系统!对那些自定义全局背景,1%电量显示,透明下拉菜单...都很感冒! 美化的重点跟难点就在于对"framework-re ...

  8. 谷歌的android官方刷机,一加手机谷歌原生Android ROM包刷机教程

    [TechWeb报道]自发售之后,一加手机一直秉承着兼收并蓄的姿态,在系统方面也让消费者有了诸多的选择. 一加手机除了默认的Color OS系统外,已经开发了CM系统的刷机包下载,同时,MIUI的适配 ...

  9. Android状态栏定制和修改

    大家都知道定制在android开发中的重要性,因为通过定制,你才能制造出差异化的产品,才能满足更多消费者的需求, 像HTC生产的手机都通过了深层次的二次开发,今天我也来分享一下我的状态栏定制. 废话不 ...

  10. HTC Android系统 自定义ROM定制图文教程

    小弟写得差 请勿拍砖,如果有意见请直接回复本贴!谢谢! 技术有限,部分可能不详细或者错误的请各位指出,大家交流! 前言: 一个完整的ROM根目录会有以下几个文件夹及文件: data META-IN s ...

最新文章

  1. MySQL免安装版,遇到MSVCR120.dll文件丢失错误的解决方案
  2. 数据库自动收缩带来的严重问题
  3. mysql 二进制日志后缀数字最大为多少
  4. ES2017异步函数现已正式可用
  5. linux逻辑卷创建与管理,CentOS创建LVM linux逻辑卷创建及管理
  6. 马云:CFO 不能做 CEO;腾讯推短视频“哈皮”;三星中国份额跌至 2% | 极客头条...
  7. 组素数 蓝桥填空题2013省赛
  8. uuid会重复吗_UUID的版本你知道吗
  9. js中事件处理程序的内存优化
  10. centos7 修改语言为中文
  11. Rayman的绝顶之路——Leetcode每日一题打卡9
  12. Unity优化☀️光照烘焙
  13. 怎么样在腾讯云服务器桌面环境安装
  14. revit阶梯剖的创建方法及快速剖面操作
  15. python代码编译出现SyntaxError: Non-ASCII character ‘\xe8‘ in file问题
  16. 利用Origin绘制等高线颜色填充图:初步绘制与细化
  17. Python!使用机器学习预测2022世界杯
  18. python turtle绘图-案例集锦(小猪佩奇、哆啦A梦、小黄人、樱花树、皮卡丘、汉诺塔、高达、星空等)
  19. 如何控制局域网网速_如何优化家中的网络设备,让你的网络最快?
  20. PTS Dongle (BLE Only)实现广播

热门文章

  1. Django之forms组件使用
  2. appium+python 多设备并行执行脚本【转】
  3. vue-cli结构介绍
  4. c#类的定义,c#中的关健字,C#标识符
  5. 【JAVA】synchronized关键字
  6. 对私有API提交的注意事项
  7. 基于Linux平台的libpcap源码分析和优化
  8. ASP.NET前端解决方案之一:Ext.Net入门随笔1
  9. python+selenium自动化测试环境搭建
  10. 如何确定梯度爆炸和解决梯度爆炸