【原创】Android高级话题之:编译与反编译apk文件及java环境设置
无须编程经验,一样可以修改Android系统之apk文件,达到自行修改系统特性或美化系统的目的。第一步:下载,安装java环境:
http://cloud.189.cn/t/qIR3Yr
下载之后安装,安装完成。
第二步:设置java环境:
安装好java之后,记下其安装路径,如:C:\Program Files (x86)\Java\jdk1.7.0 然后:
1、点击“我的电脑”=>“系统属性”=>“高级”=>“环境变量”,新建两个分别是JAVA_HOME和CLASSPATH,变量值分别是对应的java安装目录,如:
JAVA_HOME对应C:\Program Files (x86)\Java\jdk1.7.0
CLASSPATH对应 .;C:\Program Files (x86)\Java\jdk1.7.0\lib\dt.jar;C:\Program Files (x86)\Java\jdk1.7.0\lib\tools.jar
注意变量前的.和;必须加上。如图:
2、再点击下面的“系统变量”的Path,双击,在前面添加上对应的路径(不同版本及系统安装的路径不同,自己对应),如:
C:\Program Files (x86)\Java\jdk1.7.0\bin;C:\Program Files (x86)\Java\jre6\bin;
注意后面要加上分号;
3、确定设置好之后,打开DOS窗口,输入java -version,如果看到版本信息,则说明java环境设置成功。如图:
第三步:java环境设置好之后,就可以用工具软件来反编译了,先下载工具:
然后打开该工具,并用re管理器将相应的apk文件拷贝出来进行反编译。以下就以修改MOTO XT894手机默认的自动亮度级别为例,说明一下如何操作。
MOTO XT894的默认亮度很高,比较费电,就可以自己修改其默认的亮度来达到省电的目的。
1、先用re管理器将/system/framework/framework-res.apk拷贝出来,然后用DoAPK将其反编译;
2、打开反编译后的目录res/values下的arrays.xml文件,用notepad打开即可,找到这一行:
<integer-array name="config_autoBrightnessLevels">
可以看到其下面的亮度级别只有三档:
<item>50</item>
<item>3000</item>
<item>8000</item>
修改为:
<item>10</item>
<item>50</item>
<item>100</item>
<item>150</item>
<item>200</item>
<item>700</item>
<item>1300</item>
<item>2000</item>
<item>3000</item>
<item>4000</item>
<item>5000</item>
<item>6000</item>
<item>7000</item>
<item>8000</item>
<item>9000</item>
修改为16档,够多了吧,再将下一行:
<integer-array name="config_autoBrightnessLcdBacklightValues">
的对应亮度的值:
<item>48</item>
<item>88</item>
<item>206</item>
<item>246</item>
修改为:
<item>5</item>
<item>10</item>
<item>20</item>
<item>30</item>
<item>40</item>
<item>50</item>
<item>60</item>
<item>70</item>
<item>80</item>
<item>90</item>
<item>100</item>
<item>110</item>
<item>120</item>
<item>130</item>
<item>140</item>
<item>150</item>
保存退出。
2、用DoAPK工具将其编译回去,如下图选择对应的目录及存放apk文件的目录即可:
3、还有关键一步,就是将重新编译所得的apk文件,用winrar打开,将其里面的resources.arsc文件解压出来,我们只需要用到这个文件,而不是重新编译回来的整个apk文件;然后将这个resources.arsc添加覆盖回去之前拷贝出来的framework-res.apk文件里面,获得一个新的framework-res.apk文件。
4、用re管理器,将新的framework-res.apk文件拷贝手机卡,再拷贝到/system目录下,设置权限为rw-w-r,即第一行钩上Read,Write,第二行和第三行只钩上Read,设置好权限之后,再拷贝覆盖到system/framework目录下,退出重启一下即生效。注意一定要先在system目录下设置好权限,才拷贝到system/framework目录下,否则。。。重新刷机吧。
至此,工程完成,HOHO。 一看就知道是老大的技术贴 好贴 mark ========
这个不错,是很重要的安卓系统修改和美化的基础知识之一。 技术流~~~ 技术贴支持 混淆过的代码能用不? 顶下老大的技术贴! 馬克~~多傳授點安致知識~ Posted by bladechan on 2012-6-3 14:47 http://www.ibmnb.com/images/common/back.gif
混淆过的代码能用不?
什么是混淆过的代码? GOogle官方出的apktool就可以,呵呵,那些要不要权限多的国产应用,可以先改一下权限后再打包安装。 这个帮顶了啊 Posted by HOPE on 2012-6-3 17:57 http://www.ibmnb.com/images/common/back.gif
什么是混淆过的代码?
编译的时候为防止逆向用混淆器混淆过的代码。
回复 #13 bladechan 的帖子
没有试过,目前试的是系统自带的模块。 学习了,谢谢分享:) mark 很重要的安卓系统修改 mark留念! 精华的技术文章啊,谢谢楼主 为什么不能用这个工具编译生成的APK文件直接覆盖原文件?
页:
[1]