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.apk
INSTALL_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
コメント
コメントを投稿