讓Android Studio支援系統簽名(認證)

來源:互聯網
上載者:User

標籤:比較   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支援系統簽名(認證)(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.