文章更新:
20160912 初次成文
说到Apktool,不论是电脑端还是手机端,大家应该都不陌生,Apktool是安卓平台上的反编译改软利器,今天这篇文章,自然和Apktool有关。但是这篇文章却并不侧重于Apktool的功能,而是侧重于刚刚升级到Android L/M设备上Apktool的一个错误:
"您的应用程序遇到一个致命错误导致它无法继续"
许多升级到Android L/M的朋友突然发现,之前用得好好的Apktool突然不能用了,于是他们开始怀疑是否是安卓版本较高导致的软件不兼容,所以他们便下载了适合他们安卓版本和处理器架构的Apktool。下载安装打开应用,惊奇地发现屏幕上的一个提示框:
"您的应用程序遇到一个致命错误导致它无法继续"
"卧槽为什么还是不能用!"
小苏的Nubia Z9mini也遇到了相同的问题。Apktool更新了几个版本我就去下载几个,当然,下载的版本肯定都是正确的:Android L/M,ARM64版。更新了几次我下载了几次,那个神奇的提示框一直挥之不去。
直到这个版本终于能用了(这个版本应该是俄国大神在4pda上基于5.2版修改后的一个版本):
"所以一定是打开的姿势不对!"
其实这篇文章写到这儿就应该结束了,不过小苏觉得还是应该提一下Apktool的正确使用姿势才好:
下载安装Apk并打开应用程序(说是应用程序不如说是一个资源包),等待程序解压资源后会再次要求你覆盖安装用户界面程序,同样点击安装:
安装之后第一件事儿就是前往设置将"Root"那个选项打勾,并且在"aapt版本切换"中选择设备当前安卓版本。至于上面的"apktool版本"就因人而异了,小苏觉得新版本的好些于是就无脑选了一个最新的版本(其实这项对软件的运行影响也挺大的,但是小苏选了最新版本之后,编译和反编译并没有出现异常,所以才这么说)。
然后退出软件,重新打开软件,进入/system/framework/,点击framework-res.apk,选择"作为framework导入"。
接着就可以开启你的编译和反编译之旅了。值得说明的是,反编译Apk后,会在Apk同目录下生成一个"Apk文件名_res"的"反编译资源文件夹",里面就是反编译后的文件。当你做完你需要的修改,即可回到Apk所在目录,点击"反编译资源文件夹",选择"编译"即可进行编译。特殊的,编译完成后的Apk文件将会与"反编译资源文件夹"生成在同一目录下而不是反编译资源文件夹下的"build"目录内。