使用python编写脚本获取手机当前应用apk的信息


Posted in Python onJuly 21, 2014

前提是已设置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")
Python 相关文章推荐
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
pygame学习笔记(4):声音控制
Apr 15 Python
基python实现多线程网页爬虫
Sep 06 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
对Python3 * 和 ** 运算符详解
Feb 16 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
python time()的实例用法
Nov 03 Python
Python函数式编程中itertools模块详解
Sep 15 Python
使用python编写android截屏脚本双击运行即可
Jul 21 #Python
python 示例分享---逻辑推理编程解决八皇后
Jul 20 #Python
python中from module import * 的一个坑
Jul 20 #Python
用python代码做configure文件
Jul 20 #Python
python中的内置函数getattr()介绍及示例
Jul 20 #Python
Python实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 #Python
Python中使用 Selenium 实现网页截图实例
Jul 18 #Python
You might like
打造计数器DIY三步曲(下)
2006/10/09 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
探讨如何把session存入数据库
2013/06/07 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
Python文件及目录操作实例详解
2015/06/04 Python
bat和python批量重命名文件的实现代码
2016/05/19 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
python redis 删除key脚本的实例
2019/02/19 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
几个Shell Script面试题
2014/04/18 面试题
铁路安全事故反思
2014/04/26 职场文书
娱乐节目策划方案
2014/06/10 职场文书
廉政承诺书
2015/01/19 职场文书
物业保洁员岗位职责
2015/02/13 职场文书