Android pm 命令詳解

來源:互聯網
上載者:User

標籤:

一、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
對應上面的數字說明

Android pm 命令詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.