Centos下android应用apk包,apktool反编译及回重新打包

apktool:是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。
aapt:将资源文件编译成二进制文件.尽管你可能没有直接使用过aapt工具, 但是build scripts和IDE插件会使用这个工具打包apk文件构成一个Android 应用程序。
下载(下最新的):
https://code.google.com/p/android-apktool/
至于环境呢,当然是要可以执行java了,并且安装了gcc等编译工具等等,zlib必不可少哦

环境信息:
OS:Centos 环境
zlib:1.2.5+ (官网是1.2.8,你直接编译安装这个就可以了) http://www.zlib.net/
注意:记得把java、apktool、apktool.jar、aapt都加到环境变量内~已经在重新安装zlib后要执行ldconfig

相关工具我已经上传到百度网盘 下载 http://pan.baidu.com/share/link?shareid=1345746703&uk=1426502039

源码方式安装zlib:
下载:http://www.zlib.net/,或者到我百度网盘内下载
步骤:
#如果你系统是64位的,你还必须要单独编译一个32位的,因为aapt不支持64位,所以必须要先执行

注意还要在把64位的也编译了,不然恐怕你机器就起不来了,只能跟我一样去机房里面编译配置了。

不报错则OK

接着执行(如果你没有把)

没有编译64位的zlib导致的,或者说是我没有拷贝到对应的lib目录下导致的下面的问题
而如果在重启系统时,出现类似下面这种错误,是由于libz.so的问题,系统找不到了
Checking configuration files for slapd: bdb_db_open: unclean shutdown detected; attempting recovery.
bdb_db_open: Recovery skipped in read-only mode. Run manual recovery if errors are encountered.

ok这时候几乎就不会有错误了。

拆解格式:

apktool有一些参数,主要看你是需要修改哪部分东西,大概一般都是直接就可以了

最后重新打包

最后运行没问题

啰嗦一下,如果你的包内使用了外部的一些类库等,可能在你重新编译后依然没办法正常运行软件内的一步分功能,这时你可以试试这个思路。当然这个程序必须是你自己的,可以得到原始的无签名的apk。
方法是,1)你将未签名包正常解压出来比如是A目录。
2)使用apktool反编译得到B目录
3)修改B目录内需要修改的数据
4)将B目录重新打包成apk,比如叫B.apk(是未签名的)
5)接着在解压重新打包后的B.apk成为BB文件夹文件
6)使用BB文件夹文件覆盖掉A目录文件夹

这时这个应该功能上来说是没什么问题了,除非在你代码里又引入一些其他的比较恶心的写法。

参考信息:

下面这个问题出现多半也是因为重新编译了zlib,而appt版本太老导致,请在google下载对应的aapt以及apktool等工具

在反编译后,重新打回原始包,出如下错误,需要在编译zlib环境配置时执行export CFLAGS=-m32,在上面有提到

出现这种错误,你懂的,要么没安装,要么安装后lib的so包没有在PATH内,或者没有ldconfig

还有如果在往回打包的时候如果出现aapt: /lib/libz.so.1: no version information available (required by aapt),则需要升级你的zlib,首先肯定是卸载掉你自身系统内的zlib ,卸载方法如下:

然后重新安装
而下面这种问题是因为此图根本不是9.png图(九妹图),甭管它,估计在这个文件夹下会有mode_line.png图

可能看着比较乱,没办法写完之后好久了,都忘记当时为什么这么写了~

- THE END -
版权声明:
转载原创文章请注明,文章出处://kinggoo.com
原文地址:https://kinggoo.com/app-apktoolpackage.htm
发表评论?

14 条评论。

  1. 好资料,我用的是 RHL-6.0_64 aapt 弄不起来,升级了 zlib 工具之后可以了。但是 zlib 依赖标准 c 库,这里浪费了我一点时间。

    • 搞定了吧 工作太忙好久没看博客里的留言了 真抱歉。 64位是会遇到很多问题 记得把lib里面的so都要替换 做好下一个为zlib在系统里这样出问题直接卸载还方便

  2. android支持直接运行py么?

发表评论


此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据