爱黑武论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 31246|回复: 56

[经验] 以国行2.3为例修改 ROOT 精确电量 自动亮度 四大金刚 震动 射频 apktool反编译及打包

  [复制链接]
发表于 2011-9-23 13:33 | 显示全部楼层 |阅读模式

立即注册,加入爱黑武论坛的大家庭!爱黑武,爱上搞机生活!

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 htcer 于 2011-9-23 15:57 编辑

第一次发帖,作为送给黑5以及小狼的礼物---以国行2.3为例教你简单修改framework-res.apk
1、  反编译apk工具以及使用方法。
2、  反编译后国行通讯录乱码修复。
3、  精确电量。
4、  自动亮度。
5、  四大金刚亮度。
6、  震动。
7、  特效。
8、  更换默认壁纸,锁屏壁纸。
9、 手机射频。
10、signapk签名问题
11、  其他一些说明
作为发烧友,最基本的要求就是会对一些apk进行反编译。
前提是手机得root送上2.3root工具 DEFY 一键ROOT.zip (399.4 KB, 下载次数: 189)
工具apktool 下载链接http://code.google.com/p/android-apktool/以及最新的 apk.zip (3.6 MB, 下载次数: 3678)
要求java环境变量配置,这个请请教度娘或者谷歌,谷歌的特点是资源多,但英文较多。度娘汉文多,但相对来说资源就少一些了。不过简单一些的资源度娘就能很轻松搞定了。
简单说明一下apktool的使用,建立文件夹(名字不能是中文)例如apk apk.jpg )将下载的
apktool.jar.jpg
现在最新的貌似是1.4.1版本,和
1.jpg
解压后放到apk文件夹
2.jpg

打开cmd将路径切换到apk文件夹下,将需要反编译的apk文件放到apk文件夹下:
3.jpg 然后在命令提示框输入:
  1. apktool d *.apk(*.apk为你要反编译的apk文件)
复制代码

说明一下:第三方apk反编译如上就行,如果想反编译系统自带apk就需要框架framework-res.apk或者其它的支持。品牌不同资源框架文件也不同,moto的一般为三个。全部在/system/framework/下的apk文件,加载资源文件的方法
  1. apktool if *.apk
复制代码

注意空格
今天我们主要是对framework-res.apk进行反编译。
方法如下:
5.jpg
4.jpg
这样就算是反编译完成了,apktool的版本不同可能会出现不同的情况,软件都是有bug的,我们不要抱怨,感恩软件制作者NB的同时,要学会包容。

反编译后就会在apk目录下生成同名文件夹

我们打开
6.jpg
Assets文件夹是一些直接调用的文件,不用修改,AndroidManifest.xml文件是一主要的配置文件,不要修改,apktool.yml是apktool自动生成的,不用修改。我们只对res进行修改,打开res文件夹
7.jpg

这里面是我们要修改的一些文件,我们按照文件夹顺序来一步一步来。
9.jpg
一、第一个anim文件夹是特效文件夹,现在流行的好多特效(九尾,飞来飞去,左右摆动,上下,左移,右移)都是通过修改它里面的文件来实现的,以其中一个为例:
8.jpg
Xml文件用如图文件来修改,很方便,问度娘要去。先给出一个自用的: foxe.exe (980 KB, 下载次数: 246)
  1. <?xml version="1.0" encoding="utf-8"?>

  2. <set android:interpolator="@anim/decelerate_interpolator"

  3. xmlns:android="http://schemas.android.com/apk/res/android">

  4. <scale android:duration="@integer/config_shortAnimTime" android:pivotX="50.0%" android:pivotY="50.0%" android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="1.0" android:toYScale="1.0" />

  5. <alpha android:duration="@integer/config_shortAnimTime" android:fromAlpha="1.0" android:toAlpha="1.0" />

  6. </set>
复制代码
这是九尾的现成范例,可以自己diy。怎么diy问度娘。全部说出来,这一个帖子撑不下。见谅……



二、下一个修改drawable-hdpi,这里可以修改界面和电量图片不要大量替换,会打包不成功。电量文件( 电池图标素材.zip (377.37 KB, 下载次数: 251) )将里面的图片和配置文件复制到drawable-hdpi里面,提示替换的替换就行,将配置文件放到drawable文件夹一份。这样精确电量就实现了,moto国行自带不能实现1%步进,需要/system/lib/libandroid_server.so支持,请自行搜索。任务栏的文件图片status_bar_background.png(2.2-status_bar_background.9.png)和任务栏下方阴影title_bar_shadow.9.png也在这里面,想要透明的可以用Fireworks或者ps自行修改,还有锁屏图片 lock.zip (129.44 KB, 下载次数: 66) 也在这和drawable-land-hdpi里面。拿来主义会让你慢慢被太多的人抛弃。另外信号,蓝牙,无线……图标文件都在这里面。
三、帖子的重点-values文件夹:
10.jpg
首先arrays.xml文件找到如下字段:
  1. <integer-array name="config_longPressVibePattern"> #长按震动
  2. <item>0</item>
  3. <item>40</item>
  4. </integer-array>
  5. <integer-array name="config_virtualKeyVibePattern"> #四大金刚震动
  6. <item>0</item>
  7. <item>25</item>
  8. </integer-array>
  9. <integer-array name="config_keyboardTapVibePattern"> #键盘按键震动
  10. <item>0</item>
  11. <item>25</item>
  12. </integer-array>
  13. <integer-array name="config_safeModeDisabledVibePattern">#安全模式不可见震动
  14. <item>0</item>
  15. <item>40</item>
  16. </integer-array>
  17. <integer-array name="config_safeModeEnabledVibePattern">#安全模式可见震动
  18. <item>0</item>
  19. <item>40</item>
  20. <item>500</item>
  21. <item>600</item>
  22. </integer-array>
  23. <integer-array name="config_scrollBarrierVibePattern">
  24. <item>0</item>
  25. <item>30</item>
  26. <item>60</item>
  27. <item>30</item>
  28. </integer-array>
  29. <integer-array name="config_autoBrightnessLevels">#自动亮度级别
  30. <item>50</item>
  31. <item>3000</item>
  32. <item>8000</item>
  33. </integer-array>
  34. <integer-array name="config_autoBrightnessLcdBacklightValues">#自动亮度led背景光亮度级别
  35. <item>48</item>
  36. <item>108</item>
  37. <item>206</item>
  38. <item>246</item>
  39. </integer-array>
  40. <integer-array name="config_autoBrightnessButtonBacklightValues">
  41. <item>255</item>
  42. <item>0</item>
  43. <item>0</item>
  44. <item>0</item>
  45. </integer-array>
  46. <integer-array name="config_autoBrightnessKeyboardBacklightValues">
  47. <item>255</item>
  48. <item>0</item>
  49. <item>0</item>
  50. <item>0</item>
  51. </integer-array>
复制代码
这哩可以实现自动亮度调整,四大金刚亮度调整(2.3由于内核的原因,好像修改后无效)和锁屏四大金刚以及长按震动,四大金刚好多人还是喜欢震动的,可以调节震动减弱一些,17为微震,很舒服(大家都说很舒服,反正你不舒服,只能说明你另类,哇哈哈哈)以下是修改好的我自用的去震代码:
  1. <integer-array name="config_longPressVibePattern">
  2. <item>0</item>
  3. <item>0</item>
  4. </integer-array>
  5. <integer-array name="config_virtualKeyVibePattern">
  6. <item>0</item>
  7. <item>0</item>
  8. </integer-array>
  9. <integer-array name="config_keyboardTapVibePattern">
  10. <item>0</item>
  11. <item>0</item>
  12. </integer-array>
  13. <integer-array name="config_safeModeDisabledVibePattern">
  14. <item>0</item>
  15. <item>0</item>
  16. </integer-array>
  17. <integer-array name="config_safeModeEnabledVibePattern">
  18. <item>0</item>
  19. <item>0</item>
  20. <item>500</item>
  21. <item>600</item>
  22. </integer-array>
  23. <integer-array name="config_scrollBarrierVibePattern">
  24. <item>0</item>
  25. <item>0</item>
  26. <item>0</item>
  27. <item>0</item>
  28. </integer-array>
  29. <integer-array name="config_autoBrightnessLevels">
  30. <item>30</item>
  31. <item>100</item>
  32. <item>300</item>
  33. <item>1000</item>
  34. <item>2000</item>
  35. <item>3000</item>
  36. <item>4000</item>
  37. <item>5000</item>
  38. <item>6000</item>
  39. <item>7000</item>
  40. <item>8000</item>
  41. </integer-array>
  42. <integer-array name="config_autoBrightnessLcdBacklightValues">#有效值为24-255
  43. <item>24</item>
  44. <item>44</item>
  45. <item>64</item>
  46. <item>84</item>
  47. <item>104</item>
  48. <item>124</item>
  49. <item>144</item>
  50. <item>164</item>
  51. <item>184</item>
  52. <item>204</item>
  53. <item>224</item>
  54. </integer-array>
  55. <integer-array name="config_autoBrightnessButtonBacklightValues">有效值同上。
  56. <item>1</item>
  57. <item>0</item>
  58. <item>0</item>
  59. <item>0</item>
  60. <item>0</item>
  61. <item>0</item>
  62. <item>0</item>
  63. <item>0</item>
  64. <item>0</item>
  65. <item>0</item>
  66. <item>0</item>
  67. </integer-array>
  68. <integer-array name="config_autoBrightnessKeyboardBacklightValues">
  69. <item>1</item>
  70. <item>0</item>
  71. <item>0</item>
  72. <item>0</item>
  73. <item>0</item>
  74. <item>0</item>
  75. <item>0</item>
  76. <item>0</item>
  77. <item>0</item>
  78. <item>0</item>
  79. <item>0</item>
  80. </integer-array>
复制代码

好多发烧友,发现一个问题就是,明明在配置文件里修改了true和false的值,可是在软件系统里面发现无效,那就得看看bools.xml文件了,里面是一些设置选项的设置。很方便很实用。至于颜色的修改可以修改colors.xml没有颜色概念的友友还是放弃吧。
四、下面这个文件夹里面的文件是好多反编译人员最常访问的:
11.jpg
这是中文的valves,2.2的framework-res.apk反编译后发现通讯录乱码,问题在plurals.xml里面。不一样的就修改为如下就行了:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <plurals name="num_seconds_ago">
  4. <item quantity="other">%d 秒前</item>
  5. <item quantity="one">1 秒前</item>
  6. </plurals>
  7. <plurals name="num_minutes_ago">
  8. <item quantity="other">%d 分钟前</item>
  9. <item quantity="one">1 分钟前</item>
  10. </plurals>
  11. <plurals name="num_hours_ago">
  12. <item quantity="other">%d 小时前</item>
  13. <item quantity="one">1 小时前</item>
  14. </plurals>
  15. <plurals name="last_num_days">
  16. <item quantity="other">过去 %d 天</item>
  17. </plurals>
  18. <plurals name="num_days_ago">
  19. <item quantity="other">%d 天前</item>
  20. <item quantity="one">昨天</item>
  21. </plurals>
  22. <plurals name="in_num_seconds">
  23. <item quantity="other">%d 秒后</item>
  24. <item quantity="one">1 秒后</item>
  25. </plurals>
  26. <plurals name="in_num_minutes">
  27. <item quantity="other">%d 分钟后</item>
  28. <item quantity="one">1 分钟后</item>
  29. </plurals>
  30. <plurals name="in_num_hours">
  31. <item quantity="other">%d 小时后</item>
  32. <item quantity="one">1 小时后</item>
  33. </plurals>
  34. <plurals name="in_num_days">
  35. <item quantity="other">%d 天后</item>
  36. <item quantity="one">明天</item>
  37. </plurals>
  38. <plurals name="abbrev_num_seconds_ago">
  39. <item quantity="other">%d 秒前</item>
  40. <item quantity="one">1 秒前</item>
  41. </plurals>
  42. <plurals name="abbrev_num_minutes_ago">
  43. <item quantity="other">%d 分钟前</item>
  44. <item quantity="one">1 分钟前</item>
  45. </plurals>
复制代码
至于strings.xml是好多汉化的人都很熟悉的一个文件。里面可以diy好多事情,这个只有你进去了才会知道。注意中文修改要用中文标点,要不会打包失败。
五、这个文件夹:
12.jpg
我们只修改一个文件power_profile.xml
这是有关射频时cpu调用的一个配置文件:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <device name="Android">
  3. <item name="none">0</item>
  4. <item name="screen.on">0.1</item>
  5. <item name="bluetooth.active">0.1</item>
  6. <item name="bluetooth.on">0.1</item>
  7. <item name="screen.full">0.1</item>
  8. <item name="wifi.on">0.1</item>
  9. <item name="wifi.active">0.1</item>
  10. <item name="wifi.scan">0.1</item>
  11. <item name="dsp.audio">0.1</item>
  12. <item name="dsp.video">0.1</item>
  13. <item name="radio.active">1</item>
  14. <item name="radio.scanning">0.5</item>
  15. <item name="gps.on">1</item>
  16. <array name="radio.on">
  17. <value>0.2</value>
  18. <value>0.1</value>
  19. <array name="cpu.speeds">
  20. <value>400000</value>
  21. </array>
  22. <item name="cpu.idle">0.1</item>
  23. <array name="cpu.active">
  24. <value>0.2</value>
  25. </array>
复制代码
国行2.3的这个文件配置有点简单了,说白了就是上面的功能运行在0.1的频率时就调用400m以上的cpu,这样cpu就两个级别了,400以内,400-1g。我们可以直接借用2.2的来配置:
  1. <device name="Android">
  2. <item name="none">0</item>
  3. <item name="screen.on">55</item>
  4. <item name="bluetooth.active">142</item>
  5. <item name="bluetooth.on">1</item>
  6. <item name="bluetooth.at">35690</item>
  7. <item name="screen.full">115</item>
  8. <item name="wifi.on">4</item>
  9. <item name="wifi.active">130</item>
  10. <item name="wifi.scan">104</item>
  11. <item name="dsp.audio">75</item>
  12. <item name="dsp.video">75</item>
  13. <item name="radio.active">300</item>
  14. <item name="gps.on">170</item>
  15. <item name="radio.scanning">70</item>
  16. <array name="radio.on">
  17. <value>3</value>
  18. <value>3</value>
  19. </array>
  20. <array name="cpu.speeds">
  21. <value>1000000</value>
  22. <value>900000</value>
  23. <value>800000</value>
  24. <value>700000</value>
  25. <value>600000</value>
  26. <value>500000</value>
  27. <value>400000</value>
  28. <value>300000</value>
  29. <value>200000</value>
  30. <value>100000</value>
  31. </array>
  32. <item name="cpu.idle">10</item>
  33. <array name="cpu.active">
  34. <value>840</value>
  35. <value>760</value>
  36. <value>680</value>
  37. <value>520</value>
  38. <value>440</value>
  39. <value>360</value>
  40. <value>280</value>
  41. <value>200</value>
  42. <value>120</value>
  43. <value>40</value>
  44. </array>
  45. <item name="battery.capacity">1000</item>
  46. </device>
复制代码
请放心经验证没有任何不良后果,至少我就是这样用的。
如不放心可按如下修改:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <device name="Android">
  3. <item name="none">0</item>
  4. <item name="screen.on">0.1</item>
  5. <item name="bluetooth.active">0.1</item>
  6. <item name="bluetooth.on">0.1</item>
  7. <item name="screen.full">0.1</item>
  8. <item name="wifi.on">0.1</item>
  9. <item name="wifi.active">0.1</item>
  10. <item name="wifi.scan">0.1</item>
  11. <item name="dsp.audio">0.1</item>
  12. <item name="dsp.video">0.1</item>
  13. <item name="radio.active">1</item>
  14. <item name="radio.scanning">0.5</item>
  15. <item name="gps.on">0.5</item>
  16. <array name="radio.on">
  17. <value>0.2</value>
  18. <value>0.1</value>
  19. </array>
  20. <array name="cpu.speeds">
  21. <value>900000</value>
  22. <value>700000</value>
  23. <value>500000</value>
  24. <value>300000</value>
  25. <value>100000</value>
  26. </array>
  27. <item name="cpu.idle">0.1</item>
  28. <array name="cpu.active">
  29. <value>0.5</value>
  30. <value>0.4</value>
  31. <value>0.3</value>
  32. <value>0.2</value>
  33. <value>0.1</value>
  34. </array>
  35. <item name="battery.capacity">1000</item>
  36. </device><?xml version="1.0" encoding="utf-8"?>
  37. <device name="Android">
  38. <item name="none">0</item>
  39. <item name="screen.on">0.1</item>
  40. <item name="bluetooth.active">0.1</item>
  41. <item name="bluetooth.on">0.1</item>
  42. <item name="screen.full">0.1</item>
  43. <item name="wifi.on">0.1</item>
  44. <item name="wifi.active">0.1</item>
  45. <item name="wifi.scan">0.1</item>
  46. <item name="dsp.audio">0.1</item>
  47. <item name="dsp.video">0.1</item>
  48. <item name="radio.active">1</item>
  49. <item name="radio.scanning">0.5</item>
  50. <item name="gps.on">0.5</item>
  51. <array name="radio.on">
  52. <value>0.2</value>
  53. <value>0.1</value>
  54. </array>
  55. <array name="cpu.speeds">
  56. <value>900000</value>
  57. <value>700000</value>
  58. <value>500000</value>
  59. <value>300000</value>
  60. <value>100000</value>
  61. </array>
  62. <item name="cpu.idle">0.1</item>
  63. <array name="cpu.active">
  64. <value>0.5</value>
  65. <value>0.4</value>
  66. <value>0.3</value>
  67. <value>0.2</value>
  68. <value>0.1</value>
  69. </array>
复制代码
至此基本上算是简单修改完了吧我们打包:
13.jpg
然后下面要仔细了,要不卡M或者我先重启或者开机后黑屏就不管我的事情了。
将1framework-res.apk用rar打开将里面resources.arsc直接拖到framework-res.apk相应路径。
14.jpg
注意压缩方式为存储!!!!就是不压缩,有人可能喜欢用好压,无所谓的)。
将那会替换的电量图标从1framework-res.apk的 drawable-hdpi替换加载到framework-res.apk里面相应的drawable-hdpi文件夹下,压缩方式为存储。将电量配置文件按同上方式替换到相应的位置,注意存储方式为标准,还有drawable文件夹下面也有一份电量配置文件,注意存储方式为标准!!!!
还有一个文件就是xml文件夹下的power_profile.xml文件,也要替换。
最后再说明一下,就是xml文件一般都是标准的压缩替换方式,png图片全部都是不压缩的存储替换方式。不要以为在括号里就不重要
不要签名,签名framework-res.apk会导致开机后桌面壁纸和软件失效。直接替换到/system/framework/下注意修改权限。
在此送上我自用的framework-res.apk framework-res.apk (3.25 MB, 下载次数: 267) 和原国行2.3的 framework-res.apk (3.18 MB, 下载次数: 73)








评分

6

查看全部评分

 楼主| 发表于 2011-9-23 13:34 | 显示全部楼层
备用
发表于 2011-9-23 14:36 | 显示全部楼层
支持了
~~~~~~~
发表于 2011-9-23 15:42 | 显示全部楼层
支持一个!!!
发表于 2011-9-23 18:58 | 显示全部楼层
精品。。。喜欢折腾的好好学习,自己修改啊
发表于 2011-9-24 13:28 | 显示全部楼层
受教了 谢谢了
发表于 2011-9-24 13:30 | 显示全部楼层
非常感谢 谢谢大婶
发表于 2011-9-24 22:19 | 显示全部楼层
哇靠。太给力了!!这两天正倒腾这个戴妃+的国行包类
回复 支持 反对

使用道具 举报

发表于 2011-9-26 11:18 | 显示全部楼层
这个必须顶起来,使劲儿顶!!!
回复 支持 反对

使用道具 举报

发表于 2011-10-6 18:19 来自:爱黑武手机版 | 显示全部楼层
支持和
回复 支持 反对

使用道具 举报

 Hello,黑武的好机友!回复想偷个懒?点这里: 
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|Archiver|手机版|爱黑武论坛 ( 京ICP备2023028323号 | 京公网安备11011202000270号 )

GMT+8, 2024-4-27 15:00 , Processed in 0.053286 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, ihei5.com

快速回复 返回顶部 返回列表