自动获取APP的安装包

通常手机系统自带app安装包难以从网络下载,需从手机拷贝。为避免手动输入adb指令的繁琐,使用Python脚本自动提取。流程为先启动app,用dumpsys命令获取包名,再用pm命令获取apk路径,最后用adb pull提取。

目录

 

前言:

流程:

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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值