怎么修改framework-res.apk里面的文件?

游戏攻略06

怎么修改framework-res.apk里面的文件?,第1张

怎么修改framework-res.apk里面的文件?
导读:安装APKtool软件包APKtool软件包有2个程序组成:apktooljar 和 aaptexe另外提供一个批处理文件:apktoolbat,其内容为:java -jar "%~dp0apktooljar" %1 %2 %3 %4 %5

安装APKtool软件包

APKtool软件包有2个程序组成:apktooljar 和 aaptexe

另外提供一个批处理文件:apktoolbat,其内容为:

java -jar "%~dp0apktooljar" %1 %2 %3 %4 %5 %6 %7 %8 %9

运行apktoolsjar需要java环境(160版本以上)。

apktooljar用于解包,apktooljar和aaptexe联合用于打包。

在解开APK文件时,apktool需要框架文件(framework-resapk)来解码和打包。Apktool已经包含了标准的框架,所以在大多数APK文件的解包时,不需要另外提供框架文件。但是,某些制造商使用了他们自己的框架文件,为了解包,就不得不从手机中把框架文件(framework-resapk)提取出来,然后安装到计算机。安装命令是:

apktool if framework-resapk

安装后就会得到:~apktoolframework1apk

通常,如果只是对图像进行替换,没有必要进行解包和打包。用WinRAR打开APK文件,直接做替换就可以了。但是,如果要对文字和其它非图像类内容进行修改,那只能通过解包解码了。下面几项任务需要对APK进行解包和打包。

1) 汉化APK软件

在res文件夹中,我们可以看到有很多values-的文件夹,这就是语言包。values是英文语言包,values-zh是中国地区语言包(包含港澳台及内地),values-zh-rCN是中文简体语言包(只包含内地),values-zh-rTW是中文繁体语言包(港澳台)。除此以外,其它地区的语言包都是精简的对象,可以不过多了解。

在values文件夹里,通常有arraysxml、stringsxml等语言文件,要作汉化就要对这些文件进行修改。有时也需要修改其它xml文件,一个一个地认真查看。

2) 修改图标标签

每一个APK文件都有一个“图标标签”。将APK程序安装进手机后,在图标下面显示图标标签文字。这个图标标签的内容是可以修改的。在resvalues下找到stringsxml,修改其中的一行:

图标标签

例如:静音启动

同理,如果是窗口小插件,要修改widget_name。

注意:system/app下的apk不宜修改,因为要同时修改对应的odex文件。

3) 去掉APK中的广告

有很多APK应用都带有广告。为了去掉程序中的广告,要修改mainxml文件与广告有关的内容。在res目录下找到文件mainxml。通常在layout目录下,有时也被放在其它目录下。甚至,有时不存在mainxml文件,广告行被放在其它xml文件内。只能细心逐个文件进行查找。无论哪一种情况,都要仔细查看其内容。

一般去掉广告的方法是要把fill_parent改为00dip,把wrap_content改为00dip,其它保持不变即可。这种改法就是不给广告显示空间,当然你就看不到广告了。

4) 修改显示电池为1%精度

在XT502上,默认显示只有7档: 0%,10%,20%,40%,60%,80% 和100%。通过修改framework-resapk,可以改变显示精度。但是在XT502上,实践证明最好可能达到的现实精度只有10%。修改工作如下:

(1) 对framework-resapk进行解包

(2) 修改和增加电池状态图标

(3) 修改文件stat_sys_batteryxml

(4) 修改文件stat_sys_battery_chargexml

(5) 打包

(6) 提取stat_sys_batteryxml,stat_sys_battery_chargexml,resourcesarsc和一个图标目录:drawable-mdpi

(7) 重新装配framework-resapk

5) 状态栏信息通知文字颜色修改

状态栏信息通知文字颜色,是由framework-resapk文件里resvalues下的colorsxml文件控制的,所以我们只需修改colorsxml文件就可以了。另外,此文件还控制下拉栏的文字颜色,可以修改。

用文本编辑器打开colorsxml文件,找到

#ff000000

将这句修改为:#ffffffff

这状态栏信息通知文字颜色由黑色改为白色。

首先搭建jdk环境。

下载完后,点击安装。然后设置运行环境参数:

用鼠标右击“我的电脑”->属性->高级->环境变量

系统变量->新建->变量名:JAVA_HOME变量值:D:\ProgramFiles\Java\jdk170(这是我的安装

路径这个不是固定的,比如你安装到C:\ProgramFiles,就填C:\ProgramFiles\Java\jdk170)

系统变量->编辑->变量名:Path在变量值的最前面加上:%JAVA_HOME%\bin;(若已经有Path

项,无须另外新建,直接在后面加,但需用;与前面已有的项分隔开)

系统变量->新建->变量名:CLASSPATH变量值:

;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dtjar;%JAVA_HOME%\lib\toolsjar;

最后测试下环境变量是否设置成功

点开始菜单-运行-在这里输入cmd-回车-输入javac

如果出现如下信息:

用法:javac<选项><源文件>

其中,可能的选项包括:

-g 生成所有调试信息

-g:none 不生成任何调试信息

-g:{lines,vars,source} 只生成某些调试信息

-nowarn 不生成任何警告

-verbose 输出有关编译器正在执行的操作的消息

-deprecation 输出使用已过时的API的源位置

-classpath<路径> 指定查找用户类文件的位置

-cp<路径> 指定查找用户类文件的位置

-sourcepath<路径> 指定查找输入源文件的位置

-bootclasspath<路径> 覆盖引导类文件的位置

-extdirs<目录> 覆盖安装的扩展目录的位置

-endorseddirs<目录> 覆盖签名的标准路径的位置

-d<目录> 指定存放生成的类文件的位置

-encoding<编码> 指定源文件使用的字符编码

-source<版本> 提供与指定版本的源兼容性

-target<版本> 生成特定VM版本的类文件

-version 版本信息

-help 输出标准选项的提要

-X 输出非标准选项的提要

-J<标志> 直接将<标志>传递给运行时系统

恭喜,你的Java环境变量配置成功了!

2如果出现:

'javac'不是内部或外部命令,也不是可运行的程序

或批处理文件。

说明这Java环境变量配置出错了,仔细检查下吧!

工具:安卓修改大师、一个你要修改的app安装包(这里以贪吃蛇大作战为例)。

1、选取一个要进行反编译的游戏或应用:点击安卓修改大师顶部的安卓游戏选项卡,打开的页面中找到任何一款想修改的游戏,例如,本示例将要修改的游戏为“贪吃蛇大作战”。

2、开始进行反编译:点击该游戏的“安装”按钮,弹出相关的反编译选项菜单。点击菜单中的“反编译”按钮,进入到游戏的反编译界面。

3、修改图标、程序名称等:在“反编译”界面,左侧为功能分类选项卡,右侧为当前选项卡对应的可操作项。默认选项卡是“常规信息”,在这里修改应用图标和应用名称,注意图标要为png格式,设置128128像素大小或者更大的图标。

4、重新打包:经过前面的步骤后,已经修改了应用的名称和图标以及相关的应用参数,点击前述界面左侧的“打包/签名”选项卡,然后点击开始打包按钮进行打包。

5、打包完成,马上点击“安装到手机”按钮,可以开始安装到您的手机上。

更改安卓安装包的内置文件需要反编译已经打包的APK安装包,此方法推荐使用“安卓修改大师”,可以在没有源代码的情况下,直接反编译安装包,通过修改代码实现添加和去除部分功能,也可以修改应用图标和应用程序名称。

首先搭建jdk环境。

下载完后,点击安装。然后设置运行环境参数:

用鼠标右击“我的电脑”->属性->高级->环境变量

系统变量->新建->变量名:JAVA_HOME变量值:D:\ProgramFiles\Java\jdk170(这是我的安装

路径这个不是固定的,比如你安装到C:\ProgramFiles,就填C:\ProgramFiles\Java\jdk170)

系统变量->编辑->变量名:Path在变量值的最前面加上:%JAVA_HOME%\bin;(若已经有Path

项,无须另外新建,直接在后面加,但需用;与前面已有的项分隔开)

系统变量->新建->变量名:CLASSPATH变量值:

;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dtjar;%JAVA_HOME%\lib\toolsjar;

最后测试下环境变量是否设置成功

点开始菜单-运行-在这里输入cmd-回车-输入javac

如果出现如下信息:

用法:javac<选项><源文件>

其中,可能的选项包括:

-g 生成所有调试信息

-g:none 不生成任何调试信息

-g:{lines,vars,source} 只生成某些调试信息

-nowarn 不生成任何警告

-verbose 输出有关编译器正在执行的操作的消息

-deprecation 输出使用已过时的API的源位置

-classpath<路径> 指定查找用户类文件的位置

-cp<路径> 指定查找用户类文件的位置

-sourcepath<路径> 指定查找输入源文件的位置

-bootclasspath<路径> 覆盖引导类文件的位置

-extdirs<目录> 覆盖安装的扩展目录的位置

-endorseddirs<目录> 覆盖签名的标准路径的位置

-d<目录> 指定存放生成的类文件的位置

-encoding<编码> 指定源文件使用的字符编码

-source<版本> 提供与指定版本的源兼容性

-target<版本> 生成特定VM版本的类文件

-version 版本信息

-help 输出标准选项的提要

-X 输出非标准选项的提要

-J<标志> 直接将<标志>传递给运行时系统

恭喜,你的Java环境变量配置成功了!

2如果出现:

'javac'不是内部或外部命令,也不是可运行的程序

或批处理文件。

说明这Java环境变量配置出错了,仔细检查下吧!

如何修改apk文件[apk文件修改、图标、美化、去广告]完全教程

一、首先搭建jdk环境。

下载完后,点击安装。然后设置运行环境参数:

用鼠标右击“我的电脑”->属性->高级->环境变量

系统变量->新建->变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk170(这是我的安装路径这个不是固定的,比如你安装到C:\Program Files,就填C:\Program Files\Java\jdk170)

系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;(若已经有Path项,无须另外新建,直接在后面加,但需用;与前面已有的项分隔开)

系统变量->新建->变量名:CLASSPATH 变量值:

;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dtjar;%JAVA_HOME%\lib\toolsjar;

最后测试下环境变量是否设置成功

点开始菜单-运行-在这里输入cmd-回车-输入javac

1如果出现如下信息:

用法:javac <选项> <源文件>

其中,可能的选项包括:

-g 生成所有调试信息

-g:none 不生成任何调试信息

-g:{lines,vars,source} 只生成某些调试信息

-nowarn 不生成任何警告

-verbose 输出有关编译器正在执行的操作的消息

-deprecation 输出使用已过时的 API 的源位置

-classpath <路径> 指定查找用户类文件的位置

-cp <路径> 指定查找用户类文件的位置

-sourcepath <路径> 指定查找输入源文件的位置

-bootclasspath <路径> 覆盖引导类文件的位置

-extdirs <目录> 覆盖安装的扩展目录的位置

-endorseddirs <目录> 覆盖签名的标准路径的位置

-d <目录> 指定存放生成的类文件的位置

-encoding <编码> 指定源文件使用的字符编码

-source <版本> 提供与指定版本的源兼容性

-target <版本> 生成特定 VM 版本的类文件

-version 版本信息

-help 输出标准选项的提要

-X 输出非标准选项的提要

-J<标志> 直接将 <标志> 传递给运行时系统

恭喜,你的Java环境变量配置成功了!

2如果出现:

'javac' 不是内部或外部命令,也不是可运行的程序

或批处理文件。

说明这Java环境变量配置出错了,仔细检查下吧!

二、下载APKTools工具包(里面包含:APKTools反编译工具、APKSign签名工具)。下载Notepad代码编辑器(可以修改smali和xml文件)。

在修改之前首先对APK文件内部结构有个了解:

AndroidManifestxml 程序全局配置文件

classesdex 这是Dalvik字节码

resourcesarsc 编译后的二进制资源文件

META-INF\ 该目录下存放的是签名信息

res\ 该目录存放资源文件

assets\ 该目录可以存放一些配置文件

对应这些文件和目录做些基本的注释和介绍:

AndroidManifestxml

该文件是每个应用程序都必须定义和包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。需要解包后才能加以阅读。

classesdex文件

classesdex是java源码编译后生成的java字节码文件。dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。

resourcesarsc

编译后的二进制资源文件。

META-INF目录

META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系统的安全。

res目录

res目录存放资源文件。包括,字符串等等。

解包后,几乎所有可能的修改和编辑工作基本都在这里。

assets目录

assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得。

APK文件修改,首先要对APK文件解包(也就是反编译),打开apktoolexe,如图:

左边APK反编译区,选择APK文件,选择文件保存目录,点反编译APK按钮,得到解包文件。

三、开始修改

1 如果只是对图像进行替换,没有必要进行解包和打包。用WinRAR打开APK文件,直接做替换就可以了。但是,如果要对文字和其它非图像类内容进行修改,那只能通过解包了,改好后,再编译回来,最后签名才能放进手机安装。下面介绍几个对APK进行解包和打包的案例。

2 汉化APK软件

在res文件夹中,我们可以看到有很多values-的文件夹,这就是语言包。values是英文语言包,values-zh是中国地区语言包(包含港澳台及内地),values-zh-rCN是中文简体语言包(只包含内地),values-zh-rTW是中文繁体语言包(港澳台)。除此以外,其它地区的语言包都是精简的对象,可以不过多了解。

在values文件夹里,通常有arraysxml、stringsxml等语言文件,要作汉化就要对这些文件进行修改。有时也需要修改其它xml文件,一个一个地认真查看。改好后,打包,签名,OK。

3 修改桌面图标名称(标签)

每一个APK文件都有一个“图标标签”。将APK程序安装进手机后,在图标下面显示图标标签文字。这个图标标签的内容是可以修改的。在\res\values下找到stringsxml,修改其中的一行:

图标标签

例如:静音启动

同理,如果是窗口小插件,要修改widget_name。

注意:system/app下的apk不宜修改,因为要同时修改对应的odex文件。

改好后,打包,签名,OK。

4 去掉APK中的广告

有很多APK应用都带有广告。为了去掉程序中的广告,要修改mainxml文件与广告有关的内容。在\res目录下找到文件mainxml。通常在\layout目录下,有时也被放在其它目录下。甚至,有时不存在mainxml文件,广告行被放在其它xml文件内。只能细心逐个文件进行查找。无论哪一种情况,查看其内容,你会看到有一项类似的命令如下。这就是广告显示。

将其改为:

可以看到,关键是要把fill_parent改为00dip,把wrap_content改为00dip,其它保持不变即可。这种改法就是不给广告显示空间,当然你就看不到广告了。

改好后,打包,签名,OK。

5 修改显示电池为1%精度

举个例子比如在摩托罗拉XT502上,默认显示只有7档: 0%,10%,20%,40%,60%,80% 和100%。通过修改framework-resapk,可以改变显示精度。但是在一些手机上,实践证明最好可能达到的现实精度只有10%。修改工作如下:

(1) 对framework-resapk进行解包

(2) 修改和增加电池状态图标

(3) 修改文件stat_sys_batteryxml

(4) 修改文件stat_sys_battery_chargexml

(5) 打包

(6) 提取stat_sys_batteryxml,stat_sys_battery_chargexml,resourcesarsc和一个图标目录:drawable-mdpi

(7) 重新装配framework-resapk

6 状态栏信息通知文字颜色修改

状态栏信息通知文字颜色,是由framework-resapk文件里res\values下的colorsxml文件控制的,所以我们只需修改colorsxml文件就可以了。另外,此文件还控制下拉栏的文字颜色,可以修改。

用文本编辑器打开colorsxml文件,找到

#ff000000

将这句修改为:#ffffffff

这状态栏信息通知文字颜色由黑色改为白色。

改好后,打包,签名,OK。