应用场景

在不解压apk文件夹的情况下批量的从apk文件中提取出所有的so文件。这样你即不用使用apktool 这些工具令产生大量的中间文件,或者将apk的后缀变为.zip,然后在解压,节省了磁盘空间。

功能说明

提取出一系列的apk文件然后提取出它们中的所有so文件,按照apk的名字以及它们之前所在的文件夹进行存储。如下图所示:

代码实现

#!/usr/bin/env python
# coding=utf-8
import zipfile
import ospath = "/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))

批量从apk文件中提取出so文件相关推荐

  1. 如何从 dump 文件中提取出 C# 源代码?

    一:背景 相信有很多朋友在遇到应用程序各种奇葩问题后,拿下来一个dump文件,辛辛苦苦分析了大半天,终于在某一个线程的调用栈上找到了一个可疑的方法,但 windbg 常常是以 汇编 的方式显示方法代码 ...

  2. 如何从dump文件中提取出C#源代码学习通http://www.bdgxy.com/

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 表格制作excel教程h ...

  3. 批量提取出apk文件中的classes.dex文件

    应用场景 如果需要批量分析apk以及每个apk文件中的classes.dex 文件.怎么提取出它们?将apk改后缀名变为.zip文件,之后在解压,提取出每个apk文件中的classes.dex文件,这 ...

  4. 在SCSS文件中导入常规CSS文件?

    本文翻译自:Import regular CSS file in SCSS file? Is there anyway to import a regular CSS file with Sass's ...

  5. 如何在另一个JavaScript文件中包含一个JavaScript文件?

    JavaScript中是否有类似于CSS中@import的内容,可让您在另一个JavaScript文件中包含一个JavaScript文件? #1楼 而不是在运行时添加,而是使用脚本在上传之前进行串联. ...

  6. java jar metainf_java – 从生成的jar文件中排除META-INF / maven文件夹

    我正在尝试创建一个jar文件,其中包含jar中提取的所有必需类.但对于像 log4j这样的少量依赖jar,它会在META-INF / maven / *中创建一些文件夹.我有一个限制,我将放置生成的j ...

  7. SQL导入文本错误:大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)。

    服务器: 消息 4832,级别 16,状态 1,行 1 大容量插入: 在数据文件中遇到意外的文件结尾 (EOF). 服务器: 消息 7399,级别 16,状态 1,行 1 OLE DB 提供程序 'S ...

  8. ffmpeg批量从视频中提取出mp3音频

    1.新建一个txt文件,并复制如下代码进入,然后保存. @echo off & titlecd /d %~dp0for %%a in (*.mp4) do (ffmpeg -i "% ...

  9. cubase怎么添加midi设备_Cubase 6教程:如何从音频中提取出MIDI

    Cubase中的黑科技! 相信每个制作人都非常热衷于把音频里的旋律导出成MIDI. 如果你是Cubase 6的使用者, 你可以很轻松地在Cubase 6里自带的功能中完成它. 第一步:选择你的原始音频 ...

最新文章

  1. 让自己的程序支持livewriter
  2. python开发安卓程序-python可以编写android程序吗?
  3. jmeter跨线程组传值
  4. android 下拉窗帘,Android 窗帘(Curtain)效果二之波浪式动态扭曲效果
  5. Go语言中字符串的查找方法小结
  6. oracle pl/sql 中目录的创建
  7. 4、Power Query-智能汇总工作簿下的指定或所有工作表数据
  8. 多看看飞鸽传书等系统级的源代码
  9. 链表+启发式合并(bzoj 1483: [HNOI2009]梦幻布丁)
  10. 简单的Spring配置文件
  11. lstm网络一般训练多少轮_Pytorch的LSTM的理解
  12. android wifi控制手机屏幕,如何将手机屏幕无线投射到电脑 电脑反向控制手机屏幕的详细教程...
  13. 简单几步:教你利用NAS设备存储云盒子企业网盘的所有数据
  14. Deep Layer Aggregation
  15. C# Word文档添加水印
  16. 邮储银行的规模有多大?凭什么可以成为第6大国有银行?
  17. 给word文档加水印
  18. AI医学影像千亿长坡,“医疗AI第一股”鹰瞳科技为何能滚起雪球?
  19. HNUSTOJ 部分源码
  20. 重入锁ReentrantLock详解

热门文章

  1. 面试官:说说你知道的几种负载均衡分类
  2. 阿里不让多表join?我偏要!
  3. 分布式为什么一定要有高可用的分布式锁?一线大厂必看!
  4. 阿里三面,P9面试官是如何360°无死角考察候选人的?
  5. SpringBoot 究竟是如何跑起来的?
  6. IDEA一定要改的八条配置
  7. 知识库建设的5个步骤
  8. Leangoo敏捷工具企业版-企业管理
  9. 站长新手入门:从0开始搭建微信小程序商城,不会代码也能开商城(附带源码)
  10. 使用Leangoo共享脑图/思维导图做多级需求管理