介绍

pm命令提供了app包的管理,即packagemanager以命令行的方式提供给开发者使用。以下将介绍常用pm命令的基本使用。

常用命令

查看当前用户的ID(USER_ID)

$pm list users

x20l_fhd_portrait:/ $ pm list users

Users:

UserInfo{0:机主:13} running

当前用户信息,USER_ID是0,用户名是13

查看已经安装的包

$pm -l

x20l_fhd_portrait:/ $ pm -l

package:com.android.fmradio

package:com.mediatek.gba

package:com.mediatek.ims

package:com.smc.hccarddemo

package:cn.heils.hap

package:com.android.cts.priv.ctsshim

package:com.smc.bitmapclap

package:com.android.providers.telephony

package:com.maniu.cameraopengldemo

package:com.mediatek.fwk.plugin

package:com.sohu.inputmethod.sogou

package:com.android.wallpapercropper

package:com.mediatek.schpwronoff

package:com.android.egg

package:com.android.mms

package:com.android.mtp

package:com.android.stk

package:com.android.launcher3

列举设备上安装好的所有的app包

$pm -l | grep com.android.launcher3

x20l_fhd_portrait:/ $ pm -l | grep com.android.launcher3

package:com.android.launcher3

查询某一个包是否安装,如果没有安装则结果为空

查看第三方安装包

格式: pm list package -3

$ pm list package -3

列出第三方开发的app的包名

查看测试包

格式: pm list instrumentation

$ pm list instrumentation

x20l_fhd_portrait:/ $ pm list instrumentation

instrumentation:com.tencent.android.qqdownloader/com.live.watermelon.Instrumentation (target=com.tencent.android.qqdownloader)

查看安装包的路径

格式: pm path [--user USER_ID] PACKAGE

如查看launcher3的安装包路径

$pm path --user 0 com.android.launcher3

x20l_fhd_portrait:/ $ pm path --user 0 com.android.launcher3

package:/system/priv-app/Launcher3_m/Launcher3_m.apk

查看一下这个路径是否正确

x20l_fhd_portrait:/ $ ls -l /system/priv-app/Launcher3_m/Launcher3_m.apk

-rw-r--r-- 1 root root 8205210 2019-01-17 19:02 /system/priv-app/Launcher3_m/Launcher3_m.apk

查找结果完全正确

输出安装包信息

格式: pm dump PACKAGE

$pm dump com.android.launcher3

x20l_fhd_portrait:/ $ pm dump com.android.launcher3

DUMP OF SERVICE package:

Activity Resolver Table:

Full MIME Types:

image/*:

6c52abe com.android.launcher3/.WallpaperCropActivity filter 60468b1

Action: "android.service.wallpaper.CROP_AND_SET_WALLPAPER"

Category: "android.intent.category.DEFAULT"

Type: "image"

mPriority=0, mHasPartialTypes=true

AutoVerify=false

Wild MIME Types:

image:

6c52abe com.android.launcher3/.WallpaperCropActivity filter 60468b1

Action: "android.service.wallpaper.CROP_AND_SET_WALLPAPER"

Category: "android.intent.category.DEFAULT"

Type: "image"

mPriority=0, mHasPartialTypes=true

AutoVerify=false

Non-Data Actions:

android.intent.action.MAIN:

863513 com.android.launcher3/.Launcher filter 5331e35

Action: "android.intent.action.MAIN"

Category: "android.intent.category.HOME"

Category: "android.intent.category.DEFAULT"

Category: "android.intent.category.MONKEY"

AutoVerify=false

d029350 com.android.launcher3/.LauncherExtension filter bf632ca

Action: "android.intent.action.MAIN"

Category: "android.intent.category.HOME"

Category: "android.intent.category.DEFAULT"

Category: "android.intent.category.MONKEY"

AutoVerify=false

2db4949 com.android.launcher3/.ToggleWeightWatcher filter d895c3b

Action: "android.intent.action.MAIN"

Category: "android.intent.category.DEFAULT"

AutoVerify=false

f28a24e com.android.launcher3/.MemoryDumpActivity filter 1acb196

Action: "android.intent.action.MAIN"

Category: "android.intent.category.DEFAULT"

AutoVerify=false

android.intent.action.SET_WALLPAPER:

e77c03c com.android.launcher3/.LauncherWallpaperPickerActivity filter e386f58

Action: "android.intent.action.SET_WALLPAPER"

Category: "android.intent.category.DEFAULT"

AutoVerify=false

...

输出launcher3的安装信息,信息太多了,截取其中一段

包安装

格式: pm install [-lrtsfd] [-i PACKAGE] [--user USER_ID] [PATH]

参数说明:

[-lrtsfd]说明

参数

说明

-l

锁定应用

-r

强行安装(即便设备上已经存在该app,也重新安装并覆盖)

-t

安装测试包(一般是debug包)

-s

安装到sd卡(/mnt/sdcard,用户分区)中

-f

安装到内置卡(/data/data,data分区)中

-d

允许降级安装(同一应用低级换高级)

[-i PACKAGE]

表示指定包名

[--user USER_ID]

表示指定用户ID

[PATH]

apk的路径,如: /sdcard/release.apk

通常在开发过程中,如下使用:

强行安装apk包

$pm install -r /sdcard/release.apk

安装测试包

$pm install -t /sdcard/debug.apk

包卸载

格式: pm uninstall [-k] [--user USER_ID] PACKAGE

参数说明

参数

说明

-k

卸载应用且保留数据与缓存,如果不加 -k 则全部删除

--user

用户ID,android下目前只有一个用户,这个值默认为0

常用指令

$pm uninstall com.example.test

卸载普通应用包

#pm uninstall -k --user 0 com.android.launcher3

注意卸载系统包,需要root权限

清空应用缓存

格式: pm clear [--user USER_ID] PACKAGE

如: 清理launcher3的指令

$pm clear --user 0 com.android.launcher3

x20l_fhd_portrait:/ $ pm clear --user 0 com.android.launcher3

Success

隐藏和显示安装包

格式: pm hide [--user USER_ID] PACKAGE_OR_COMPONENT

以设置程序为例子,进行隐藏

$pm hide --user 0 com.android.settings

x20l_fhd_portrait:/ $ pm hide --user 0 com.android.settings

Error: java.lang.SecurityException: Neither user 2000 nor current process has android.permission.MANAGE_USERS.

报错了,这个指令需要root权限

格式: pm unhide [--user USER_ID] PACKAGE_OR_COMPONENT

以设置程序为例子,进行显示

$pm unhide --user 0 com.android.settings

x20l_fhd_portrait:/ $ pm unhide --user 0 com.android.settings

Error: java.lang.SecurityException: Neither user 2000 nor current process has android.permission.MANAGE_USERS.

同样需要root权限

授权和撤销权限

格式: pm grant [--user USER_ID] PACKAGE PERMISSION

$pm grant --user 0 com.android.launcher3 android.permission.WRITE_EXTERNAL_STORAGE

格式: pm revoke [--user USER_ID] PACKAGE PERMISSION

$pm revoke --user 0 com.android.launcher3 android.permission.WRITE_EXTERNAL_STORAGE

需要root权限

获取系统支持最大用户数

格式: pm get-max-users

$pm get-max-users

x20l_fhd_portrait:/ $ pm get-max-users

Maximum supported users: 4

android pm 列出权限,Android pm命令相关推荐

  1. android 动态录音权限,Android如何判断手机是否有录音权限的工具类

    作用 判断手机是否有录音权限的工具类,兼容6.0以上以及以下android系统 测试环境 这篇文章是评论中的网友提出质疑后,经过重写修改与重写测试后编写的,我的调试环境是小米note3,Android ...

  2. android悬浮动态权限,android应用内悬浮窗-自动贴边,不需要权限!

    简单基于注释的API来处理运行时6.0权限配置 热门度(没变化) 10.0/10 (没变化) ">10.0 活跃度(没变化) 0.8/10 (没变化) ">0.8 Wa ...

  3. android jar包 权限,Android系统启动执行jar程序

    看雪里有人问到android是不是只能执行apk程序? 除了原生程序和脚本外,android是可以启动执行封装java程序的jar包的. 实现流程如下: 第一步新建java程序 public clas ...

  4. android 代码打开权限,android开发权限询问的示例代码

    现在基于信息安全问题,特别是版本是23以上权限越严格. 特别是拍照,读,写权限 一般权限允许过,下次就不用询问了的,所以很多应用都喜欢在首页或者启动页直接询问,不允许的就用不了1.下面给出封装好的类, ...

  5. android apk获取权限,Android apk 获取系统权限的方式

    Android系统中,权限等级分为 ["normal" | "dangerous"| "signature" | "signatu ...

  6. android悬浮动态权限,Android 获取判断是否有悬浮窗权限的方法

    现在很多应用都会用到悬浮窗,很多国产rom把悬浮窗权限加入控制了,你就需要判断是否有悬浮窗权限,然后做对应操作. Android 原生有自带权限管理的,只是被隐藏了.看android源码在androi ...

  7. android 动态摄像头权限,Android判断用户是否允许了摄像头权限实例代码

    如题,既然是判断用户是否允许了摄像头权限,那么,咱们就忽略是Manifest配置的问题,因为这是开发者的事. 用户在使用APP时,如果首次进入用摄像头的地方,手机会提示是否允许该应用使用摄像头.有些用 ...

  8. android开发获取权限,Android开发程序代码获取root权限

    把apk放到/system/app文件夹下,作为系统项目,就可以保证项目有root的权http://限. root权限的app可以申请很多一般用户无法申请的权限. 可以查看哪些权限是需要root才能申 ...

  9. android 11 存储权限,Android下的数据存储与访问、权限

    弹出吐司 在onCreate中可以先获取控件对象 /data/data/程序的包名/          在这个目录下面进行文件的读写可能因为包名的改变而变得不可靠. this可以是Activity,也 ...

  10. android播放音乐权限,android开发播放音乐需要声明什么权限

    android开发播放音乐需要声明什么权限以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! android开发播放音乐需要 ...

最新文章

  1. Eclipse基本使用
  2. Radware发布2015-2016年全球应用及网络安全报告
  3. python字符串标签转化_如何在TensorFlow中将字符串标签转换为一个热向量?
  4. 删除(.svn)目录
  5. Oracle中row_number()、rank()、dense_rank() 的区别
  6. 安装kloxo。需要注意的事项
  7. adcetris研发历程_抗体类药物质量控制—张伯彦20130730.pdf
  8. 排序系列02--选择排序
  9. Java框架之SpringMVC 05-拦截器-异常映射-Spring工作流程
  10. 一、Docker之旅
  11. 简明python教程gitbook_简明Python教程 Byte of Python
  12. c语言程序心得体会感想,c语言编程学习心得体会3篇
  13. 怎么使用USB Redirector远程共享软件加密狗
  14. 延时delay1s程序 c语言,汇编语言软件延时1s的实现方法
  15. IDEA maven process terminated
  16. Gradient Descent
  17. (保姆级教程)免费将pdf转化为word文档,不限页数
  18. 华为AX3Pro路由器配置成交换机使用
  19. win10重装以后怎么恢复Linux引导,win10重装后如何修复deepin引导
  20. 游戏中常用音乐风格分析

热门文章

  1. 图像灰度共生矩阵cooc_feature_image.hdev
  2. Javascript笔记大全03
  3. hping3对某网站发起ddos攻击
  4. 几种最常见的网站盈利模式分析
  5. Passenger, Apache/Nginx, Rails之间的关系
  6. MT6628抓取CQI log的方法
  7. 宫崎骏电影-Music
  8. python win32con_Python笔记_第二篇_面向过程_第二部分_4.常用模块的简单使用_窗体控制模块(win32con、win32gui)...
  9. 梅兰商城案例代码编写(自己练习,纯手写,最后附有结果图以及精灵图)
  10. python爬取拉勾网_Python搭建代理池爬取拉勾网招聘信息