使用python编写脚本获取手机当前应用apk的信息
作者:whsnow 发布时间:2022-08-01 22:54:15
标签:python,应用信息
前提是已设置ANDROID_HOME环境变量,使用aapt工具获取apk的信息,保存至脚本所在目录下的PackageInfo.txt文件中:
import os
import tempfile
import re
tempFile = tempfile.gettempdir()
def get_aapt():
if "ANDROID_HOME" in os.environ:
rootDir = os.path.join(os.environ["ANDROID_HOME"], "build-tools")
for path, subdir, files in os.walk(rootDir):
if "aapt.exe" in files:
return os.path.join(path, "aapt.exe")
else:
return "ANDROID_HOME not exist"
def get_current_package_name():
pattern = re.compile(r"[a-zA-Z0-9\.]+/.[a-zA-Z0-9\.]+")
os.popen("adb wait-for-device")
out = os.popen("adb shell dumpsys input | findstr FocusedApplication").read()
package_name = pattern.findall(out)[0].split("/")[0]
return package_name
def get_match_apk(package_name):
list = []
for packages in os.popen("adb shell pm list packages -f " + package_name).readlines():
list.append(packages.split(":")[-1].split("=")[0])
apk_name = list[0].split("/")[-1]
os.popen("adb pull " + list[0] + " " + tempFile)
return tempFile + "\\" + apk_name
if __name__ == "__main__":
os.popen(get_aapt() + \
" dump badging " + \
get_match_apk(get_current_package_name()) + \
" > PackageInfo.txt")
os.popen("del " + tempFile + "\\*.apk")


猜你喜欢
- 安装SQL Server2019详细教程1、官网下载SQL Server 2019 Developer: Developer下载地址&nbs
- 1echarts的基本步骤四步1 找dom容器2 初始化Init3 配置options4 setOptions几乎124的步骤是一样的,op
- Python安装selenium包打开命令行窗口,进入python交互环境python尝试导入selenium包,报错,说明尚未安装sele
- 其实最近看了不少Golang接口以及方法的阐述都有一个地方没说得特别明白。就是在Golang编译隐式转换传递给方法使用的时候,和调用函数时的
- 基本对比使用方式使用场合优缺点是否需要安装需要的dll网址引用方式程序内引用程序初期确定使用MySql,前期添加引用大多数情况下使用在类文件
- 复数是由一个实数和一个虚数组合构成,表示为:x+yj一个复数时一对有序浮点数(x,y),其中x是实数部分,y是虚数部分。Python语言中有
- 方法一:<script language="JavaScript"> <!--
- 一、JDBC是什么?JDBC 指 Java 数据库连接(Java Database Connectivity),是一种标准Java应用编程接
- 本文实例讲述了JS添加或删除HTML dom元素的方法。分享给大家供大家参考,具体如下:创建新的 HTML 元素如需向 HTML DOM 添
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- 设计首页的第一步是设计版面布局。就象传统的报刊杂志编辑一样,我们将网页看作一张报纸,一本杂志来进行排版布局。虽然 * 页技术的发展使得我们开
- 一、获取安装包:Pycharm 官网 下载页面 :点击打开Anconda 官网 下载页面 :点击打开选择对应的系统和需要的版本进行下载,py
- 组件实现的基本功能1,根据后端返回的数据格式,传入组件动态的渲染出当前角色有哪些权限(新建,修改)2,适配有2级和只有一级多选的数据3,有全
- 前言本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
- 微信小程序 ES6Promise.all批量上传文件实现代码客户端Page({ onLoad: function() { &nb
- type()函数:使用type()函数可以判断对象的类型,如果一个变量指向了函数或类,也可以用type判断。如:class Student(
- 前言在日常工作中,常常需要周期性地执行某些任务,常用的方式是采用 Linux 系统自带的 crond 结合命令行实现,但最近却遇到了一个让人
- 本文实例讲述了Python3写入文件常用方法。分享给大家供大家参考。具体如下:''''' Creat
- Windows 7下IE9安全级别设置项如下表示。(留空代表同前一列的值,无变化)类别属性中中-高高.NET FrameworkXAML 浏
- MySQL连接查询相信大家都有所了解,连接查询是在数据库查询操作的时候经常用到的,下面就为您介绍MySQL连接查询mysql连接