From 5b15d388d7d69370c30dea07985978cd7397bf9d Mon Sep 17 00:00:00 2001 From: Izzy Date: Sat, 6 Oct 2018 00:25:45 +0200 Subject: [PATCH] auto-confirm: some devices require different sequences on backup/restore, eg Xiaomi Mi8 --- doc/config.sample | 2 ++ lib/scriptgen.lib | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/config.sample b/doc/config.sample index 9267e63..28b6f3f 100644 --- a/doc/config.sample +++ b/doc/config.sample @@ -68,6 +68,8 @@ MK_APPRESTORE_DELAY=p MK_AUTOCONFIRM_DELAY=3 # If the default auto-confirm sequence (22 23) doesn't work for you, specify a different one. Here's e.g. what the Xiaomi Mi8 wants: MK_AUTOCONFIRM_SEQUENCE=(61 61 61 66) +# Optionally, if your device requires a different sequence for restore (again the Xiaomi Mi8) – leave empty/untouched otherwise: +MK_AUTOCONFIRM_SEQUENCE_2=(61 61 66) # trigger an export from XPosed and pull it. Requires XPrivacy PRO key. MK_XPRIVACY_EXPORT=0 # pull the XPrivacy databases when found (not contained in adb backup; root required) diff --git a/lib/scriptgen.lib b/lib/scriptgen.lib index d2fb58a..4b47064 100644 --- a/lib/scriptgen.lib +++ b/lib/scriptgen.lib @@ -275,13 +275,14 @@ getUserAppBackup() { echo >> "$restorescript" if [[ "${AUTO_CONFIRM}" -eq 1 ]]; then + [[ -n "${MK_AUTOCONFIRM_SEQUENCE_2}" || ${#MK_AUTOCONFIRM_SEQUENCE_2[@]} -eq 0 ]] && MK_AUTOCONFIRM_SEQUENCE_2=${MK_AUTOCONFIRM_SEQUENCE[@]} echo "function autoConfirm() {" >> "$restorescript" if [[ ! -z "${BACKUP_PASSWORD}" ]]; then echo -e " adb ${ADBOPTS} shell input text \"${BACKUP_PASSWORD}\" \\" >> "$restorescript" echo " && sleep 1" >> "$restorescript" # wait between sending text and keycodes fi - if [[ ${#MK_AUTOCONFIRM_SEQUENCE[@]} -gt 0 ]]; then # run device-specific keycode sequence. Default: 22 23 - for keyevent in ${MK_AUTOCONFIRM_SEQUENCE[@]}; do + if [[ ${#MK_AUTOCONFIRM_SEQUENCE_2[@]} -gt 0 ]]; then # run device-specific keycode sequence. Default: 22 23 + for keyevent in ${MK_AUTOCONFIRM_SEQUENCE_2[@]}; do echo -e " adb ${ADBOPTS} shell input keyevent ${keyevent}; sleep ${MK_AUTOCONFIRM_DELAY}" >> "$restorescript" done fi @@ -440,13 +441,14 @@ getSystemAppBackup() { echo >> "$restorescript" if [[ "${AUTO_CONFIRM}" -eq 1 ]]; then + [[ -n "${MK_AUTOCONFIRM_SEQUENCE_2}" || ${#MK_AUTOCONFIRM_SEQUENCE_2[@]} -eq 0 ]] && MK_AUTOCONFIRM_SEQUENCE_2=${MK_AUTOCONFIRM_SEQUENCE[@]} echo "function autoConfirm() {" >> "$restorescript" if [[ ! -z "${BACKUP_PASSWORD}" ]]; then echo -e " adb ${ADBOPTS} shell input text \"${BACKUP_PASSWORD}\" \\" >> "$restorescript" echo " && sleep 1" >> "$restorescript" # wait between sending text and keycodes fi - if [[ ${#MK_AUTOCONFIRM_SEQUENCE[@]} -gt 0 ]]; then # run device-specific keycode sequence. Default: 22 23 - for keyevent in ${MK_AUTOCONFIRM_SEQUENCE[@]}; do + if [[ ${#MK_AUTOCONFIRM_SEQUENCE_2[@]} -gt 0 ]]; then # run device-specific keycode sequence. Default: 22 23 + for keyevent in ${MK_AUTOCONFIRM_SEQUENCE_2[@]}; do echo -e " adb ${ADBOPTS} shell input keyevent ${keyevent}; sleep ${MK_AUTOCONFIRM_DELAY}" >> "$restorescript" done fi