pm???
pm工具为包管理(package manager)的简称
可以使用pm工具来执行应用的安装和查询应用宝的信息、系统权限、控制应用。
apk版本号
pm dump [apk包名,com.bestv.mishitong.ott] | grep version
versionCode才是判断版本高低的标志;
versionName是显示在界面上的版本号。
apk的系统状态信息
打印内容 | 说明 |
---|---|
DUMP OF SERVICE package | 打印服务信息 |
DUMP OF SERVICE activity | 打印activity信息 |
DUMP OF SERVICE meminfo | 打印当前内存使用信息 |
DUMP OF SERVICE procstats | 打印系统内存使用与一段时间内存汇总 |
DUMP OF SERVICE usagestats | 打印服务器使用状态信息 |
DUMP OF SERVICE batterystats | 打印电池状态信息 |
列如
# 打印服务信息
pm dump package
apk包名信息
pm list packages [options] [filter]
pm list packages | grep KKSdTr069_signed_test.apk
pm list packages -f | grep S
参数 | 描述 |
---|---|
-f | 显示每个包的文件位置 |
-d | 使用过滤器,只显示禁用的应用的包名 |
-e | 使用过滤器,只显示可用的应用的包名 |
-s | 使用过滤器,只显示系统应用的包名 |
-3 | 使用过滤器,只显示第三方应用的包名 |
-i | 查看应用的安装者 |
权限信息
权限基础
权限的组成:权限的名称,属于的权限组,保护级别,列如:
<permission android:description="string resource"
android:icon="drable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel=["normal"|"dangerous"|"signature"|"signatureOrSystem"]/>
protectionLevel | 说明 |
---|---|
normal | 表示权限是低风险的,不会对系统,用户或其他应用程序造成危害 |
dangerous | 表示权限是高风险的,系统将可能要球用户输入相关信息,才会授予此权限 |
signature | 表示只有当应用程序所用数字签名与声明引用权限的应用程序所用签名相同时,才能将权限授予给它 |
signatureOrSystem | 需要签名或者系统级应用(放置在/system/app目录下)才能赋予权限 |
system | 系统级应用(放置在/system/app目录下)才能赋予权限 |
自定义权限 | 应用自行定义的权限 |
权限查询
# 打印所有已知的权限组
pm list permission-groups
# 打印权限
pm list permissions [options] [group]
参数 | 说明 |
---|---|
-g | 按组进行列出权限 |
-f | 打印所有信息 |
-s | 简短的摘要 |
-d | 只有危险的权限列表 |
-u | 只有权限的用户将看到列表 用户自定义权限 |
授权和取消
子命令 | 说明 |
---|---|
grant <package_name> | 授予应用权限许可。必需android6.0(API级别23)以上的设备 |
revoke <package_name> | 撤销应用权限。必需android6.0(API级别23)以上的设备 |
需要注意的是所谓的授权是指你的apk里面已有的权限进行授权,相当于启用的概念,列如:
pm grant KKStr069.apk android.permission.READ_CONTACTS
安装
pm install [options] [apk] [path]
# 重复安装Bluetooth.apk到data/app目录下
pm install -r /system/app/Bluetooth.apk /data/app/
参数 | 说明 |
---|---|
-l | 锁定应用程序 |
-r | 重新安装应用,且保留应用数据 |
-t | 允许测试apk被安装 |
-i <INSTALLER_PACKAGE_NAME> | 指定安装包的包名 |
-s | 安装到sd卡 |
-f | 安装到系统内置存储中(默认安装位置) |
-d | 允许降级安装(同一应用低级换高级) |
-g | 授予应用程序清单中列出的所有权限(只有6.0系统可用) |
卸载
pm uninstall [options] [apk]
参数 | 说明 |
---|---|
-k | 卸载应用且保留数据与缓存(如果不加-k则全部删除) |