Android下pm命令详解

摘要:
在看相关PackageManager代码时,无意中发现Android下提供一个pm命令,通常放在/system/bin/下。pmlistpackage-f也显示associated文件所在目录1.2:察看已知的权限组:pmlistpermission-groups1.3:察看所有已知的权限:pmlistpermissions1.4:列出所有硬件相关信息:pmlistfeatures结果通常类似:feature:reqGlEsVersion=0x20000feature:android.hardware.bluetoothfeature:android.hardware.camerafeature:android.hardware.locationfeature:android.hardware.location.networkfeature:android.hardware.microphonefeature:android.hardware.sensor.accelerometerfeature:android.hardware.sensor.compassfeature:android.hardware.touchscreenfeature:android.hardware.wifi1.5:列出指定包名的associated文件所在:例如:pmpathcom.TDiJoy.fanepackage:/mnt/asec/com.TDiJoy.fane-1/pkg.apk1.6:安装APK:pminstall[-l][-r][-t][-iINSTALLER_PACKAGE_NAME][-s][-f]PATHPATH指APK文件绝对路径和文件名。例如:pminstall/data/3dijoy_fane.apk这几个参数很有用:-r:安装一个已经安装的APK,保持其数据不变。

在看相关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.6:卸载APK:
pm uninstall 包名。
例如:
pm uninstall com.TDiJoy.fane

1.7: 得到和设置缺省安装位置
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盘中:
首先尝试使用:
pm setInstallLocation 2
之后安装之,没有用。

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

就可以成功。

免责声明:文章转载自《Android下pm命令详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇深度分析WM_PAINT和WM_ERASEBKGND消息证书创建工具 (Makecert.exe)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

SVN查看项目修改记录及修改内容

工具/原材料svn I,查看修改记录1,选择要查看的文件夹,打开后在空白处单击鼠标右键。3当然,有时我们想查看单个文件的记录。同样的原则适用于此文件。右键单击以选择“查看日志”。SVN查看所有日志提交记录1。默认情况下,SVN显示上周的文件提交和修改记录。如何查看更长时间的日志记录?...

实用干货丨如何使用Prometheus配置自定义告警规则

前言普罗米修斯是一个用于监控和报警的开源系统。在普罗米修斯的术语中,它所监视的事物被称为目标。在本文中,我们将逐步展示如何安装Prometheus来监控/创建报警,并根据自定义事件配置自定义报警规则。当条件满足时,它将发出警报集成Alertmanager来处理客户端应用程序发送的警报。警报管理器将与发送警报通知的电子邮件帐户集成。了解普罗米修斯操作员根据普罗...

Jenkins安装

1、 Jenkins简介1.开源自动化持续集成和部署平台CI、持续集成CD和持续部署2.Jenkins Free风格任务管道Maven项目多配置项目多分支管道任务支持的任务类型,不会执行任何更新;触发器(由Gitlab...

硬中断与软中断的区别!

在多核系统上,一个中断通常只能中断一个CPU(也有一种特殊情况,即主机上有一个硬件通道。它可以在没有主CPU支持的情况下同时处理多个中断。软中断:1。软中断与硬中断非常相似。生成软中断的进程必须是当前正在运行的进程,因此它们不会中断CPU。...

js获取移动端设备信息(IMEM,IMIS,手机型号,系统版本,浏览器信息等)

方法1:HTML+打包方法、附加配置和使用指定方法打包是可用属性:imei:device的国际移动设备ID imsi:device的国际移动用户ID型号:device的型号供应商:device制造商uuid:device唯一标识参考地址:http://www.html5plus.org/doc/zh_cn/device.html方法2:引用插件mobile-...

Navicat数据存放位置和备份数据库路径设置

navicat数据库存储在哪里?有了这样的问题,让我们来解决这个问题。默认情况下安装Navicat,默认情况下也安装MySQL,数据库存储在默认用户的目录中。选择安装目录时,还可以选择数据的位置。很多人此时只是设置了MySQL的安装位置。...