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確認結果(成功)
確認結果(署名なしの時)
確認結果(デバック用の署名の時)
インストール
adb install Wareki.apkINSTALL_FAILED_ALREADY_EXISTSエラー及び、INSTALL_FAILED_UPDATE_INCOMPATIBLEとメッセージが出てインストールできない。これはデバック実行時に自動的付加される証明書と異なるためで、以前に同じパッケージ名、別の証明書でアプリケーションがインストールしてあると、バージョンアップできない仕様によるもの
/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
成功です。




コメント
[typo]
-berbose
投稿者: Anonymous | 2008年12月16日 17:12
ご指摘ありがとうございました。修正しました。
投稿者: がく | 2008年12月16日 17:45