1.pm介绍
1.pm的定义
pm 为“包管理(package manager)”的简称。
2.pm的作用
pm的作用 | 作用点 |
---|---|
- 执行应用安装 |
|
- 查询—应用包的信息 |
|
- 查询—系统权限 |
|
- 控制应用 |
2.pm命令应用
- 【查询】包名
- 【查询】授权、撤销授权
- 授权、撤销授权
- 其他信息
- 安装与卸载
-
1.【查询】包名【pm list packages】
格式 adb shell pm list packages [options] [Filter]
说明 **(用于) 打印所有已安装应用的包名。- 若设置“文件过滤规则(即 options+filter)”—> 只显示包含过滤文字的内容。
| 参数(options) | 描述 | 命令 |
| :—-: | :—-: | :—-: |
| 不带参数 | 打印显示设备中所有安装应用的包名 |
- adb shell pm list packages # 显示设备中所有安装的应用的包名
- adb shell pm list packages phone # 显示设备中”phone”安装的应用的包名
| | -f | 显示每个包的文件位置 |
- adb shell pm list packages -f # 显示“每个包”的文件位置
- adb shell pm list packages -f ** _phone _ # 显示“phone”的文件位置
| | -d | 显示【禁用】APP的包名 |
- adb shell pm list packages -d # 显示所有“禁用app”的包名
- adb shell pm list packages -d ** nfc # 显示“禁用app—nfc”的包名
| | -e | 显示【可用】APP的包名 |
- adb shell pm list packages -e # 显示所有“可用app”的包名
- adb shell pm list packages -e ** _xueqiu_# 显示“可用app—xueqiu”的包名
| | -s | 显示【系统】APP的包名 |
- adb shell pm list packages -e # 显示所有“可用app”的包名
- adb shell pm list packages -e ** xueqiu# 显示“可用app—xueqiu”的包名
| | -3 | 显示【第3方】APP的包名 |
- adb shell pm list packages -3 # 显示所有“第三方app”的包名
- adb shell pm list packages -e ** _xueqiu_# 显示“第三方app—xueqiu”的包名
| | -i | 查看应用的安装者 |
- adb shell pm list packages -i # 显示所有应用的安装者
- adb shell pm list packages -3 -i ** xueqiu# 显示“第三方app—xueqiu”的安装者
|
- 若设置“文件过滤规则(即 options+filter)”—> 只显示包含过滤文字的内容。
| 参数(options) | 描述 | 命令 |
| :—-: | :—-: | :—-: |
| 不带参数 | 打印显示设备中所有安装应用的包名 |
扩展 等价关系
# 命令1 ===(等价于) 命令2
#命令1
adb shell pm list packages | findstr xueqiu # 查询“雪球”的包名
#命令2
adb shell pm list packages xueqiu # 查询“雪球”的包名
2.【查询】权限信息【pm list permissions/permission-group】
说明 **(用于) **打印“权限/权限组”。
分类 | 格式(简要) |
---|---|
权限 | adb shell pm list permissons[options] [group] ** # 打印权限** |
权限组 | adb shell pm list** permisson-groups **# 打印所有已知的权限组 |
1. pm list permissons 权限
格式 adb shell pm list permissons[options] [group] ** # 打印权限**
参数(options) | 描述 | 命令 |
---|---|---|
-g | 按组显示 | - adb shell pm list permission -g # 按组显示权限信息 |
-f | 显示所有的权限信息 | - adb shell pm list permission -f # 显示所有的权限信息 |
-s | 简短的摘要 | - adb shell pm list permission -s # 简短的摘要 |
-d | 只显示“危险权限” | - adb shell pm list permission -d # 显示“危险的权限” - adb shell pm list permission -g -d # 【按组】显示“危险的权限” |
-u | - 显示只有权限的用户的权限信息 - 用户自定义权限 |
- adb shell pm list permission -u # 用户自定义权限 |
2. pm list permisson-groups 权限组
格式 adb shell pm list permisson-groups **# 打印所有已知的权限组**
3.授权、撤销授权【pm grant/revoke】
说明 **(用于) 对指定APP进行—> 授权、撤销授权**
分类 | 格式(简要) |
---|---|
授权 | adb shell pm grant **包名 权限名** |
取消授权 | adb shell pm revoke ** 包名 **权限名 |
【附件说明】查看APP的权限信息 | adb shell dumpsys pacakage ** **包名 |
1.grant 授权
格式
- 【授权】adb shell pm grant 包名(com.xueqiu.android)权限名(**android.permission.READ_CALENDAR**)
- 【step1】查看APP的权限—> adb shell dumpsys pacakage com.xueqiu.android > f:/xueqiu.txt
- 【step2】对“**android.permission.READ_CALENDAR**”进行grant授权
adb shell pm grant com.xueqiu.android android.permission.READ_CALENDAR # 授权操作
- 【step3】查看授权是否成功【# adb shell dumpsys pacakage com.xueqiu.android > f:/xueqiu_grant.txt 】<br />
2.revoke 取消授权
格式
- 【授权】adb shell pm revoke 包名(com.xueqiu.android)权限名(**android.permission.READ_CALENDAR**)
- 【step1】查看APP的权限—> adb shell dumpsys pacakage com.xueqiu.android > f:/xueqiu2.txt
- 【step2】对“**android.permission.READ_CALENDAR**”进行revoke撤销授权
adb shell pm revoke com.xueqiu.android android.permission.READ_CALENDAR # 撤销授权操作
- 【step3】查看授权是否成功【# adb shell dumpsys pacakage com.xueqiu.android > f:/xueqiu_revoke.txt 】<br />
4.【查询】其他信息
1.测试包与APK路径查询
分类 | 说明 | 格式(简要) |
---|---|---|
instrumentation | 列出测试包(建议真机验证) | - adb shell pm list instrumentation # 列出所有的instrumentation测试包 - 子参数 adb shell pm list instrumentation -f # 列出apk的位置 - 子参数 adb shell pm list instrumentation 包名 # 列出某个apk的测试包 |
path | 查看apk的路径 | adb shell pm path** **包名 # 打印指定APP的apk路径 |
- pm list instrumentation
- pm path** **
2.【查询】系统功能与支持库
分类 | 说明 | 格式(简要) |
---|---|---|
features | - 打印系统所有功能 - 列出所有硬件相关信息 |
adb shell pm list features |
libraries | - 打印当前设备所支持的库 |
adb shell pm list libraries |
3.【查询】包的系统状态信息
5.安装与卸载
1.安装
格式 pm install 参数 **全路径/xxx.apk **
参数 | 描述 | 命令 | adb install 对照 |
---|---|---|---|
-l | 【锁定】APP | - pm install -l 全路径/xxx.apk |
-l : 标识为受限(limit)应用 |
-r 常用 |
【重新替换】安装APP(保留应用数据) | - pm install -r 全路径/xxx.apk |
-r: 替换(replace)已存在的应用 |
-t | 测试包 | - pm install -t 全路径/xxx.apk |
-t: 安装测试包(test) |
-i | 指定安装包的包名 | - pm install -i com.xq.android 全路径/xueqiu.apk [ /data/local/tmp/com.xueqiu.android_12.36.1_313.apk] |
不支持 |
-s | 安装到SDcard | - pm install -s 全路径/xxx.apk |
-s: 安装到SD卡 |
-f | 安装到系统内置存储 | - pm install -f 全路径/xxx.apk |
不支持 |
-d | 允许降级安装 | - pm install -d 全路径/xxx.apk |
-d: 允许降级(demote)安装 |
-g 常用 |
授权“程序清单”中的所有权限 | - pm install -g 全路径/xxx.apk |
不支持 |
adb install 与 pm install 的区别 | |
---|---|
adb install | 相对路径apk |
pm install | 绝对(全)路径apk |
2.卸载
格式 pm uninstall 参数 **包名 **
参数 | 描述 | 命令 |
---|---|---|
不带 | 卸载APP及数据、缓存 | - pm uninstall **包名 ** |
-k | 卸载APP及保留数据、缓存 | - pm uninstall -k 包名 |
6.控制命令
- 清除应用数据
- 禁用与启用应用
- 隐藏与恢复应用
- 应用默认安装位置
1.清除应用数据
| 参数 | 描述 | 命令 | | :—-: | :—-: | :—-: | | clear 包名 | 清除应用的数据 |
- adb shell pm clear **包名 **
|
2.禁用与启用APP
说明 此命令需在root下才能生效
- 【(root)系统APP】—-> 只能【停用】+【强行停止】
- 【(root)第3方APP】—-> 只能【卸载】+【强行停止】
| 参数 | 描述 | 命令 |
| :—-: | :—-: | :—-: |
| enable 包名 | 【启用】APP |
- adb root
- adb shell pm enable **包名
| | disable 包名 | 【禁用】APP—->会在“桌面消失” |
- adb root
- adb shell pm disable **包名
|
3.隐藏与恢复应用
参数 | 描述 | 命令 |
---|---|---|
hide 包名 | 【隐藏】APP | - adb shell pm hide **包名 ** |
unhide 包名 | 【恢复】APP—->会在“桌面消失” | - adb shell pm unhide **包名 ** |
4.应用默认安装位置
参数 | 描述 | 命令 |
---|---|---|
set-install-location 安装位置(输入数字) | 更改默认的安装位置: (输入)数字项 0 :自动—让系统决定最好的位置 1:内部存储—安装在内部设备上 2:外部存储—安装在外部媒体 |
- adb shell pm set-install-location **数字** |
get-install-location | 返回当前的安装位置: (返回)数字项 0 :自动—让系统决定最好的位置 1:内部存储—安装在内部设备上 2:外部存储—安装在外部媒体 |
- adb shell pm get-install-location |