zer*_*lus 25 android android-ndk
作为一个实验,我想使用我定制的Android平台的平台密钥来签署一个通过NDK构建的任意APK.这样做的过程是什么?
apr*_*ock 46
如果您有平台密钥/证书对(.pk8 + x509.pem).哪个可以在pulbic sdk的build/target/product/security下找到.
您可以从命令行使用SignApk.jar
java -jar SignApk.jar platform.x509.pem platform.pk8 Application.apk Application_signed.apk
或者为了简化自动化,您可以使用keytool-importkeypair将密钥/证书对导入java密钥库文件,并使用ant makefile或eclipse进行签名.
keytool-importkeypair -k~/.android/debug.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
Lek*_*eyn 16
aprock'回答中提到的signapk.jar(全部小写)文件可以在prebuilts/sdk/tools/lib/signapk.jar(或out/host/linux-x86/framework/signapk.jar)找到.
下面我将描述如何管理Eclipse和使用的密钥库ant release.
以下命令获取密钥文件platform.pk8和X509证书platform.x509.pem,并在tmp.p12中输出解密的密钥材料.名称platformkey用于
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 | \
openssl pkcs12 -export -in platform.x509.pem -inkey /dev/stdin \
-name platformkey -password pass: -out tmp.p12
Eclipse并ant debug使用〜/ .android/debug.keystore中的密钥库,该密钥库使用密码锁定android.(如果需要,也可以指定其他密钥库文件,例如~/.android/mykeys.keystore.)下一个命令将来自tmp.p12的密钥材料存储在密钥库中(没有密钥,如果需要密码,请在-srcstorepass ''下面编辑):
keytool -importkeystore -deststorepass android -srckeystore tmp.p12 \
-srcstoretype PKCS12 -srcstorepass '' -destkeystore ~/.android/debug.keystore
此时,您可以删除tmp.p12文件,因为不再需要它.
为了检查密钥库中的内容,可以运行下一个keytool命令(此后在行上显示的输出):
$ keytool -list -keystore ~/.android/debug.keystore -storepass android ... platformkey, Nov 23, 2013, PrivateKeyEntry, Certificate fingerprint (SHA1): 12:34:56:(stripped):AB:CD:EF
当您不再需要密钥时,可以使用以下方法将其删除:
keytool -delete -keystore ~/.android/debug.keystore -storepass android -alias platformkey
在你的local.properties文件中,put(如果省略key.*.password选项,则每次签署APK时都必须输入):
key.store=${user.home}/.android/debug.keystore
key.alias=platformkey
key.store.password=android
key.alias.password=
Run Code Online (Sandbox Code Playgroud)
现在,您可以ant release使用存储在密钥库中的平台密钥来运行以对您的APK进行签名.
| 归档时间: |
|
| 查看次数: |
29858 次 |
| 最近记录: |