A1-定制Android备忘录

一、环境搭建:可以Windows7电脑上装个Vmware虚拟机,在虚拟机中装一个Windows XP及一个Linux(Ylmf OS 3.0);

二、从网上下载官方的Android2.2 ROM。

三、具体定制步骤:

  1、分解官方ROM的system.img,一般都在这个文件中定制,下载定制需要用到的工具:

  /Files/ycmoon/Android定制工具.part1.rar

  /Files/ycmoon/Android定制工具.part2.rar

  /Files/ycmoon/Android定制工具.part3.rar

  2、启动Linux并以root 用户登录把刚才解压的 unyaffs 复制到 /bin 文件夹下

  3、启动终端,进入 /bin 文件夹(cd /bin),输入如下命令 sudo chmod 777 unyaffs (赋予 unyaffs 执行权限):

  4、在根目录下新建一个文件夹:system,并将官方ROM的system.img文件放到system中;

  5、进入system目录中(cd system),执行命令 unyaffs system.img (解包 img 的命令行),解包完毕后就可以删除system文件夹中的system.img,或移至别处;

    此时,就可以看到system.img解包后的目录结构,其中app目录中为所有应用程序,可以对应用程序进行精简或添加,

    注意事项:

      A:精简的时息,一些必须的系统服务软件不能精简,否则系统无法正常运行;

      B:必须保留一个启动器,否则无法进入系统桌面,默认的为"Launcher2.apk",当然,如果你想用ADW或GO桌面,则可将launcher2.apk删除,也可不删除,不删除的时候,进入桌面的时候可选

      C:Android自带一个安装向导"SetupWizard.apk",如果要删除这个程序,则需要system目录下的“build.prop”文件中删除相应节点“ro.setupwizard.mode=OPTIONAL

 

  6、在终端命令行输入:sudo chmod -R 777 /system/* (为system目录下所有文件赋予最高权限)

 

三、合成刷机包

  (一)、合成system.img

    1、进入system的上级目录,在终端命令行输入:sudo chmod -R 777 /system/* (为system目录下所有文件赋予最高权限)

    2、在终端命令行输入:sudo mkyaffs2image /system/ /home/system.img (将system下所有文件打包成system.img)

    3、在终端命令行输入:sudo chmod -R  777 /home/system.img (将system.img赋予最高权限)

     完成以上三步后,就可以将system.img刷到手机中了。

  (二)、合成update.zip

    1、进入system的上级目录,在终端命令行下执行 zip -r system.zip system(把system文件夹打包成zip文件),并将system.zip改为update.zip

    2、从原官方ROM中提取boot.img文件。

    3、从别人刷机包中提取刷机脚本。    

ExpandedBlockStart.gif 基本的升级脚本update-script代码
show_progress  0.1   0



format SYSTEM:

copy_dir PACKAGE:system SYSTEM:

show_progress 
0.2   0

format BOOT:

write_raw_image PACKAGE:boot.img BOOT:

show_progress 
0.2   10
 

    其中show_progreess x.x x 是在刷机的时候显示进度

 

  format  SYSTEM:格式化 system 用的

  copy_dir PACKAGE:system SYSTEM: 是把升级包里的system文件夹复制到system分区
        write_raw_image PACKAGE:boot.img BOOT: 刷写包内的boot.img(内核的)

 

    4、准备好了 update.zipMETA-INF 文件夹 boot.img 内核映象,就可以开始了,用 winrar 打开 update.zip 文件(不是解压缩),把 META-INF boot.img 直接拖进压缩包里,然后用签名工具对新的 update.zip 签名就可以了。

    5、签名方法:把新的 update.zip 文件放到该文件夹,运行 Sign.bat 批处理文件就可以了(这里需要注意的是,zip文件的文件名必须为 update.zip)等待批处理运行完毕后,该目录下会生成已经签名的 update_signed.zip。

 

四、获得永久ROOT权限方法:

  1、将su和busybox拷到 system/bin下

  2、进入system/app 在命令行输入:chmod 0755 superuser.apk

  3、进入system/bin 在命令行输入:chmod 4755 su 和 chmod 0755 busybox

五、替换framework-res.apk更改数字电量

  1、用apktool d framework-res.apk framework-res先把原版的framework-res.apk解包,把1-100的电量图标文件“stat_sys_battery_1”,数字1为电量。分别拷到drawable-hdpi和drawable-mdpi两个文件夹中替换原有的

  2、打开framework-res\drawable\stat_sys_battery.xml。更改1-100的电量显示图片。

  

ExpandedBlockStart.gif View Code
<? xml version="1.0" encoding="UTF-8" ?>
< level-list
  
xmlns:android ="http://schemas.android.com/apk/res/android" >
    
< item  android:drawable ="@drawable/stat_sys_battery_0"  android:maxLevel ="0"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_1"  android:maxLevel ="1"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_2"  android:maxLevel ="2"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_3"  android:maxLevel ="3"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_4"  android:maxLevel ="4"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_5"  android:maxLevel ="5"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_6"  android:maxLevel ="6"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_7"  android:maxLevel ="7"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_8"  android:maxLevel ="8"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_9"  android:maxLevel ="9"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_10"  android:maxLevel ="10"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_11"  android:maxLevel ="11"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_12"  android:maxLevel ="12"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_13"  android:maxLevel ="13"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_14"  android:maxLevel ="14"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_15"  android:maxLevel ="15"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_16"  android:maxLevel ="16"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_17"  android:maxLevel ="17"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_18"  android:maxLevel ="18"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_19"  android:maxLevel ="19"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_20"  android:maxLevel ="20"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_21"  android:maxLevel ="21"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_22"  android:maxLevel ="22"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_23"  android:maxLevel ="23"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_24"  android:maxLevel ="24"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_25"  android:maxLevel ="25"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_26"  android:maxLevel ="26"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_27"  android:maxLevel ="27"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_28"  android:maxLevel ="28"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_29"  android:maxLevel ="29"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_30"  android:maxLevel ="30"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_31"  android:maxLevel ="31"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_32"  android:maxLevel ="32"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_33"  android:maxLevel ="33"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_34"  android:maxLevel ="34"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_35"  android:maxLevel ="35"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_36"  android:maxLevel ="36"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_37"  android:maxLevel ="37"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_38"  android:maxLevel ="38"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_39"  android:maxLevel ="39"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_40"  android:maxLevel ="40"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_41"  android:maxLevel ="41"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_42"  android:maxLevel ="42"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_43"  android:maxLevel ="43"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_44"  android:maxLevel ="44"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_45"  android:maxLevel ="45"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_46"  android:maxLevel ="46"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_47"  android:maxLevel ="47"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_48"  android:maxLevel ="48"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_49"  android:maxLevel ="49"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_50"  android:maxLevel ="50"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_51"  android:maxLevel ="51"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_52"  android:maxLevel ="52"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_53"  android:maxLevel ="53"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_54"  android:maxLevel ="54"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_55"  android:maxLevel ="55"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_56"  android:maxLevel ="56"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_57"  android:maxLevel ="57"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_58"  android:maxLevel ="58"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_59"  android:maxLevel ="59"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_60"  android:maxLevel ="60"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_61"  android:maxLevel ="61"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_62"  android:maxLevel ="62"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_63"  android:maxLevel ="63"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_64"  android:maxLevel ="64"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_65"  android:maxLevel ="65"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_66"  android:maxLevel ="66"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_67"  android:maxLevel ="67"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_68"  android:maxLevel ="68"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_69"  android:maxLevel ="69"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_70"  android:maxLevel ="70"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_71"  android:maxLevel ="71"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_72"  android:maxLevel ="72"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_73"  android:maxLevel ="73"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_74"  android:maxLevel ="74"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_75"  android:maxLevel ="75"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_76"  android:maxLevel ="76"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_77"  android:maxLevel ="77"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_78"  android:maxLevel ="78"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_79"  android:maxLevel ="79"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_80"  android:maxLevel ="80"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_81"  android:maxLevel ="81"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_82"  android:maxLevel ="82"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_83"  android:maxLevel ="83"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_84"  android:maxLevel ="84"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_85"  android:maxLevel ="85"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_86"  android:maxLevel ="86"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_87"  android:maxLevel ="87"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_88"  android:maxLevel ="88"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_89"  android:maxLevel ="89"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_90"  android:maxLevel ="90"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_91"  android:maxLevel ="91"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_92"  android:maxLevel ="92"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_93"  android:maxLevel ="93"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_94"  android:maxLevel ="94"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_95"  android:maxLevel ="95"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_96"  android:maxLevel ="96"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_97"  android:maxLevel ="97"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_98"  android:maxLevel ="98"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_99"  android:maxLevel ="99"   />
    
< item  android:drawable ="@drawable/stat_sys_battery_100"  android:maxLevel ="100"   />
</ level-list >

 

3、将整个framework-res重新打包成apk文件:apktool b framework-res temp.apk

4、将重新打包的部分文件替换到原版的资源文件中,【注意:替换的时候,弹出的窗口必须选择“存储”,不能选择“标准”,否则无法成功】

  分别打开两个RAR程序,一个打开原版的framework-res.apk。一个打开重新打包的temp.apk。

  (1)、将temp.apk中根目录的“”文件拖动到framework-res.apk的根目录,并替换,选择“存储”。

  (2)、将temp.apk中的drawable\stat_sys_battery.xml文件拖到framework-res.apk中drawable中,替换,选择“存储”。

  (3)、将temp.apk中的drawable-hdpi中的1-100的电最图片拖到framework-res.apk中的drawable-hdpi中,替换,并选择"存储“。

  (4)、将temp.apk中的drawable-mdpi中的1-100的电最图片拖到framework-res.apk中的drawable-mdpi中,替换,并选择"存储“。

至此整个图片资源替换成功。

5、将原版的framework-res.apk复制到手机的system文件夹中,设置权限全部选上,再移动到framework文件夹中,重启动手机

 六、替换拨号键为返回主页键的方法

  1、打开system/usr/keylayout。要修改两个文件:qwerty.kl和mt6516-kpd.kl

  2、把文件复制到system/根目录下,分别打开两个文件,把里面的

     key 231   CALL 改为 key 231   HOME
     key 61   CALL 改为 key 61    HOME

  3、把两个文件赋予最高权限777,再移动到system/usr/keylayout下覆盖原文件,重启手机即可。

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/ycmoon/articles/2022171.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值