① apktool编译问题,反编译失败.求助
1、反编译=回编译后分别是
smali目录 回编译为 classes.dex 文件
res目录 回编译为 resources.arsc 文件
2、回编译顺序
在回编译时,会先检查“源”即resources
当你汉化文件,修改出错了(缺少一个符号也不行),
那么回编译会自动跳过编译res文件夹,直接回编译smali 。
所以,如果没有对smali(classes.dex)汉化,那么建议大家删掉这个文件夹,
这要会大大加快回编译速度。
3、出错问题1
在汉化时,往往会不小心删掉一些符号,如 "<" ">"符号等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
这些小小的错误都会导致回编时译检查出错。
所以汉化时,注意对校,然后再回编译。
建议使用一些高级的文本编辑器,支持语法高亮视图的。
4、出错问题2
最近发现有些APK文件 反编译后,就算不汉化直接回编译,都会出错。
有可能的原因1,反编译后XML文件语法中@符号 前面多了"\" (\@ ),
用文本编辑工具 直接替换【\@】为【@】,应该可以解决。
建议使用最新版本的反编译工具。
5、建议大家使用新版本的APKTool工具,
当然如果新的有问题也可以试试旧的一、系统文件汉化再次强调
1、汉化Settings.apk(系统设置)、MMS.apk(信息)、Phone.apk(电话)、
等等系统文件,一定要先 安装构架,具体看另个文件
<关于APKTool工具反编译Settings.apk问题>。
2、系统文件汉化完后不需要签名,直接替换汉化后的文件,就可以了。
主要是,系统文件放在系统目录,无需再次读取签名获得权限,已经是高级了。
二、打包说明
1、通常汉化完回编译后,会自动生成所有APK内的文件,或者自动生成*.APK文件。
但是建议大家不要直接使用该文件,进了使用替换法,替换掉你汉化后的文件,
如:resources.arsc,如果修改过的图片,等等…
2、很多人对于APK文件 解压缩或压缩 都用“WinRAR”或“好压”,这里不推荐。
希望大家安装7-Zip这个压缩工具,对于zip格式的支持是最好的。而且很方便,
不需要重新关联apk 直接右键打开就行了。替换直接拖拉进去,就OK了一、回编译出错问题
(1.提示 strings.xml 最后一行错误,检查是否</string>符号错误;
在汉化时,往往会不小心删掉一些符号,如 "<" ">"符号等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
(2.提示 strings.xml 最顶部含中文代码首行错误,编码格式不对,转换成 UTF-8;
(3.提示 public.xml 出错,检查改动过的 arrays.xml 是否代码有错误的地方;
二、一切能正常但无法回编译
还有一种情况,apktool最新版本能正常反编译一个apk文件,在未做任何修改的情况下,无法回编译。
这是就要注意了,可以尝试一下用低版本的apktool进行【反编译】,然后在用高版本的apktoo工具【回编译】。
这里向大家推荐用 【APKDB】 这个工具,很方便,反编译时可以选择apktool的版本。
② 求助,apk被加密了,反编译不了,可有方法解决
下载dex2jar JD-GUI apktool
反编译步骤:
1.反编译Apk得到java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。
具体步骤:
1.首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
2.解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录
运行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar
2.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
还是下载工具,这次用到的是apktool
具体步骤:
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar
1.解压缩下载的两个文件包,apktool-install-windows-r04-brut1.tar解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解压后的一个.jar 文件到解压后的\apktool-install-windows-r04-brut1文件夹里)
2.特别注意:你要反编译的文件一定要放在C盘的根目录里
③ APK反编译失败,有没用大神帮忙看一下什么情况
安卓现在新的SDK 加入了程序保护
总的来说有四种
1.采用jni的方法来保护自己的协议 UI之类随便亏雀抄随便改 这类可以反编译的 例如手机YY等
2.代码混淆 不改变代码逻辑的情况下,增加无用代码,或者重命名,使反编译后难于看懂 此类一般不可正常反编译核心文件 但可以修改UI中的图标,声音等
3.通过web service来实现, App上没有核心代码,这类也可以随便修改,因为核心在服务器上
4.签名比对 有两种
服务器端校验APP信息 这类无法修改 除非你拿到人家的密钥,但是可以直接拖压缩包的方法修改,然后丢进ROM里面分别对应APP和LIB 例如新版腾讯QQ
底层代码加入校验 来和签名做比对 把原版信息放入库文件之类,启动时进行比对,导致反编译后无法运行,例如 新浪微博,校验签名代码位于SO库文件中
还有销樱早一些不设置保护的或者没必要保护的 这类随便改
纯属个人看法,若有不足请多海涵,总之一句话,能反编译的你就反编译 ,不能的 修改之后把修改的文件拖颂铅进去 丢进ROM里面 不要动签名 照样运行,ROM的特殊性决定了安卓程序怎么保护都逃不了修改的命运
ROM里面的APK文件 默认的是已经安装 你不用去修改官方签名去达到安装的目的
用户自己安装的APK 安装时候需要进行签名校对,修改之后不进行签名必定安装失败,修改签名却又无法运行程序的尴尬境地
④ 安卓反编译一般软件成功,反编译系统自带软件就不行。比如System.apk。错误提示如下:
安装系统框架没?
用re管理器到systemframework文件夹中找到framework-res.apk文件,然后复制到apktool目录下。
成功解压……
只是回编时要先删除ststusbar_background.9.png……
w开头的基本都是警告提示……
⑤ 安卓版apktool为什么无法反编译。
请确保要反编译的apk在英文目录下,apktool无法识别中文路径。如果还不行就下载个最新版的apktool试试
⑥ 使用APK改之理和Android Killer编译之后为什么生成了两个文件
一、有时候我们反编译某些apk就会报如图所示的错误。
出现这个错误的原因是由于APKTOOL工具没有进行跟新。
二、更新apktool工具
2.1 打开AndroidKiller工具选中“Android”选项如图所示
2.2 点击“APKTOOL管理器”弹出如下窗口
2.3 点击“添加”按钮,弹出如下窗口,填写对应的参数信息,点击“确定”按钮
2.4 选中更新后的apktool版本
三、更新后大部分apk都可以进行编译,效果如图所示
这就是解决AndroidKiller反编译apk失败的方法。