Androidアプリに載っけているGoogleアドセンスがバージョンアップに伴い使えなくなるというので、Google Mobile Ads SDKをアップデートしなくてはならなくなった。
それ自体は簡単なんだけどいざアプリのアップデートをしようと思ってapkを作ろうとすると「Keystore was tampered with, or password was incorrect」と出てapkが作れない。
多分パスワードは合ってるはずなんだけど・・・
初期に作ったアプリなのでそのころとはAndroid Studioのバージョンが違っている。
Android Studioのバージョンアップによる不具合はこの件に限らず稀によく聞く話なのでこれも不具合なのかなぁと。
と他人事で済ますわけにも行かないのでキーストアを復旧する。
エイリアスパスワードの捜査
キーストアのパスワードを見つけるのは困難なのでエイリアスパスワードを見つける。
エイリアスパスワードを見つけるソフトがあるのでこれを使用する。
android-keystore-password-recover
jarファイルなんでインストール不要で気軽に使えます。
ダウンロードしたら実行。
1 |
java -jar AndroidKeystoreBrute_v1.05.jar -m 3 -k "C:\keystore.jks" -d "C:\word.txt" |
こんな感じで-kでキーファイルを指定、-dで多分これじゃない?という文字列を書いたテキストファイルを指定する。
-dで指定するテキストファイルは文字列ごとに改行して保存。
そうすると
1 |
Password is: password for alias myapp |
みたいにパスワードが発見できる。
ここでパスワードを発見できないと諦めるしかないと思われ。
キーストアのパスワード変更
エイリアスパスワードが分かればキーストアのパスワードを変更することが出来るのでパスワードを見つけるというより強制的に変更してしまう。
これも簡単で先程のandroid-keystore-password-recover使用する。
1 |
java -jar AndroidKeystoreBrute_v1.05.jar -m 3 -k "C:\keystore.jks" -d "C:\word.txt" -w |
先程の同じコマンドの最後に-wを付けるだけ。
こうするとキーストアファイルの最後に_recoveredが付いた新しいキーストアファイルが作成される。
(このファイルはキーストアパスワードとエイリアスパスワードが一緒になっている。)
これでどちらのパスワードも一緒になったのでAndroid Studioでapkを作成してみる。
すると今度は「Cannot recover key」と出てまたも作れない。
パスワードの再設定
ググるとパスワードを再設定してみろ、とのこと。
Javaフォルダのbinにあるkeytool.exeを使用してパスワードを再設定する。
1 2 |
keytool -storepasswd -new password -keystore C:\keystore.jks keytool -keypasswd -alias myapp -new password -keystore C:\keystore.jks |
-newが新しく設定するパスワード。
先程発見したパスワードを再設定してもいいし、新しくしてもいい。
これでapkが作れるようになりました。
スポンサーサイト
アフィリエイトはエーハチネット
ドメイン取るならお名前.com