Apk IDE是一款可视化的用于修改安卓Apk程序文件的工具,集成了ApkTool、Dex2jar、JD-GUI等Apk修改工具,集Apk反编译、Apk打包、Apk签名,支持语法高亮的代码编辑器,基于文件内容的关键字(支持单行代码或多行代码段)搜索、替换引擎,打造成可视的、一体化的APK修改工具,从而大大简化Apk修改过程中的繁琐操作,修改更轻松。
软件特色
1、可视化操作,全自动的反编译、编译、签名Apk。
2、以树目录管理全部反编译得到的Apk资源文件,方便操作。
3、内置代码编辑器,支持语法高亮显示,根据文件格式自动匹配相应语法;支持多文档同时编辑;也支持使用系统编辑器来编辑代码文件。
4、内置基于文件内容的关键字或多行代码段的搜索、替换引擎,一键搜索替换,搜索结果以标签的形式分门别类;允许在指定搜索范围(整个工程或选中的文件或文件夹内搜索),支持正则表达式搜索和替换。搜索功能是Apk修改的一个重要工具,从此你不必借助其它第三方搜索工具。
5、内置Google在线翻译引擎,支持实时翻译,支持所有Google支持的几十国语言对译,汉化更轻松。
6、自动识别图像资源,并提供该类资源的快捷替换功能,方便修改这类图片资源。
7、内嵌Uni code、AscII互转工具,以方便硬编码的文字(如汉字)的搜索和汉化类修改。
8、内置类似于系统cmd.exe的命令窗口,高手也可以手动直接输入各种命令来手动操作。
9、所有操作步骤、操作结果都以良好的阅读格式输出在日志窗口,方便查看修改的历史记录。
10、内置adb功能,包括使用adb向设备(或模拟器)安装、卸载修改后的apk进行测试,并嵌入adb log、ddms等功能监测修改apk的运行状况,以便于分析和查找错误。
11、支持多国语言界面,支持界面换肤。
使用教程
配置jdk:
第一次启动时,软件会自动查找系统中的Jre安装目录,如果没有找到会提示你配置SDK,可以点击菜单[工具]-[配置SDK]对JDK进行配置,如下图。JDK的安装路径必须配置(如果不配置,则无法进行修改操作),Android SDK则随意(有些功能需要用到它,比如ddms等,但这些功能都无关修改工作)。
提示:JDK(或JRE)请使用JDK1.6(或称做JDK6),不要使用JDK1.7(或称做JDK7),因为在dex2jar目前的版本貌视不支持JDK1.7
打开要修改的apk文件:
单击菜单[项目]-[打开Apk]选择要修改的Apk文件(注:文件名称必须只有字母、数字、下划线、空格、点号等组成,不能包含中文或其它亚洲字符)。
新的修改还是继续旧的工作:
在打开Apk文件时Apk改之理会先对其进行基本的解析(包括它的名称、包、权限等),然后根据该apk应用的包名生成它的同名工作目录,如果这个工作目录已经存在,Apk改之理会询问是否要重新反编译Apk。这里要注意,已有的工作目录通常是你以前修改这个Apk应用时所生成的工作目录,如果你要继续这个修改操作,则单击[否]继续使用它,否则就重新反编译得到一个全新的源代码。
提示:如果你想继续旧工作但却误点了“是”按钮,也不用担心,删除的目录被扔进了系统垃圾箱,你可以直接去系统回收站恢复。恢复时注意,如果你之前成功对这个应用进行过dex2jar操作(由软件在反编译apk时自动进行,但可能会因一些原因而失败),那么回收站中会看到二个同名的目录,选中它们右键恢复即可。(注:这个特性Apk改之理2.1或更高版本中有效)
修改Apk
现在你可以使用软件的搜索、替换等功能来对源代码进行修改,这种修改包括汉化、去广告、改名、替换资源、图片、xx等等。下图中各个图标按钮都有提示文字,可以将鼠标悬浮在按钮上显示文字提示。具体的各项说明会单独写个文章来详细解释,基本上也没什么难点。
这里先提示一些没有说明的小功能:(1)在文件树上,或搜索后得到的文件列表上,按住Shift键+单击鼠标右键会直接显示操作系统菜单。 (2)在“输入输出面板组”的搜索结果面板中,搜索结果列表以标签的形式各自分开,鼠标悬浮在标签上会显示对应搜索结果的搜索条件。(3)工作目录下的第一个build目录下的文件不会被搜索(因为这个是Apktool编译时用到的,与我们的修改无直接关系)。
编译成Apk:
修改完成后单击菜单[编译]-[编译生成Apk]重新将源代码打包成apk文件,新生成的apk存放在原apk的同级目录下,其名称以“ApkIDE_”开头。
获取生成的Apk:
单击菜单 [编译]-[获取生成的APK] 可以直接在资源浏览器中定位到apk所在的目录。
直接测试Apk:
这个需要用到菜单[ADB]下的菜单命令,如果你已经将设备连接到电脑,或者直接在电脑上打开了安卓模拟器,可以单击菜单 [ADB]-[安装生成的APK] 直接向设备或模拟器安装修改生成的apk,然后再可以使用adb logcat 来观察其运行状况。
如果发现ADB相关命令不启作用,你可以先用 adb devices 命令查看设备是否连接成功(可以直接在输入输出面板组的命令窗口输入“adb devices”),也可以使用菜单 [工具]-[Dalvik Debug Monitor Service](ddms)来测试,当然这些都是后话了,也超出了本文的范畴。
打完收功!
更新日志
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两种不同的选择;