ADB命令获取包信息命令小记

本文介绍如何使用ADB工具获取安卓设备上的应用信息,包括应用包名、活动组件、权限配置等,并演示如何通过AAPT工具解析APK包,进行反编译操作,以便于进行代码分析和功能测试。

前置条件: 通过usb或WiFi adb 连上手机  

  1.获取当前应用包名 

   i: 只知道大概的名称 ,应用已打开在当前或后台运行

   adb shell ps | findstr "my"

   

   ii: 通过adb logcat | findstr "START" 过滤日志, 打开需要被测的应用 可看到被测应用的启动包名和启动Activity

   

  iii: 获取当前打开窗口信息 其中包含包名

  

2. 解析包信息 并导入到本地

导出文件信息内容类似 AndroidManifest.xml  包含权限、activity、依赖 存储路径 等配置信息 可通过LAUNCHER 过滤启动的Activity名

   

3. 获取应用包的安装路径

  

  可通过adb pull [安装路径]  [本地路径]  拉取应用apk

  

  然后通过APK IDE等反编译工具 再进一步反编译apk包

4. 通过aapt 获取apk包信息 

  本地电脑上已有apk安装包的情况下 通过sdk 安装目录/build-tools/下可以找到aapt   打包管理工具

  例如 aapt dump badgging base.apk 可以获取 对应包的标签及所有图标等信息

  

 

使用adb命令获取APP信息的方法有以下几种: - **获取应用名**: - 可以使用`adb shell am monitor`命令,输入该命令后打开手机上需要获取名的应用,按`ctrl + C`退出该模式 [^1]。 - 在cmd进入命令行,输入`adb shell pm list package`,可列出所有的应用的名。若加上`-s`参数,可列出系统应用;加上`-3`参数,可列出第三方应用;加上`-f`参数,可列出应用名及对应的apk名及存放位置;加上`-i`参数,可列出应用名及其安装来源 [^2]。 - 通过Python脚本实现,代码如下: ```python import subprocess import re import os # 执行 adb 命令获取窗口信息 adb_command = 'adb shell dumpsys window' process = subprocess.Popen(adb_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, _ = process.communicate() # 使用正则表达式提取名 pattern = r'mCurrentFocus.*?u0\s+(\S+)/\S+' match = re.search(pattern, output.decode()) if match: package_name = match.group(1) print("APP名:", package_name) else: print("没有获取到APP名.") ``` 此方法使用前置条件为安装ADB环境并连接真机或者模拟器 [^3]。 - 使用`adbshelldumpsyswindow|grepmTopFullscreenOpaqueWindowState| sed's//\n/g'|tail -n1|sed's/\/.*$//g'`的方式获取 [^4]。 - **获取正在运行应用的activity**: - 方法一:打开需要获取的应用(不需要知道名),使用`adb shell dumpsys activity activities | findstr "cmp="`命令,第一个`cmp`后面的值即为activity [^1]。 - 方法二:直接输入名查询该应用的详细信息命令为`adb shell dumpsys package 名` [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值