如何编译framework-res.apk修改图标文件

 我来答
己学好4
推荐于2016-10-08 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:5107万
展开全部
首先
你要明白framework-res.apk是个什么东西 自己找度娘吧 我熬夜很久了 很累

然后我们要清楚自己的目的是什么?

至少我的目的是把电池显示改掉 改成圆圈显示

首先,我们要知道"framework-res.apk"是不可以重签名的!(我们要切记这一点)另外,修改"framework-res.apk"之前务必先做好备份!这是相当重要的文件,稍有出错都会令你进不了系统的!

这就是为什么好多朋友编译了framework-res.apk 后自动重启 并且无限重启的原因 因为你只是替换 而不是编译 步骤走少了 所以也就出错了

需要的环境
JDK 这个不需要我解释吧?
懂得编译的都知道 安卓是在JAVA的环境开发 那么你要编译一个程序 必然不能离开JAVA

下面教大家如何搭建JAVA环境
下载下面这个文件 然后安装
http://dl.dbank.com/c0ypixiw9j

1.安装JDK
双击打开刚刚下载的JDK安装包,安装目录可以为任意,只要你记着就好,当然,C盘是比较好,但由于铭心也是一名程序员,装了比较多开发相关的软件及环境,因此装在D盘

2.JAVA环境变量配置
安装好JDK后,找到我的电脑,按右键,点属性选项, 按高级选项卡,点击环境变量
Win7或vista为:计算机-属性-高级系统设置-高级-环境变量

然后再用户变量那里新建3个环境变量
CLASSPATH : %JAVA_HOME%\lib;
JAVA_HOME:JDK安装路径\jdk1.6.0_18(安装路径就是你安装JDK的位置)
PATH: %JAVA_HOME%\bin;
点击确定退出编辑界面,再点击确定,退出环境变量界面

3.验证JDK和环境变量
这时按住键盘上win键(windows图案按钮)+R,打开运行,键入CMD
接着,看到黑色背景白色字的命令行界面,再键入:java –version(注意有一个空格)
若你看到以下内容,表明你JDK和环境变量配置成功,否则,请从第三步从新开始
java version "1.6.0_18"
java<TM> SE Runtime Environment <build 1.6.0_18-b07>
java HotSpot<TM> Client VM <bulid 16.0-b13, mixed mode, sharing>

确定以上步骤没错就可以开始下面的步骤了(一定要确定是否无错 不然下面的步骤无法进行)

先下载我们的重要工具:apktool(帖子最下)
这是一个编译,反编译工具
此工具虽然操作会不如其他某些编译工具简单,但是修改框架文件,推荐使用这个!!!

接着我们就要进行提取framework文件了,用RE浏览器打开目录/system/framework下,就会看到有"framework-res.apk"的文件了,直接把他复制到内存卡,然后放到电脑上准备对它进行开刀解剖!(当然,手机必须是已经Root了)

用apktool反编译"framework-res.apk"
为了方便,建议先把这文件重命名为“f.apk”,在D盘根目录下建立一个apktool的文件夹,把解压好的APKTool.zip里面的三个文件以及“f.apk”一齐放到D:\apktool中
也就是说 你的D盘apktool文件夹里面有4个文件!!!

然后打开DOS界面 就是开始-运行-cmd
接着输入以下代码(一个都不要错 不然无法编译)
01 D:
02 cd apktool
03 apktool if f.apk
04 apktool d f.apk f
PS:d 是反编译命令 后面的f表示生成文件名为f的文件夹(有的framework-res.apk文件无法编译 如果你看到出现一大串英文 并且后面都显示Unknown source 那么说明你的framework-res.apk无法编译 只有换一个)

接下来 窗口别关 还用得上

这时 你的D:\apktoo目录下就会多出一个名为f的文件夹,里面放着就是反编译出来的文件了

接下来的东西一定要仔细 出错就全盘白忙了

接下来把你要替换的图标放到framework-res.apk 里面的res文件夹里(用压缩软件打开后直接把你要替换的文件丢进去替换了就是)

替换完了过后接着在命令提示符里面输入代码
apktool b f

重点又到了
这还没结束 不是说你替换了 你就完事了 NO!!!!!!
先搞清楚,我们现在有两个apk文件,一个是编译前的f.apk,一个是编译后的f2.apk。
用压缩软件同时打开f.apk,f2.apk,是打开,而不是解压(成功编译之后,f文件夹就会多了个dist的文件夹,里面放的就是编译好的文件,同样命名为f.apk的,我们为了区分,先把他重命名为f2.apk


细心观察,会发现编译后的f2,少了一个META-INF的文件夹,这个其实就是apk包的签名所在,但是这框架文件是不能签名的,所以,我们才要进行下面的步骤
我们需要把两类文件从f2.apk拉到f.apk中替换,
第一类是:刚才反编译后,你所替换过,或者修改过的所有文件
第二类是:resources.arsc这一个文件
所有文件一个都不能替换少了
PS:记得要放到相同的目录下哦!!
PSP:我们最后要的是f.apk这个文件!!!

替换好后,我们可以把f.apk重新命名为“framework-res.apk”,然后放回到内存卡上。
然后,用RE浏览器把“framework-res.apk”复制到/system目录下,然后,长按文件名选择权限,具体权限修改如下图(RE管理器挂载为读/写)权限设置211

修改好确定后,再把“framework-res.apk”剪切到/system/framework目录下,选择替换原文件,再次确认权限是否有误!
PS:一定要修改好权限后才能放进/system/framework,不然系统会马上挂掉的!!

最后就是重启手机,一阵心跳过后,深呼吸一口气,顺利进入系统了!!!!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式