最近做了一個Android項目,要求軟體能夠自動下載指定的APK檔案並自動安裝,無須使用者操作,即靜默安裝。在查閱了GOOGLE之後,綜合了各位方法之後,找到了一種相對簡化的方法,不過此方法只在4.0的Android版本下測試過,其它版本各位可以照此方法嘗試一下。 想要做到靜默安裝,其實就是要有許可權執行pm install命令。準備工作其實就兩步:1、擷取執行許可權2、執行命令 我們首先介紹第二步,如何執行pm install命令:關鍵代碼其實就一句:
Runtime.getRuntime().exec("pm install xxx.apk");
網上也有人提到利用BufferReader讀取控制台的輸出Success來判斷是否安裝成功,但我始終沒有抓到最後輸出的那一句Success,只好用Package install的receiver來處理安裝成功後的操作。 再回到如何擷取許可權的方法, 1、首先,我們要做的就是從Android的系統源碼的/build/target/product/security目錄中,找到兩個簽名檔案: platform.x509.pem和platform.pk8 2、在/build/tools/signapk目錄下找到signapk.jar檔案的源碼,編譯成signapk.jar檔案 3、然後在Android項目的manifest.xml檔案中,加上INSTALL_PACKAGES的許可權。 4、匯出apk檔案,這裡選擇簽名檔案匯出。右鍵項目->"Android Tools"->"Export Signed application Package..." 5、最後就是執行jar signapk.jar platform.x509.pem platform.pk8 簽名的apk 目標檔案.apk 由此產生的目標檔案apk就可以正常安裝在Android中,並可以靜默安裝任意指定的apk檔案了。
文中所需的三個檔案下載:
signapk.jar
platform.x509.pem
platform.pk8
通過 為知筆記 發布