import os
def run_cmd_Popen_fileno(cmd_string):
"""
执行cmd命令,并得到执行后的返回值,python调试界面输出返回值
:param cmd_string: cmd命令,如:'adb devices'
:return:
"""
import subprocess
print('运行cmd指令:{}'.format(cmd_string))
return subprocess.Popen(cmd_string, shell=True, stdout=None, stderr=None).wait()
def get_file_list(file_path):
file_list = os.listdir(file_path) # 得到文件夹下的所有文件名称,存在字符串列表中
file_list.sort()
if file_path[-1]=='/'or file_path[-1]=='\\':
pass
else:
file_path+='/'
fpath=[]
for i in file_list :
fpath.append(file_path+i)
return (fpath,file_list) # 得到文件夹下的所有文件路径和文件名称
_,dexs=get_file_list('./dexs')
for i in dexs:
dex_file=i
jar_file=dex_file.split('.')[0]+'.jar'
run_cmd_Popen_fileno(f'd2j-dex2jar ./dexs/{dex_file} -o ./jars/{jar_file}')
解压dex2jar,cd进入dex2jar文件夹下,要知道一条基础指令
d2j-dex2jar .classes.dex -o /classes.jar
##建议在文件夹中新建dexs文件夹用于存放class.dex
##新建jars文件夹用于存放class.jar
d2j-dex2jar ./dexs/classes.dex -o ./jars/classes.jar
新建dexs和jars文件夹,将apk解压的所有class.dex文件复制到./dexs中,执行最上面的python脚本,即可批量转化