この質問は以前に要求されたことがありますが、ほとんど解決策しか提供されていません。まだ私の問題を解決していません。
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.sh
。expect auto-jar.sh
答え2
mysqldump
パスワードが必要ですが、スクリプトにハードコードしたくありません。これは、パスワードを変更するときに何よりもメンテナンスの観点から苦痛になる可能性があります。
Docker-Composeの「秘密」ファイルを使用してGitの外部でMariaDBのルートパスワードを保持するため、cat
これを拡張変数に入れるだけで、ユーザーに入力するように求められずにコマンドが実行されます。
mysqldump -h192.168.2.2 -p"$(cat /docker-compose-dir/mariadb_root_pswd.txt)" -uroot wordpressDBname > /backupsDirectory/wordpressDBname_`date +%Y%m%d-%H:%M:%S`.sql
このソリューションはまた、私のbashスクリプトでrootパスワードを保持します。 Ubuntu 20.04 LTSの使用とmariadb-client