用apktool批量反編譯apk文件
來源:程序員人生 發布時間:2015-01-07 08:28:50 閱讀次數:4999次
寫在前面的話
這個是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~"
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈