標籤:比較 detail 通過 alias 配置 下載 ali for idm
轉自https://my.oschina.net/connorlin/blog/66807651557025摘要: 使用Android Studio自動打包系統簽名有時候,我們開發的apk需要用到系統許可權,需要在AndroidManifest.xml中添加共用系統進程屬性:android:sharedUserId="android.uid.system"android:sharedUserId="android.uid.shared"android:sharedUserId="android.media"這時候apk的簽名就需要是系統簽名(platform、shared或media)才能正常使用。常用系統簽名方式Android源碼環境下籤名這種方式比較麻煩,你需要有編譯過的源碼環境,並按如下步驟:1、拷貝App源碼到Android源碼的packages/apps/目錄下,且App源碼是普通(Eclipse)格式的 2、配置Android.mk,在其中添加LOCAL_CERTIFICATE := platform 或 shared 或 media3、使用mm編譯App,產生的apk即系統簽名手動重新簽名這種方式比在源碼環境下籤名簡單,App可以在Eclipse或Android Studio下編譯,然後給apk重新簽名即可。但這種方式在頻繁Debug的時候比較痛苦,即使寫成指令碼,也需要重複一樣的操作。相關檔案platform.x509.pem、platform.pk8、signapk.jar檔案位置platform.x509.pem、platform.pk8:../build/target/product/securitysignapk.jar:../out/host/linux-x86/frameworksignapk源碼路徑:../build/tools/signapk簽名命令java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk步驟1、將相關檔案及源apk檔案置於同一路徑下2、檢查源apk包,去掉META-INF/CERT.SF 和 META-INF/CERT.RSA 檔案3、執行簽名命令即可Android Studio系統簽名讓Android Studio整合系統簽名,需要用到一個工具keytool-importkeypair,詳見下文。keytool-importkeypairkeytool-importkeypair – A shell script to import key/certificate pairs into an existing Java keystore這個工具的作用是將系統簽名的相關資訊匯入到已有的簽名檔案裡。可從這裡下載。工具的使用方法可以通過--help或README.textile來尋求協助,或參考使用keytool工具 這篇文章。相關檔案platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks、signature.sh我的做法是在App根目錄建立Signature檔案夾專門存放簽名相關檔案。步驟1、產生demo.jks簽名檔案2、編寫簽名指令碼signature.sh,內容如下:#!/bin/sh# 轉換平台簽名命令./keytool-importkeypair -k demo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias demo# demo.jks : 簽名檔案# 123456 : 簽名檔案密碼# platform.pk8、platform.x509.pem : 系統簽名檔案# demo : 簽名檔案別名為指令檔添加可執行許可權:$ sudo chmod a+x signature.sh執行指令碼:$ ./signature.sh3、配置builde.gradle在android地區下(與defaultConfig同級)添加配置:signingConfigs { release { storeFile file("../signature/demo.jks") storePassword ‘123456‘ keyAlias ‘demo‘ keyPassword ‘123456‘ } debug { storeFile file("../signature/demo.jks") storePassword ‘123456‘ keyAlias ‘demo‘ keyPassword ‘123456‘ }}這樣debug或release apk就帶有系統簽名了。如果想直接Run app就是release版且帶系統簽名的apk,還需修改:變體app修改buildTypes: buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.txt‘ signingConfig signingConfigs.release } }這樣直接Run app就是帶系統簽名的release版apk了。
讓Android Studio支援系統簽名(認證)(轉)