一、Pm命令
命令格式:
pm <command>
命令列表:
命令 | 功能 | 實現方法 |
---|---|---|
list packages | 列舉app包信息 | PMS.getInstalledPackages |
install [options ] <PATH > |
安裝應用 | PMS.installPackageAsUser |
uninstall [options ]<package > |
卸載應用 | IPackageInstaller.uninstall |
enable <包名或組件名 > |
enable | PMS.setEnabledSetting |
disable <包名或組件名 > |
disable | PMS.setEnabledSetting |
hide <package > |
隱藏應用 | PMS.setApplicationHiddenSettingAsUser |
unhide <package > |
顯示應用 | PMS.setApplicationHiddenSettingAsUser |
get-install-location | 獲取安裝位置 | PMS.getInstallLocation |
set-install-location | 設置安裝位置 | PMS.setInstallLocation |
path <package > |
查看App路徑 | PMS.getPackageInfo |
clear <package > |
清空App數據 | AMS.clearApplicationUserData |
get-max-users | 最大用戶數 | UserManager.getMaxSupportedUsers |
force-dex-opt <package > |
dex優化 | PMS.forceDexOpt |
dump <package > |
dump信息 | AM.dumpPackageStateStatic |
trim-caches <目標size > |
緊縮cache目標大小 | PMS.freeStorageAndNotify |
pm命令實的實現方式在Pm.java,最後大多數都是調用PackageManagerService
相應的方法來完成的。disbale之後,在桌面和應用程序列表裏邊都看到不該app。
二、詳細參數
2.1 list packages
查看所有的package
list packages [options] <FILTER>
其中[options]參數:
- -f: 顯示包名所關聯的文件;
- -d: 只顯示disabled包名;
- -e: 只顯示enabled包名;
- -s: 只顯示系統包名;
- -3: 只顯示第3方應用的包名;
- -i: 包名所相應的installer;
- -u: 包含uninstalled包名.
規律: disabled + enabled = 總應用個數; 系統 + 第三方 = 總應用個數。
比如:查看第3方應用:
pm list packages -3
又比如,查看已經被禁用的包名。(國內的廠商一般把google的服務禁用了)
pm list packages -d
<FILTER
>參數:
當FILTER爲不爲空時,則只會輸出包名帶有FILTER字段的應用;當FILTER爲空時,則默認顯示所有滿足條件的應用。
比如,查看包名帶google字段的包名
pm list packages google
2.2 pm install
安裝應用
pm install [options] <PATH>
其中[options]參數:
- -r: 覆蓋安裝已存在Apk,並保持原有數據;
- -d: 運行安裝低版本Apk;
- -t: 運行安裝測試Apk
- -i : 指定Apk的安裝器;
- -s: 安裝apk到共享快存儲,比如sdcard;
- -f: 安裝apk到內部系統內存;
- -l: 安裝過程,持有轉發鎖
- -g: 准許Apk manifest中的所有權限;
<PATH
>參數:
該參數是必須的,是指需要安裝的apk所在的路徑。
2.3 其他參數
pm list users //查看當前手機用戶
pm list libraries //查看當前設備所支持的庫
pm list features //查看系統所有的features
pm list instrumentation //所有測試包的信息
pm list permission-groups //查看所有的權限組
pm list permissions [options] <group> 查看權限
-g: 以組形式組織;
-f: 打印所有信息;
-s: 簡要信息;
-d: 只列舉危險權限;
-u: 只列舉用戶可見的權限。