이 질문은 이전에 요청된 적이 있지만 거의 해결 방법만 제공되었다는 것을 알고 있습니다. 아직 내 문제를 해결하지 못했습니다.
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 스크립트에서 루트 비밀번호를 유지합니다. Ubuntu 20.04 LTS 사용 및mariadb-client