首页 编程 软件学院 查看内容

批量从apk文件中提取出so文件

2015-1-4 11:41 1467 0

摘要: 应用场景在不解压apk文件夹的情况下批量的从apk文件中提取出所有的so文件。这样你即不用使用apktool 这些工具令产生大量的中间文件,或者将apk的后缀变为.zip,然后在解压,节省了磁盘空间。...
关键词: nbsp path filename apk 文件 storePath os apkname so zipfile

应用场景在不解压apk文件夹的情况下批量的从apk文件中提取出所有的so文件。这样你即不用使用apktool 这些工具令产生大量的中间文件,或者将apk的后缀变为.zip,然后在解压,节省了磁盘空间。功能说明提取出一系列的apk文件然后提取出它们中的所有so文件,按照apk的名字以及它们之前所在的文件夹进行存储。如下图所示:代码实现[python] view plaincopy#!/usr/bin/env python  # coding=utf-8  import zipfile  import os    path = "/home/chicho/test/test/"    so_path="/home/chicho/test/test/so/"    apklist=os.listdir(path)    for APK in apklist:      if APK.endswith(".zip"):          portion = os.path.splitext(APK)          apkname = portion[0]          abs_so_path=os.path.join(so_path,apkname) #/so/apkname/          abs_zipAPK_path=os.path.join(path,APK)          z = zipfile.ZipFile(abs_zipAPK_path,'r')          solists=[]          for filename in z.namelist():              if filename.endswith(".so"):                  sofileName = os.path.basename(filename)                  soSource = os.path.basename(os.path.dirname(filename))                  '''''                 make a dir with the source(arm?mips)                 '''                  storePath=os.path.join(abs_so_path,soSource) # e.g. /.../so/apkname/mips/                  if not os.path.exists(storePath):                      os.makedirs(storePath)                    '''''                 copy the xxx.so file to the object path                 '''                  newsofile=os.path.join(storePath,sofileName)                  f = open(newsofile,'w')                  f.write(z.read(filename))  
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部