Bashスクリプト - ユーザー入力の自動化(キーストアパスワード)

Bashスクリプト - ユーザー入力の自動化(キーストアパスワード)

この質問は以前に要求されたことがありますが、ほとんど解決策しか提供されていません。まだ私の問題を解決していません。

jarsignerを使用した後、私のキーストアのパスワードを求めるメッセージが表示.shされます。apkこれでセキュリティのこの部分が機能しないので、これを達成する方法がわかります(私のファイルのパスワードを削除する.keystoreか、プレーンテキストでパスワードを入力してください)。

完全なコマンド:

jarsigner -sigalg SHA1withRSA -digestalg SHA1 -verbose -keystore keyForApk.keystore 
  apk/android-release-unsigned.apk alias_name

その後、次のメッセージが表示されます。

Enter Passphrase for keystore:

これで、jarsignerコマンドの後にこのコマンドを動的に入力できるコマンドは何ですか?

ベストアンサー1

使用できる予想されるパスワードを自動的に入力するユーティリティです。ランチャースクリプトを作成しますauto-jar.sh

#! /usr/bin/expect

# Wait for finish forever after send password
set timeout -1
# Put your jarsigner command here
spawn jarsigner ...
expect "Enter Passphrase for keystore: "
send "your jar password\r"
# Wait for jarsigner command finish
expect eof
# Return relevant exit code of jarsigner command
# , useful if you want continue next command only after signed successfully with `&&`
foreach {pid spawnid os_error_flag exit_code} [wait] break
exit "$exit_code"

その後、実行可能chmod +x auto-jar.shにします./auto-jar.shexpect auto-jar.sh

おすすめ記事