1. 程式人生 > >Android常用程式碼之普通及系統許可權靜默安裝APK

Android常用程式碼之普通及系統許可權靜默安裝APK

本文主要介紹程式如何利用root許可權靜默安裝(解除安裝)APK,如何自動選擇普通安裝(解除安裝)還是靜默安裝(解除安裝)

1、root許可權靜默安裝(解除安裝)呼叫

該函式返回PackageUtils.INSTALL_SUCCEEDED表示安裝成功,失敗則返回相應錯誤碼,可以得到失敗的詳細原因,包括檔案不存在,apk無效,系統記憶體不足,簽名不正確,缺少公共庫,share user錯誤等等判斷。

 2、root許可權靜默安裝實現

PackageUtils.installSlient的實現實際使用的是su pm install -r filePath命令。核心程式碼如下:

PackageUtils.installSlient的實現程式碼

其中commands為pm install -r . 從中可以看出主要就是使用su切換到root環境下,再呼叫pm install -r進行安裝。

3、普通安裝,系統許可權靜默安裝,root許可權靜默安裝的自動選擇

檢視PackageUtils原始碼會發現我還提供了其他幾個安裝函式,其中PackageUtils.install(PackageUtils.uninstall)函式會根據是否是系統應用以及是否擁有root許可權,從而確定呼叫哪種安裝方式(普通安裝方式、root靜默安裝方式還是系統許可權靜默安裝),原始碼如下:

Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /** * install according conditions * <ul> * <li>if system application or rooted, see {@link #installSilent(Context, String)}</li> * <li>else see {@link #installNormal(Context, String)}</li>
* </ul> * * @param context * @param filePath * @return */ publicstaticfinalintinstall(Context context,StringfilePath){ if(!PackageUtils.isSystemApplication(context)&&!ShellUtils.checkRootPermission()){ returninstallNormal(context,filePath)?INSTALL_SUCCEEDED:INSTALL_FAILED_INVALID_URI; } returninstallSilent(context,filePath); }

如果是系統應用記得新增<uses-permission android:name=”android.permission.INSTALL_PACKAGES” />許可權,從而走普通安裝方式,不用申請root許可權進行靜默安裝。

相關推薦

Android常用程式碼普通系統許可權靜默安裝APK

本文主要介紹程式如何利用root許可權靜默安裝(解除安裝)APK,如何自動選擇普通安裝(解除安裝)還是靜默安裝(解除安裝)。 1、root許可權靜默安裝(解除安裝)呼叫 該函式返回PackageUtils.INSTALL_SUCCEEDED表示安裝成功,失敗則返回相應錯誤碼,可以得到失敗的詳細原

Android 常用動畫RotateAnimation

找到 draw 狀態 set 運行 代碼 pla instance from 前兩天接到任務做一個UI,有用到動畫,於是抽空看了下Android動畫相關知識。 Android Animation共有四大類型,分別是 Alpha 透明度動畫 Scale 大

Android常用ViewGroupRelativeLayout

文章目錄 簡介 重要屬性 示例 注意 簡介 相對佈局可以讓子控制元件相對於兄弟控制元件或父控制元件進行佈局,可以設定子控制元件相對於兄弟控制元件或父控制元件進行上下左右對齊。 RelativeLayout能替換一些巢狀檢視,當

Android常用ViewGroupLinearLayout

文章目錄 簡介 重要屬性 示例 拓展 簡介 線性佈局在開發中使用很多,可以用來做垂直方向或水平方向的view佈局。 重要屬性 - android:orientation 控制view佈局的方向,是必需屬性。取值ver

Android常用ViewGroupFrameLayout

簡介 幀佈局或叫層佈局,從螢幕左上角按照層次堆疊方式佈局,後面的控制元件覆蓋前面的控制元件,核心就是檢視的層疊。類似於圖層,這種檢視的疊加思路在開發中處處可見。 重要屬性 子View使用的屬性 - android:layout_gravity 調整子View

linux檔案目錄許可權的相關操作

1.檔案許可權控制 首先我們先搞清一個問題:許可權存在的意義?  在我們的印象中檔案是用來存放實際資料的,目錄是用來存放檔案的,但其實目錄的主要作用是用來記錄檔名列表,檔名與目錄有強烈的關聯。許可權就是使用者或者其他人對這些目錄以及檔案能進行些什麼操作。 檔案的檢視 當我們建立

Android常用的第三方框架下載地址

安卓常用框架   打造通用的popupwindow 名稱:BasePopup-master 網址:https://github.com/miaochuanhai/BasePopup 2、Android廣告圖片輪播控制元件,支援無限迴圈和多種主題,可以靈活設定輪

Android基礎--------Android常用控制元件介紹使用

Android常用控制元件介紹及使用 控制元件 TextView 顯示文字,相當於Panel ImageView 顯示圖片 EditText 輸入框,可編輯,可設定軟鍵盤方式 But

VC常用程式碼建立程序

作者:朱金燦           建立程序是程式設計開發的常用操作。Windows中的建立程序採用API函式CreateProcess實現。下面是一個使用例子:#include <Windows.

Android 7.0訪問檔案的許可權和FileProvider類

許可權更改 Android 7.0 做了一些許可權更改,這些更改可能會影響您的應用。Android7.1的可以看這篇文章: 《android 7.1懸浮窗系統許可權問題》 系統許可權更改 目錄許可權 為了提高私有檔案的安全

android常用元件TextView元件

1.文字框(TextView) 在Android中,文字框元件使用TextView表示,用於在螢幕上顯示文字。Android中的文字框可以顯示單行文字( android:singleLine="true")也可以是多行文字 (android:singleLine="fals

Android常用佈局LinearLayout(線性佈局)仿酷狗登入介面

酷狗的登入介面 仿寫的介面 佈局程式碼 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and

Android-UI開發AdapterAdapter控制元件

一.Adapter的概述 ArrayAdapter SimpleAdapter SimpleCursorAdapter BaseAdapter及自定義Adapter Adapter控制元件 1.Adapter介面卡 Adapter物件在Adapt

Android小專案學生管理系統(附原始碼)

專案部分截圖: 主要功能: 管理員:註冊,登入管理系統,查詢學生資訊,新增學生資訊,檢視成績排名,修改學生資訊,刪除學生資訊,強制下線 學生:登入,檢視個人詳細資訊,修改密碼 以上功能用資料庫實現 UI部分沒做太多的修飾,主要用了圓形頭像,自定義圓角butt

Android資料儲存SharedPreferences如何安全儲存

前言:     最近一直在學習Android的資料儲存,當學習到SharedPreferences的時候讓我回想起了ios的NSUserDefaults,其實這兩個真是異曲同工的,實現方式都是通過xml儲存的,在ios裡叫plist檔案,裡面都是xml。 什麼是SharedPreferences儲存?  

c/c++常用程式碼四爆炸輸出,jason(純乾貨)

常用程式碼之四:建立jason,jason轉換為字串,字串轉換回jason,c#反序列化jason字串的幾個程式碼片段 建立j

Android程式碼染色原理技術實踐

導讀 高德地圖開放平臺產品不斷迭代,程式碼邏輯越來越複雜,現有的測試流程不能保證完全覆蓋所有業務程式碼,測試不到的程式碼及分支,會存在一定的風險。為了保證測試全面覆蓋,需要引入程式碼覆蓋率做為測試指標,需要對SDK程式碼進行染色,測試結束後可生成程式碼覆蓋率報告,作為發版前的一項重要卡點指標。本文小結了

自動化運維-PXE實現系統批量自動安裝

自動化運維、pxe、http、tftp、dhcp本節索引需求分析PXE簡介整體方案服務選擇功能實現安裝調試錯誤分析總結1 需求分析隨著互聯網技術的不斷壯大,服務器數量也在不斷的增加,IT運維已經成為IT服務內涵中重要的組成部分。面對越來越復雜的業務,面對越來越多樣化的用戶需求,不斷擴展的IT應用需要越來越合理

android藍芽4.0BLE2.0 2.1 apk 串列埠助手帶16個自定義按鍵和自定義指令 字元接收 十六進位制或字元傳送

android藍芽4.0BLE apk 帶16個自定義按鍵和自定義指令 字元接收 https://pan.baidu.com/s/1eRSfprO android藍芽2.0 2.1 apk 帶16個自定義按鍵和自定義指令 字元接收  帶自動連線 https://pan.b

Android程式執行時許可權與檔案系統許可權,與普通許可權危險許可權的區別

面試時遇到這樣的題目   問題來的太突然,完全沒有準備,結果我想到了android 6.0之後推出的 normal permissions 和 dangerous permissions 並且把這兩者之間的關係答了一下,而且還舉了個例子,現在想想,真是丟人 關於普通