让Android Studio支持系统签名(证书)
有時(shí)候,我們開發(fā)的apk需要用到系統(tǒng)權(quán)限,需要在AndroidManifest.xml中添加共享系統(tǒng)進(jìn)程屬性:
?
android:sharedUserId="android.uid.system" android:sharedUserId="android.uid.shared" android:sharedUserId="android.media"這時(shí)候apk的簽名就需要是系統(tǒng)簽名(platform、shared或media)才能正常使用。
----------------------------------------------------------------------------------------------
常用系統(tǒng)簽名方式
1、Android源碼環(huán)境下簽名
這種方式比較麻煩,你需要有編譯過的源碼環(huán)境,并按如下步驟:
1、拷貝App源碼到Android源碼的packages/apps/目錄下,且App源碼是普通(Eclipse)格式的
2、配置Android.mk,在其中添加
LOCAL_CERTIFICATE := platform 或 shared 或 media
3、使用mm?-B?編譯App,生成的apk即系統(tǒng)簽名
-----------------------------------------------------------------------------------------------
2、手動(dòng)重新簽名
這種方式比在源碼環(huán)境下簽名簡單,App可以在Eclipse或Android Studio下編譯,然后給apk重新簽名即可。
但這種方式在頻繁調(diào)試的時(shí)候比較痛苦,即使寫成腳本,也需要重復(fù)一樣的操作。
2.1、相關(guān)文件
platform.x509.pem、platform.pk8、signapk.jar
文件位置
platform.x509.pem、platform.pk8:
../build/target/product/security
signapk.jar:
../out/host/linux-x86/framework
signapk源碼路徑:
../build/tools/signapk
2.2、簽名命令
java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk
步驟
1、將相關(guān)文件及源apk文件置于同一路徑下
2、檢查源apk包,去掉META-INF/CERT.SF?和?META-INF/CERT.RSA?文件
3、執(zhí)行簽名命令即可
-----------------------------------------------------------------------------------------------
3、Android Studio系統(tǒng)簽名
讓Android Studio集成系統(tǒng)簽名,需要用到一個(gè)工具keytool-importkeypair,詳見下文。
這個(gè)工具的作用是將系統(tǒng)簽名的相關(guān)信息導(dǎo)入到已有的簽名文件里。可從這里下載。
工具的使用方法可以通過--help或README.textile來尋求幫助。
相關(guān)文件
platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks、signature.sh
我的做法是在App根目錄新建Signature文件夾專門存放簽名相關(guān)文件。
步驟
1、生成demo.jks簽名文件
相關(guān)文件
platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks、signature.sh
我的做法是在App根目錄新建Signature文件夾專門存放簽名相關(guān)文件。
步驟
生成demo.jks簽名文件
在這里選擇簽名的文件
圖片上的密碼要和命令的密碼對(duì)應(yīng),別名Alias也要對(duì)應(yīng)起來,還有路徑,其他信息是次要的
這個(gè)步驟后,可以在對(duì)應(yīng)的位置生成一個(gè)demo.jks文件
2、編寫簽名腳本signature.sh,利用步驟1生成的文件生成新的文件
內(nèi)容如下:
注意!!一定要把這個(gè)文件放到linux環(huán)境下編譯,在windows下編譯目前我還沒測試成功,我相信坐簽名的同學(xué)一定有l(wèi)inux編譯環(huán)境
$ sudo chmod a+x signature.sh
執(zhí)行腳本:
$ ./signature.sh
注意!!這時(shí)候會(huì)生成新的demo.jks,把這個(gè)demo.jks替換掉原來的那個(gè)才可以。
?
3、配置builde.gradle
在android區(qū)域下(與defaultConfig同級(jí))添加配置:
注意 !!Android studio有兩個(gè)builde.gradle,要在有Android關(guān)鍵字的那個(gè)添加,別搞錯(cuò)了。
這樣debug或release apk就帶有系統(tǒng)簽名了。
如果想直接Run app就是release版且?guī)到y(tǒng)簽名的apk,還需修改:
修改buildTypes:
buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'signingConfig signingConfigs.release} }這樣直接Run app就是帶系統(tǒng)簽名的release版apk了。
如果對(duì)你有用,請(qǐng)關(guān)注微信公眾號(hào)【嵌入式Linux】
參考:Android Studio自動(dòng)生成帶系統(tǒng)簽名的apk
總結(jié)
以上是生活随笔為你收集整理的让Android Studio支持系统签名(证书)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 验证码--代码
- 下一篇: python 定时任务 web管理_py