apktool反编译的一些问题
来源:互联网 发布:中兴燕郊 知乎 编辑:程序博客网 时间:2024/05/16 07:47
项目中用到Android apk反编译重打包,可在用apktool遇到了一些问题,今天抽时间把问题总结下;
(1)我最初用的apktool版本为1.5.2,在反编译时偶尔报错如下:
2014-12-11 13:46:29 I: Baksmaling...
2014-12-11 13:46:35 I: Loading resource table...
2014-12-11 13:46:36 I: Loaded.
2014-12-11 13:46:36 I: Decoding AndroidManifest.xml with resources...
2014-12-11 13:46:36 I: Loading resource table from file:C:\Users\sunxinxin01\apktool\framework\1.apk
2014-12-11 13:46:38 I: Loaded.
2014-12-11 13:46:38 W: Could not decode attr value, using undecoded valueinstead: ns=android, name=hardwareAccelerated, value=0xffffffff
2014-12-11 13:46:38 I: Regular manifest package...
2014-12-11 13:46:38 I: Decoding file-resources...
2014-12-11 13:46:38 W: Could not decode attr value, using undecoded valueinstead: ns=android, name=textIsSelectable, value=0x00000000
2014-12-11 13:46:38 W: Could not decode attr value, using undecoded valueinstead: ns=android, name=layerType, value=0x00000001
2014-12-11 13:46:39 I: Decoding values */* XMLs...
2014-12-11 13:46:39 Exception in thread "main"brut.androlib.err.UndefinedResObject: resource spec: 0x01010362
2014-12-11 13:46:39 atbrut.androlib.res.data.ResPackage.getResSpec(ResPackage.java:61)
2014-12-11 13:46:39 atbrut.androlib.res.data.ResTable.getResSpec(ResTable.java:58)
2014-12-11 13:46:39 atbrut.androlib.res.data.ResTable.getResSpec(ResTable.java:54)
2014-12-11 13:46:39 atbrut.androlib.res.data.value.ResReferenceValue.getReferent(ResReferenceValue.java:62)
2014-12-11 13:46:39 at brut.androlib.res.data.value.ResStyleValue.serializeToResValuesXml(ResStyleValue.java:51)
2014-12-11 13:46:39 atbrut.androlib.res.AndrolibResources.generateValuesFile(AndrolibResources.java:440)
2014-12-11 13:46:39 atbrut.androlib.res.AndrolibResources.decode(AndrolibResources.java:243)
2014-12-11 13:46:39 atbrut.androlib.Androlib.decodeResourcesFull(Androlib.java:115)
2014-12-11 13:46:39 atbrut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
2014-12-11 13:46:39 at brut.apktool.Main.cmdDecode(Main.java:146)
2014-12-11 13:46:39 at brut.apktool.Main.main(Main.java:77)
解决方案:将C:\Users\用户\apktool文件夹删除即可解决;(2)在用apktool1.5.2版本时,某些apk反编译会报如下错:
2015-01-29 11:50:57 I: Baksmaling...
2015-01-29 11:51:06 I: Loading resource table...
2015-01-29 11:51:06 Exception in thread "main"brut.androlib.AndrolibException: Could not decode arsc file
2015-01-29 11:51:06 atbrut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:56)
2015-01-29 11:51:06 atbrut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:491)
2015-01-29 11:51:06 at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:74)
2015-01-29 11:51:06 atbrut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:66)
2015-01-29 11:51:06 atbrut.androlib.Androlib.getResTable(Androlib.java:50)
2015-01-29 11:51:06 atbrut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189)
2015-01-29 11:51:06 atbrut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
2015-01-29 11:51:06 at brut.apktool.Main.cmdDecode(Main.java:146)
2015-01-29 11:51:06 at brut.apktool.Main.main(Main.java:77)
2015-01-29 11:51:06 Caused by: java.io.IOException: Expected: 0x001c0001, got:0x00000000
2015-01-29 11:51:06 atbrut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
2015-01-29 11:51:06 at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:44)
2015-01-29 11:51:06 atbrut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:102)
2015-01-29 11:51:06 atbrut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:83)
2015-01-29 11:51:06 at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
2015-01-29 11:51:07 ... 8 more
解决方案:将apktool版本升级到2.0.0即可解决,但要注意的是这一版本使用jdk1.7编译的,所以jre低于1.7的会报错;apktool2.0.0下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads;
(3)将apktool升级到2.0.0时,重打包出来的apk在安装时报错:INSTALL_PARSE_FAILED_NO_CERTIFICATES。网上说是没有签名,可已经用jarsigner签名过了,后来发现是由于jdk7的默认签名算法改变了,和jdk6的不同。
解决方案:使用jarsigner签名时要注意加入以下选项,这样打出来的apk就ok了:
-digestalg SHA1 -sigalg MD5withRSA
参考:http://androiddevelopertutorial.com/fixing-install_parse_failed_no_certificates-android-jdk7
- apktool反编译的一些问题
- apktool反编译问题
- apktool反编译问题总结
- apktool反编译问题汇总
- apktool反编译工具的使用
- Apktool反编译工具的使用
- apktool反编译工具的使用
- apktool 反编译
- apkTool反编译
- brut.androlib.err.UndefinedResObject apktool反编译问题
- apktool的反编译工具的使用
- Android的apk反编译工具Apktool
- APK的反编译与编译(APKTOOL)
- 反编译apktool的使用方法:修改smali原则
- android 反编译 apktool 的使用 dex2jar
- 使用apktool反编译apk的XML文件
- apktool反编译res下的XML
- 使用APKTOOL 反编译APK 失败的解决方法
- tomcat发布项目问题汇总
- 贪心算法——经典习题
- git的介绍与使用
- LVS负载均衡
- 杂文:创新,淘宝,马云,阿里,美国,工商局,假货
- apktool反编译的一些问题
- Android 点击控件(比如ListView中item),抬起后,保持按下的背景颜色
- Directx3D9学习之二:Windows编程之最简单窗口程序
- Ubuntu下的一些命令_1
- POJ-2407-Relatives 解题报告
- 笔试相关笔记
- unity3D游戏开发之iTween介绍和用法
- rman 增量恢复 dg gap后 主库添加新数据文件
- 三层架构理论总结