使用Android Studio實現為系統級的app簽名
我們在做系統級的app開發時,往往會在AndroidManifest.xml檔案中新增:android:sharedUserId=”android.uid.system”以獲取系統級的許可權,如果你正在使用Android Studio進行開發,編譯生成的apk會因為簽名問題無法安裝。
此時有兩個解決方案,
1,是將編譯好的apk放入原始碼中vender目錄下,編寫相應的android.mk檔案,並在檔案中加入:
LOCAL_CERTIFICATE := platform
然後使用“mmm your_apk_file”編譯你的apk。
之後會在”out/target/product/youProduct/system/priv-app”下生成對應的帶簽名的apk檔案。
第二種,就是下邊將要介紹的,對於習慣使用ide的同學準備的。
一.準備
首先要準備keytool-importkeypair工具,和簽名所需的系統簽名檔案。
下載keytool-importkeypair
https://github.com/getfatday/keytool-importkeypair
簽名檔案
build/target/product/security/ platform.x509.pem、platform.pk8
二、使用Android studio 生成自己的jks檔案
開啟新建key的介面:
build->Generate Signed APK…
填寫jks路徑、密碼、別名等資訊,點選OK生成jks檔案
三、使用keytool-importkeypair工具為生成的jks檔案新增系統簽名。
首先配置keytool-importkeypair的環境變數,在user資料夾下新建bin目錄,將keytool-importkeypair複製到bin目錄下,然後將bin目錄新增到PATH變數中。
export PATH=$PATH:/home/username/bin;
將兩個系統簽名檔案platform.x509.pem、platform.pk8複製到jks檔案所在的目錄中,執行以下命令為簽名檔案新增系統簽名:
keytool-importkeypair -k [jks檔名] -p [jks的密碼] -pk8 platform.pk8 -cert platform.x509.pem -alias [jks的別名]
四、配置gradle檔案使用簽名檔案
配置build.gradle檔案(Module:app),在Android{}程式碼塊中新增如下程式碼:
signingConfigs { release { storeFile file("/home/mi/android_key/mykey_e8.jks") storePassword 'android' keyAlias 'platform' keyPassword 'android' } debug { storeFile file("/home/mi/android_key/mykey_e8.jks") storePassword 'android' keyAlias 'platform' keyPassword 'android' } }
五、編譯執行
點選run或者debug執行app,這樣裝在手機後就能夠正確運行了。
以上這篇使用Android Studio實現為系統級的app簽名就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。