用apktool批量反编译apk文件
来源:程序员人生 发布时间:2015-01-07 08:28:50 阅读次数:4811次
写在前面的话
这个是1个10分简单的脚本,非常简单。为何要写,由于我是来骗分数的。
利用场景
主机上有1堆APK文件,是依照种别分好的,现在用apktool 反编译它们,然后在依照种别和apk的名字来存储它们
如图所示
实现
要使用这个脚本,你需要安装1下apktool.注释已很详细了,希望可以有用。固然,这个用python实现的,你也能够写个shell脚本。
#!/usr/bin/env python
# coding=utf⑻
'''
@author : chicho
@date : 2015-01-01
@function : use apktool to decompile apk files
@rununing : python python decompileAPK.py
'''
import os
# apk 的存储路径
apkPath = "/home/chicho/test/apps/"
# 由于APK的存储是依照种别来划分的,所以获得到每个apk的存储种别
dirlist = os.listdir(apkPath)
# 用apktool 反编译apk 以后的存储路径
outputPath="/home/chicho/test/apktool_out/"
# 将apk 反编译以后还是将它们依照本来的种别存储
for i in range(len(dirlist)): # 得到apk 文件夹下的每个子的种别
filelist = apkPath + dirlist[i] # 获得每一个种别的路径
apklist = os.listdir(filelist) # 获得每一个路径下的apk 列表
category_output = outputPath + dirlist[i] # 输出的路径列表
if not os.path.exists(category_output): #如果输出的路径不存在那末就创建1个路径
os.makedirs(category_output)
for APK in apklist:
portion=os.path.splitext(APK) #将apk文件依照它们的文件名和后缀做1个分割
apkoutPath=os.path.join(category_output,portion[0]) #portion 中 存储的是apk的文件名
APK=os.path.join(apkPath+dirlist[i],APK)
#if not os.path.exists(apkoutPath):
# os.makedirs(apkoutPath)
cmd = "apktool d {0} {1}".format(APK, apkoutPath)# 反编译出来apk 以后依照文件名在存储
os.system(cmd)
print "all work done! Happy new year~"
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠