在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下。这个命令与Package有关,且非常实用。所以研究之。

0. Usage:

usage: pm [list|path|install|uninstall]
pm list packages [-f]
pm list permission-groups
pm list permissions [-g] [-f] [-d] [-u] [GROUP]
pm list instrumentation [-f] [TARGET-PACKAGE]
pm list features
pm path PACKAGE
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH
pm uninstall [-k] PACKAGE
pm enable PACKAGE_OR_COMPONENT
pm disable PACKAGE_OR_COMPONENT
pm setInstallLocation [0/auto] [1/internal] [2/external]

The list packages command prints all packages. Options:
-f: see their associated file.

The list permission-groups command prints all known
permission groups.

The list permissions command prints all known
permissions, optionally only those in GROUP. Options:
-g: organize by group.
-f: print all information.
-s: short summary.
-d: only list dangerous permissions.
-u: list only the permissions users will see.

The list instrumentation command prints all instrumentations,
or only those that target a specified package. Options:
-f: see their associated file.

The list features command prints all features of the system.

The path command prints the path to the .apk of a package.

The install command installs a package to the system. Options:
-l: install the package with FORWARD_LOCK.
-r: reinstall an exisiting app, keeping its data.
-t: allow test .apks to be installed.
-i: specify the installer package name.
-s: install package on sdcard.
-f: install package on internal flash.

The uninstall command removes a package from the system. Options:
-k: keep the data and cache directories around.
after the package removal.

The enable and disable commands change the enabled state of
a given package or component (written as “package/class”).

The getInstallLocation command gets the current install location
0 [auto]: Let system decide the best location
1 [internal]: Install on internal device storage
2 [external]: Install on external media

The setInstallLocation command changes the default install location
0 [auto]: Let system decide the best location
1 [internal]: Install on internal device storage
2 [external]: Install on external media

1. 具体使用方法:

1.1:察看已安装的包:
pm list package
此时则显示所有已经安装的包名。

pm list package -f
也显示associated文件所在目录(即保存的APK文件)

1.2:察看已知的权限组:
pm list permission-groups

1.3:察看所有已知的权限:
pm list permissions

1.4:列出所有硬件相关信息:
pm list features

结果通常类似:
feature:reqGlEsVersion=0x20000
feature:android.hardware.bluetooth
feature:android.hardware.camera
feature:android.hardware.location
feature:android.hardware.location.network
feature:android.hardware.microphone
feature:android.hardware.sensor.accelerometer
feature:android.hardware.sensor.compass
feature:android.hardware.touchscreen
feature:android.hardware.wifi

1.5:列出指定包名的 associated 文件 (APK存档文件) 所在:
例如:
pm path com.TDiJoy.fane
package:/mnt/asec/com.TDiJoy.fane-1/pkg.apk

1.6: 安装APK:
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH

PATH 指 APK文件绝对路径和文件名。

例如:
pm install /data/3dijoy_fane.apk

这几个参数很有用:
-r: 安装一个已经安装的APK,保持其数据不变。
-i:指定安装的包名。(没试出来)
-s: 安装到SDCard上。
-f: 安装到内部Flash上。

1.7:卸载APK:
pm uninstall 包名。
例如:
pm uninstall com.TDiJoy.fane

1.8: 得到和设置缺省安装位置:
The getInstallLocation command gets the current install location
0 [auto]: Let system decide the best location
1 [internal]: Install on internal device storage
2 [external]: Install on external media

The setInstallLocation command changes the default install location
0 [auto]: Let system decide the best location
1 [internal]: Install on internal device storage
2 [external]: Install on external media

pm getInstallLocation
得到缺省的安装位置。

设置:
pm setInstallLocation <0|1|2>

0: 自动。
1:内部Flash。
2:扩展存储设备。

实例:如何在海信2.2 STB上将APK安装到U盘中:
Sam首先尝试使用:
pm setInstallLocation 2
之后安装之,没有用。

后来做如下尝试:
*在其它设置->存储设备->制定默认存储设备中选择U盘为默认存储设备。
# pm install -s xxxx.apk*

就可以成功。

Android pm命令详解相关推荐

  1. Android pm 命令详解

    一.pm命令介绍与包名信息查询 1.pm命令介绍 pm工具为包管理(package manager)的简称 可以使用pm工具来执行应用的安装和查询应用宝的信息.系统权限.控制应用 pm工具是Andro ...

  2. android route命令详解,route cmd命令详解

    在本地 IP 路由表中显示和修改条目.使用不带参数的 route 可以显示帮助.接下来是小编为大家收集的route cmd命令详解,希望能帮到大家. route cmd命令详解 语法 route [- ...

  3. android+tracert命令详解,tracert 命令详解(示例代码)

    tracert 命令详解 How to Use the TRACERT Utility The TRACERT diagnostic utility determines the route to a ...

  4. android 命令使用详解,Android下pm 命令详解

    作者:Sam (甄峰) sam_code@hotmail.com Sam在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下.这 ...

  5. Android下pm命令详解

    在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下.这个命令与Package有关,且非常实用.所以研究之. 0. Usage: ...

  6. Android am与pm命令详解

    前言:am全称为Activity Manager,活动管理器,可以用来控制activity.service; pm全称Package Manager 包管理器,用以管理系统中安装的应用. adb sh ...

  7. android logcat 命令详解

    转载自:http://www.cnblogs.com/flyingcode/p/5280501.html Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区 ...

  8. 每天一个adb命令:pm 命令详解

    介绍adb shell中一个很重要的命令--pm(Package Manager),这个命令主要用于获取和安装在 Android 设备上的应用信息. 关于pm命令的用法解析.命令行下输入adb she ...

  9. Android logcat命令详解

    一.logcat命令介绍 1.android log系统 2.logcat介绍 logcat是android中的一个命令行工具,可以用于得到程序的log信息 log类是一个日志类,可以在代码中使用lo ...

最新文章

  1. 浅析关键词与搜索引擎之间不得不说的关系
  2. uva live 7637 Balanced String (贪心)
  3. 构建Android的交叉编译器、用NDK编译移植
  4. css之px自动转rem—sublime 插件CSSREM
  5. makefile中的@ $ :
  6. docker --- 梳理 Dockerfile docker-compose.yml
  7. SQLServer 优化SQL语句 in 和not in的替代方案
  8. js Date对象总结
  9. windows下批量换程序——运维常用
  10. zabbix常见配置集合
  11. 概率与计算机论文,数学概率统计论文范文
  12. 以拯救之因 强制恢复导致ORA-600 4000错误案例
  13. C#给Winform的button等控件添加快捷键三种方法
  14. Linux平台vsftp创建帐号
  15. Delphi动态事件深入分析
  16. 解决IDEA中maven搭建web项目,在maven中有依赖但是在部署包中生成不出依赖
  17. Vue3新特性——Composition API详解
  18. 苹果将于18日举行新品发布会
  19. Error while building/deploying project QTtest (kit: Desktop Qt 5.9.0 MinGW 32bit)When executing~
  20. c程序设计与算法语言,C语言:程序设计与算法

热门文章

  1. Python Crypto.Cipher加密包
  2. C# %253A%252F%252F 咋编码
  3. 微服务ServiceMesh及三种服务发现机制
  4. python操作键盘输入中文_python模拟鼠标点击和键盘输入的操作
  5. python字符串输出和输入
  6. Eclipse如何安装lombok插件
  7. MySQL数据库修改名称的三种方法
  8. 微信小程序苹果iOS长按图片无法转发、发送给朋友、保存,它们无效的解决办法
  9. 像微信一样简单的智能健身房
  10. IDEA快速移动光标到行首或行尾;