/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
软件Tags: apk修改工具apk反编译软件apk编辑器
APK改之理(Apk IDE)是一个安卓apk文件修改工具,直观显示编辑,便捷高效,语法代码高亮突出显示,看的非常的清楚。本版本为官方最新测试版,apk改之理教程请参考下载包的使用教程,欢迎下载使用。
APK改之理是一款可视化的用于修改安卓Apk程序文件的工具,集成了APKTool、Dex2jar、JD-GUI等Apk修改工具,集Apk反编译、Apk打包、Apk签名,支持语法高亮的代码编辑器,基于文件内容的关键字(支持单行代码或多行代码段)搜索、替换引擎,打造成可视的、一体化的APK修改工具,从而大大简化Apk修改过程中的繁琐操作,修改更轻松。
1.启动程序:
双击ApkIDE.exe启动程序。如果是XP系统启动不了它,请点击这里下载安装.net framework 2.0。
2.配置jdk:
第一次启动时,软件会自动查找系统中的jre安装目录,如果没有找到会提示你配置SDK,可以点击菜单[工具]-[配置SDK]对JDK进行配置,如下图。JDK的安装路径必须配置(如果不配置,则无法进行修改操作),Android SDK则随意(有些功能需要用到它,比如ddms等,但这些功能都无关修改工作)。
提示:JDK推荐使用JDK1.6(或称做JDK6,点击这里进入下载),JDK1.7(或称做JDK7)不同电脑上可能会出现一些小问题,特别是小内存电脑(这些问题的解决见FAQ,如果你用jdk1.7时出现问题又怕麻烦可以改用jdk1.6)。另外,从apk改之理2.4开始必须使用jdk,不再支持jre(jdk是开发工具,jre只是一般普通用户运行java程序的工具)。
3.打开要修改的Apk文件:
单击菜单[项目]-[打开Apk]选择要修改的Apk文件(注:文件名称必须只有字母、数字、下划线、空格、点号等组成,不能包含中文或其它亚洲字符)。
4.新的修改还是继续旧的工作:
在打开Apk文件时Apk改之理会先对其进行基本的解析(包括它的名称、包、权限等),然后根据该apk应用的包名生成它的同名工作目录,如果这个工作目录已经存在,Apk改之理会询问是否要重新反编译Apk。这里要注意,已有的工作目录通常是你以前修改这个Apk应用时所生成的工作目录,如果你要继续这个修改操作,则单击[否]继续使用它,否则就重新反编译得到一个全新的源代码。
提示:如果你想继续旧工作但却误点了“是”按钮,也不用担心,删除的目录被扔进了系统垃圾箱,你可以直接去系统回收站恢复。恢复时注意,如果你之前成功对这个应用进行过dex2jar操作(由软件在反编译apk时自动进行,但可能会因一些原因而失败),那么回收站中会看到二个同名的目录,选中它们右键恢复即可。(注:这个特性Apk改之理2.1或更高版本中有效)
5.修改Apk:
现在你可以使用软件的搜索、替换等功能来对源代码进行修改,这种修改包括汉化、去广告、改名、替换资源、图片、xx等等。下图中各个图标按钮都有提示文字,可以将鼠标悬浮在按钮上显示文字提示。具体的各项说明会单独写个文章来详细解释,基本上也没什么难点。
这里先提示一些没有说明的小功能:(1)在文件树上,或搜索后得到的文件列表上,按住Shift键+单击鼠标右键会直接显示操作系统菜单。 (2)在“输入输出面板组”的搜索结果面板中,搜索结果列表以标签的形式各自分开,鼠标悬浮在标签上会显示对应搜索结果的搜索条件。(3)工作目录下的第一个build目录下的文件不会被搜索(因为这个是Apktool编译时用到的,与我们的修改无直接关系)。
6.编译成Apk:
修改完成后单击菜单[编译]-[编译生成Apk]重新将源代码打包成apk文件,新生成的apk存放在原apk的同级目录下,其名称以“ApkIDE_”开头。
7.获取生成的Apk:
单击菜单 [编译]-[获取生成的APK] 可以直接在资源浏览器中定位到apk所在的目录。
8.直接测试Apk:
这个需要用到菜单[ADB]下的菜单命令,如果你已经将设备连接到电脑,或者直接在电脑上打开了安卓模拟器,可以单击菜单 [ADB]-[安装生成的APK] 直接向设备或模拟器安装修改生成的apk,然后再可以使用adb logcat 来观察其运行状况。
如果发现ADB相关命令不启作用,你可以先用 adb devices 命令查看设备是否连接成功(可以直接在输入输出面板组的命令窗口输入“adb devices”),也可以使用菜单 [工具]-[Dalvik Debug Monitor Service](ddms)来测试,当然这些都是后话了,也超出了本文的范畴。
9.打完收功!
1.在左侧的“项目”面板中,在树目录中,右键单击可以看到“系统右键菜单”的选项,可以用于显示系统关于当前选中的文件(夹)的右键菜单。一个更快捷的打开这个菜单的方法是:按住Shift键,右键单击树目录中的文件或文件夹即可;同样的,在使用搜索功能后,在“搜索结果”列表中,也有此菜单命令,同样也可以使用Shift+右键的方式快速打开系统右键菜单。
2.在编辑代码时,如果想搜索其中的一段内容,只要选中内容,然后用鼠标拖动它们到右侧的搜索框(或替换框)中,免去复制再粘贴的麻烦。
3.在编辑代码时,如果觉得编辑空间不够大,代码又太长,可以双击顶部的文件名标签,最大化编辑器,再次双击则自动还原。
4.在编辑代码时,如果嫌字号太小或太大时,可以按下Ctrl键向前或向下滚动滑鼠以缩放页面。
5.在右侧的搜索替换面板中,编辑搜索或替换内容时,你可能时常会觉得这个输入框太小了,使用鼠标托动缩放的方式又太麻烦。现在你只要双击“搜索和替换”面板的标题栏,面板就会自动放大或缩小宽度了;同样的,左侧的“项目”面板。
6.在底部的“输入输出”面板中,如果你在观察输出信息或搜索结果列表时,觉得宽度不够看,同样只需要双击面板顶部的标题栏,二侧的项目和搜索面板会自动隐藏(或显示),以便最大化(或还原)输入输出面板。
7.在打开APK文件后,在左侧“项目”面板,单击APK应用图标或其信息说明可以显示apk详细的应用信息,包括名称、版本、权限等。
8.在汉化修改时,在搜索替换面板中开启“实时翻译”,在编辑器中选择要翻译的内容,右键单击选择“发送到搜索框”,稍等片刻即可自动在替换框中显示翻译内容并自动全选;不过也要注意,开启实时翻译后,一旦搜索框中内容有变化,替换框中的内容也将自动变化。
可视化操作,全自动的反编译、编译、签名Apk。
以树目录管理全部反编译得到的Apk资源文件,方便操作。
内置代码编辑器,支持语法高亮显示,根据文件格式自动匹配相应语法;支持多文档同时编辑;也支持使用系统编辑器来编辑代码文件。
内置基于文件内容的关键字或多行代码段的搜索、替换引擎,一键搜索替换,搜索结果以标签的形式分门别类;允许在指定搜索范围(整个工程或选中的文件或文件夹内搜索),支持正则表达式搜索和替换。搜索功能是Apk修改的一个重要工具,从此你不必借助其它第三方搜索工具。
内置Google在线翻译引擎,支持实时翻译,支持所有Google支持的几十国语言对译,汉化更轻松。
支持使用自己的keystore文件签名。
自动识别图像资源,并提供该类资源的快捷替换功能,方便修改这类图片资源。
内嵌Unicode、AscII互转工具,以方便硬编码的文字(如汉字)的搜索和汉化类修改。
内置类似于系统cmd.exe的命令窗口,高手也可以手动直接输入各种命令来手动操作。
所有操作步骤、操作结果都以良好的阅读格式输出在日志窗口,方便查看修改的历史记录。
内置adb功能,包括使用adb向设备(或模拟器)安装、卸载修改后的apk进行测试,并嵌入adb log、ddms等功能监测修改apk的运行状况,以便于分析和查找错误。
无法运行Apk改之理?
这种情况基本上都是发生在使用XP系统的用户身上,原因是没有安装.net framework(至少2.0),点击 这里 到微软官网下载(这个是.net framework2.0简体中文版,其它版本请自已搜索) 。
如何配置Java SDK?
鉴于还有很多人不明白如何设置JDK,这里以安装jdk1.6为例,给出一个详细设置步骤:
(1)先下载安装JDK:点击这里进入下载JDK,参考下面的图示下载jdk安装包。
(2)安装jdk1.6,安装时注意它的安装路径,你也可以更改安装路径,假设安装路径为E:\Develop\JDK6。安装时有二个部份选择安装,一个是JDK,一个是JRE(建议都装),二者的路径可以设置不同,主要是JDK的路径你记得最好,至于JRE随便装哪儿,不过建议都放在一起(如安装到E:\Develop\JDK6\jre,覆盖同名目录没什么问题)。
(PS:安装过程就不详述了,如果连安装都不会,我只能建议你先去学一些电脑的基本知识)
(3)如果你照上面的步骤做的,重新打开APK改之理后,它一般就能直接找到JDK的安装路径了,不用再手动配置。
(4)如果没有自动配置好,或者你使用的是免安装绿色版的JDK,你可以手动配置JavaSDK方法:在APK改之理主界面点菜单“工具-配置和选项”(2.4.2以前的版本叫“配置SDK”),点击“Java SDK(JDK)”安装路径后面的“浏览”按钮,找到JDK的安装目录(如E:\Develop\JDK6)。
(PS:如果你被提示“无效的安装目录”,若如此,请确保你所选择的目录下存在一个bin文件夹,且这个bin文件夹下包含java.exe、jarsigner.exe等程序。)
【注意】从2.4版开始不再支持jre,必须要jdk,因为jre相对jdk少了很多工具(如jre的bin目录下没有jarsigner.exe等),随着APK改之理的不断升级,有可能用到jdk中的更多工具,所以从2.4开始,下载安装一个jdk是必须的。
(5)Android SDK不是必要的,但配置方法与手动配置JDK类似(它会检查选中的目录下有没有“SDK Manager.exe”和“AVD Manager.exe”这二个程序文件),这里不详述。
在打开APK时,本想继续上次的修改但误点了重新编译,怎么办?
(1)在使用apk改之理打开一个apk时,apk改之理会先去查看是否存在它的旧工作目录,如果存在会提示是否继续使用旧工作目录(如上图),也就是说这个apk之前修改过,如果本次你想继续上次的修改工作,那么按提示应该点“否”按钮,如果你误点了“是”按钮,也不用担心,因为Apk改之理在重新编译前会把旧工作目录清理到系统回收站,等待本次重新编译完成后,你可以直接从系统回收站还原出旧工作目录使用。
(2)有些细节你可能要注意,因为你点了“是”所以同时会编译生成一个全新的工作目录(而旧工作目录被扔进系统回收站),直接从系统回收站将旧工作目录还原到原位置覆盖新的工作目录一般不会有太大问题;另外,通常你在回收站能找到二个同名的工作目录,一个实际来自于APK改之理安装目录下的 Work 文件夹中,一个来自 Worksrc 文件夹中(注意看它们的“原位置”就能分辨了),前者是smali的源代码目录,也就是apk反编译后得到的源码目录,后者是class文件的源码目录,主要用于查找smali文件的java源码文档,这个class目录恢不恢复就无所谓(搞不明白或不想搞明白就全部恢复),因为重新编译时同样会生成,这个目录下的文件不可能被修改(当然,你叛逆的非要去改除外)。
(3)这个方法只对Apk改之理2.1或以上版本有效,在2.0中是直接删除旧工作目录无法恢复的。
为什么要更新aapt?aapt如何更新?
aapt即Android Asset Packaging Tool,是解包、打包、解析apk的核心程序,这个文件是集成android sdk的platform-tools目录下。如果在使用Apk改之理编译、反编译时出现有关aapt的错误时,可尝试更新这个aapt.exe来解决(比如编译时出现 could not exec command: [aapt, p, --min-sdk-version, 16, --target-sdk-version, 16, -F... 之类的错误时;当然,需要说明的是,出现这种问题不一定是aapt的问题,可能你所改动的代码有问题)。要更新这个程序,可以开启android sdk中的SDK Manager,并更新列表中的 Tools\Android SDK Platform-tools ,下载完成后可以到 [android sdk安装目录]\platform-tools目录下找到最新的 aapt.exe。得到后将它拷贝一份到 Apk改之理(Apk IDE)安装目录下覆盖同名文件即可。如果你没有安装android sdk,也不想安装,可以直接点击 这里 下载最新版(我会在发现有更新的aapt.exe时添加在下载列表中)。
dex转成jar失败是什么原因?如何处理?
(1)确保使用的是最新版本的APK改之理(2.1或以上版本);
(2)如果使用的是JDK1.7,请按此方法修改:[Apk改之理安装目录]\dex2jar\d2j-dex2jar.bat 将其中的 java -Xms512m -Xmx1024m -cp 改成 java -Xms128m -Xmx512m -cp 或根据你电脑的物理内存设置更小的值,具体参数含义请自行百度或google搜索“JVM参数”。(JDK1.6下如果失败也可尝试此方法)
(3)如果以上方法无效,如果是Vista/win7系统,请尝试用管理员权限运行Apk改之理(右键单击ApkIDE.exe单击以管理员运行);
(4)(根据评论中maple网友的经历)检查一下你的系统杀毒软件是否拦截了apk中的插件(如果有);尝试暂停杀毒保护;
(5)如果以上方法无效,删除整个Apk改之理安装目录,重装一份新的Apk改之理。
(6)如果以上方法无效,对不起,我也无能为力。
PS:dex2jar即使失败也不影响修改apk,这个工具只是用来查看.smali文件对应的.java源码以辅助理解程序逻辑之用。
为什么编译时卡死?或反编译后不进行任何修改也无法编译成功?如何处理?
所谓编译卡死,是指在编译时,进度条一直停留在一处很长时间没有改变,这个一般只要等5-10分钟内如果编译不动,基本可断定为已经卡死了。这个问题比较复杂,可能情况较多,但通常可能是由于修改的代码本身和编译工具的问题;另外,再比如,改得多了你就会经常。
v3.5.0更新内容:
1.常规化更新apktool,依然有apktool和shakapktool两种选择;
2.兼容更高版本的安卓SDK程序,从SDK16-26均可完美反编译并回编译,解决高版本卡死问题,测试环境为jdk目前最新版本jdk18-144;
3.重做dex2jar,将抗干扰能力进一步增强,并新增指令,出错时仍然可以无障碍反编译成java;
4.将大量组件如aapt等全部重做;
5.将插件如oat2dex等进行完全重做,并新增安卓xml和arsc文件分析工具;
6.新增多dex批量反编译功能插件,无论多少dex,均可一次性反编译成java,并有jdgui和luten两种不同的选择。