« Android 電子署名 2 | メイン | Android メニューアイコン »

Android 電子署名 3

開発したソフトに実際に署名をしてみました。

keystore名は、hoge.keystoreとし、alias名は、hoge パスワードは、hogehogeです。

証明書の作成


keytool -genkey -v -keystore hoge.keystore 
-alias hoge -keyalg RSA -validity 10000 -dname "cn=www.taosoftware.co.jp, 
ou=Taosoftware Android Development ,o=Taosoftware.,l=Tokyo, 
st=Taitou, c=jp" -keypass hogehoge

アプリケーションへの署名


jarsigner -verbose -keystore hoge.keystore Wareki.apk hoge

署名確認


jarsigner -verify -verbose -certs Wareki.apk
確認結果(成功) android_jarsigner_success.png

確認結果(署名なしの時)

android_jarsignert2.png

確認結果(デバック用の署名の時)

android_jarsignert1.png

インストール


adb install Wareki.apk
INSTALL_FAILED_ALREADY_EXISTSエラー及び、INSTALL_FAILED_UPDATE_INCOMPATIBLEとメッセージが出てインストールできない。これはデバック実行時に自動的付加される証明書と異なるためで、以前に同じパッケージ名、別の証明書でアプリケーションがインストールしてあると、バージョンアップできない仕様によるもの

android_install_fail2.png
android_install_fail3.png

/data/app /data/dataディレクトリに存在している該当パッケージを削除
adb uninstallコマンドを実行

上記処理をしても何かが残っておりインストール不可能
エミュレータの中を除いた所、/data/system/package.xmlにパッケージ名が残っていたりしており、調査のしがいはありそうだが、今回の目的とは異なるので、調査は次回とし、エミュレータのイメージを作り直した

2009/3/10 この時点でのadb uninstallコマンドは不完全な物でしたが、現在は、アプリケーションの削除、アプリケーションデータの削除、package.xmlの編集、PACKAGE_REMOVEDを投げたりと、通常のアンインストール動作と同じ処理をするので、adb shellで入ってデータを削除する必要はありません

新しいイメージでエミュレータ起動


emulator.exe -data new_image

再インストール


adb install Wareki.apk
android_install_success.png

成功です。

ブログ内の関連する記事

トラックバック

このエントリーのトラックバックURL:
http://www.taosoftware.co.jp/mt/mt-tb.cgi/95

この一覧は、次のエントリーを参照しています: Android 電子署名 3:

» Android 電子署名 3 from Taosoftware
開発したソフトに実際に署名をしてみました。 keystore名は、hoge.ke... [詳しくはこちら]

コメント

[typo]
-berbose

ご指摘ありがとうございました。修正しました。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)