自动获取APP的安装包

目录

 

前言:

流程:

python代码:


前言:

 一般来说app的安装包我们都是从网络下载的,但是手机系统自带的app一般是下载不到的,因此需要从手机里直接

拷贝出来,每次都要输一些adb指令太累了,因此写了个python脚本,自动把app安装包给拉出来。

流程:

先启动app,然后用 dumpsys 命令获取当前窗口的app的包名,然后用 pm 命令获取该包名的apk包的路径,最后用adb pull 出来即可。

python代码:

# -*- coding: UTF-8 -*-
import os
#自动 pull 安卓顶级窗口app的apk包

debug = True 		#输出运行过程 

#获取顶级窗口app的包名
cmd0 = """ adb shell " dumpsys activity top |grep ACT | awk -F / '{print $1}'|awk '{print $2}' " > packetName """

#获取包的apk路径
cmd1 = """ adb shell "pm path %s" > packetPath """

#拉出来
cmd2 = """ adb pull %s """

cmd3 = """ del packetName """

cmd4 = """ del packetPath """

os.system(cmd0)		#获取顶级窗口app的包名

try:
	f = open("packetName","r")
	pkname = f.read()[:-2]			#读取包名,除去最后的换行符
	if debug == True:
		print("Packate name : ")
		print(pkname)
	f.close()
	
	cmd1 = cmd1 % pkname			#格式化第二条指令,用来获取包的路径
	
	if debug == True:
		print("second cmd is : ")
		print(cmd1)
	
	os.system(cmd1)
	

	f = open("packetPath","r")
	pkpath=f.read()[:-2]			#获取 apk 的路径,注意,还需要除去开头的 package字符串
	pkpath= pkpath.split(":")[1]
	f.close()
	
	cmd2 = cmd2 % pkpath
	if debug == True :
		print("third cmd is : ")
		print(cmd2)
		
	os.system(cmd2)
	os.system(cmd3)
	os.system(cmd4)

	
except Exception as e :
	print(e)

 

你可能感兴趣的:(自动获取APP的安装包)