実験として、カスタムビルドのプラットフォームキーを使用したいと思いますAndroidプラットフォームは、NDKを介してビルドされた任意のAPKに署名します。これを行うためのプロセスは何ですか?
プラットフォームのキー/証明書のペア(.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
または、自動化を容易にするために、キーと証明書のペアをJavaキーストアファイルに keytool-importkeypair を指定して)インポートし、ant makefileまたはEclipse for署名。
keytool-importkeypair -k〜/ .Android/debug.keystore -p Android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
aprock 'answer に記載されている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
でロックされている〜/ .Android/debug.keystoreにあるキーストアを使用します。 (必要に応じて、他のキーストアファイルを指定することもできます。例:~/.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、2013年11月23日、PrivateKeyEntry、 証明書のフィンガープリント(SHA1):12:34:56:(stripped):AB:CD:EF
キーが不要になった場合は、次の方法で削除できます。
keytool -delete -keystore 〜/ .Android/debug.keystore -storepass Android -alias platformkey
local.properties
ファイルに以下を入力します(key.*.password
オプションを省略した場合、APKに署名するたびに入力する必要があります):
key.store=${user.home}/.Android/debug.keystore
key.alias=platformkey
key.store.password=Android
key.alias.password=
これで、ant release
を実行して、キーストアに保存したプラットフォームキーを使用してAPKに署名できます。