日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android pm 命令详解

發布時間:2023/11/30 Android 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android pm 命令详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、pm命令介紹與包名信息查詢

1.pm命令介紹

pm工具為包管理(package manager)的簡稱

可以使用pm工具來執行應用的安裝和查詢應用寶的信息、系統權限、控制應用

pm工具是Android開發與測試過程中必不可少的工具,shell命令格式如下:

pm <command>

2.包名信息查詢

shell模式下:

pm list packages [options] [FILTER]

打印所有的已經安裝的應用的包名,如果設置了文件過濾則值顯示包含過濾文字的內容

參數

描述

-f顯示每個包的文件位置
-d使用過濾器,只顯示禁用的應用的包名
-e使用過濾器,只顯示可用的應用的包名
-s使用過濾器,只顯示系統應用的包名
-3使用過濾器,只顯示第三方應用的包名
-i查看應用的安裝者

?

二、權限信息查詢

1.權限基礎

權限的組成:權限的名稱,屬于的權限組,保護級別

例如:

<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目錄下)才能賦予權限
自定義權限應用自行定義的權限

?

2.權限查詢

shell模式下:

pm list permission-groups

#打印所有已知的權限組

pm list permissions [options] [GROUP]

#打印權限

參數可以組合使用例如:pm list permissions –g -d

參數

說明

-g按組進行列出權限
-f打印所有信息
-s簡短的摘要
-d只有危險的權限列表
-u只有權限的用戶將看到列表
用戶自定義權限

?

3.授權與取消

注意:目標apk的minSdkVersion、targetSdkVersion也必需為23及以上

子命令

說明

grant <package_name> <permission>授予應用權限許可。必需android6.0(API級別23)以上的設備
revoke <package_name> <permission>撤銷應用權限。必需android6.0(API級別23)以上的設備

例如:

需要注意的是所謂的授權是指你的apk里面已有的權限進行授權,相當于啟用的概念

adb shell pm grant <packageName> android.permission.READ_CONTACTS #授權( 取消權限同理)

?

三、其他信息查詢

1.測試包與apk路徑查詢

pm

子命令

參數

說明

list instrymentation無參數列出所有的instrumentation測試包
-f列出apk文件位置
<target_package>列出某個app的測試包
path <package><package>打印指定包名的apk路徑

例如:

adb shell pm list instrumentation

adb shell pm list instrumentation TARGET_PACKAGE

adb shell pm path PACKAGE_NAME

2.系統功能與支持庫查詢

pm

子命令

說明

list feature打印系統的所有功能
列出所有硬件相關信息
list libraries打印當前設備所支持的所有庫

例如:

adb shell pm list feature

3.打印包的系統狀態信息

pm dump PACKAGE

打印給定的包的系統狀態

打印內容

說明

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打印電池狀態信息

例如:

adb shell pm dump PACKAGE_NAME

?

四、安裝與卸載

1.安裝

pm install [-lrtsfd] [-i PACKAGE] [PATH]

通過指定路徑安裝apk到手機中(與adb install不同的是adb install安裝的.apk是在你的電腦上,而pm install安裝的apk是存儲在你的手機中)

參數

說明

-l鎖定應用程序
-r重新安裝應用,且保留應用數據
-t允許測試apk被安裝
-i <INSTALLER_PACKAGE_NAME>指定安裝包的包名
-s安裝到sd卡
-f安裝到系統內置存儲中(默認安裝位置)
-d允許降級安裝(同一應用低級換高級)
-g授予應用程序清單中列出的所有權限(只有6.0系統可用)

首先將test.apk文件push到手機目錄中比如/data/local/tmp

adb shell pm install /data/local/tmp/test.apk?????????? #安裝

adb shell pm install –r /data/local/tmp/test.apk?????? #重新安裝

2.卸載

pm uninstall [options] <PACKAGE>

#卸載應用

參數

說明

-k卸載應用且保留數據與緩存(如果不加-k則全部刪除)

?

五、控制命令

1.清除應用數據

pm clear <PACKAGE_NAME>

?

2.禁用和啟用應用

pm

只有系統應用才可以用,第三方應用不行

子命令

說明

enable <PACKAGE_OR_COMPONENT>使package或component可用
disenable <PACKAGE_OR_COMPONENT>使package或component不可用(直接就找不到應用了)
disenable-user [options] <PACKAGE_OR_COMPONENT>使package或component不可用(會顯示已停用)

?

3.隱藏與恢復應用

pm

被隱藏應用在應用管理中變得不可見,桌面圖標也會消失

子命令

說明

hide PACKAGE_OR_COMPONENT隱藏package或component
unhide PACKAGE_OR_CONPONENT恢復可見package或component

?

4.控制應用的默認安裝位置

pm

需要root權限

子命令

說明

set-install-location <LOCATION>更改默認的安裝位置:
0:自動-讓系統決定最好的位置
1:內部存儲-安裝在內部設備上的存儲
2:外部存儲-安裝在外部媒體
注:只用于調試,不要瞎搞
get-install-localtion返回當前的安裝位置
0
1
2
對應上面的數字說明

轉載于:https://www.cnblogs.com/JianXu/p/5380882.html

總結

以上是生活随笔為你收集整理的Android pm 命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。