pk8/x509.pem转换为keystore
背景
我們都知道AndroidManifest.xml配置如下屬性
android:sharedUserId="android.uid.system"復制代碼直接運行是跑不起來的,我們只有拿到了平臺的pk8/x509.pem文件通過如下簽名命令:
java -jar signapk.jar platform.x509.pem platform.pk8 old.apk [new].apk
才能獲得與android.uid.system相同的權限,才能調用系統api,這種情況會給開發帶來很大的困擾,代碼調試不方便,影響開發效率。
現在有一種方法將pk8/x509.pem導入到keystore,然后我們運行代碼的時候使用keystore進行簽名就可以獲得與android.uid.system相同的權限,不需要再次進行系統簽名
環境準備
以windows為例首先需要下載openssl ,根據自己的 實際情況選擇版本
下載后直接安裝,安裝完成環境變量Path只想到bin目錄,如下圖:
導入到keystore
第一步
cd到pk8以及x509.pem文件的目錄執行如下命令,把platform.pk8生成了.pem 文件:
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt
其中platform.pk8為pk8文件名, platform.priv.pem為.pem 文件文件名可以隨意修改,執行成功后,會在目錄下生成pem文件如下:
第二步
執行如下命令,生成pkcs12格式的密鑰文件,生成platform.pk12文件,最后的android是keystore的alias,這里默認為android_box, platform.pk12是pk12文件名,需要輸入兩次密碼,我們這里默認為android_box
openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name android_box
需要輸入兩次密碼,我們這里默認為android_box
會在目錄下生成pk12文件,如下圖:
第三步
執行如下命令生成keystore文件,keytool -importkeystore -destkeystore platform.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass android_box -alias android_boxplatform.keystore是生成的keystore文件,也可以是jks,-srcstorepass后面的android_box 是keystore的密碼,-alias 后面的android_box是keystore的alias,這個需要與第二步中的alias一致,否則報錯如下:
轉載于:https://juejin.im/post/5c90d4fd6fb9a070b33c4bb7
總結
以上是生活随笔為你收集整理的pk8/x509.pem转换为keystore的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机存储器的分类图片,存储器分类及各自
- 下一篇: “约见”面试官系列之常见面试题第三十七篇