Скрипт Android Addon.d не работает должным образом - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть скрипт addon.d , который удаляет ненужные приложения после каждого обновления, чтобы они не возвращались, но кажется, что код, ответственный за это, не выполняется всякий раз, когда я обновляю свое устройство.Дело в том, что функция восстановления не выполняется, поэтому функция после восстановления также не выполняется?Я понятия не имею, что не так.

#!/sbin/sh
#
# /system/addon.d/74-brs.sh
#
. /tmp/backuptool.functions

list_files() {
cat <<EOF
EOF
}

case "$1" in
  backup)
    list_files | while read FILE DUMMY; do
      backup_file $S/$FILE
    done
  ;;
  restore)
    list_files | while read FILE REPLACEMENT; do
      R=""
      [ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
      [ -f "$C/$S/$FILE" ] && restore_file $S/$FILE $R
    done
  ;;
  pre-backup)
    # Stub
  ;;
  post-backup)
    # Stub
  ;;
  pre-restore)
    # Stub
  ;;
  post-restore)
   rm -rf /system/app/Calendar
   rm -rf /system/app/Jelly
   rm -rf /system/app/messaging
  ;;
esac

Новое:

#!/sbin/sh
. /tmp/backuptool.functions

list_files() {
cat <<EOF
/system/app/Calendar/Calendar.apk
/system/app/Jelly/Jelly.apk
/system/app/messaging/messaging.apk
EOF
}

case "$1" in
  backup)
    list_files | while read FILE DUMMY; do
      backup_file $S/$FILE
    done
  ;;
  restore)
    list_files | while read FILE REPLACEMENT; do
      R=""
      [ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
      [ -f "$C/$S/$FILE" ] && restore_file $S/$FILE $R
    done
  ;;
  pre-backup)
    # Stub
  ;;
  post-backup)
    # Stub
  ;;
  pre-restore)
    # Stub
  ;;
  post-restore)
   rm -rf /system/app/Calendar
   rm -rf /system/app/Jelly
   rm -rf /system/app/messaging
  ;;
esac

1 Ответ

0 голосов
/ 12 сентября 2018

, пока list_files() не возвращает список затронутых файлов, это не будет работать должным образом ...

list_files() {
cat <<EOF

# add all the files into here, directories do not matter. 

EOF
}

только потому, что list_files | while read FILE DUMMY; do, а также

list_files | while read FILE REPLACEMENT; do ничего не будет делать.

чтобы получить соответствующие имена файлов, вы также можете использовать ls:

ls -la /system/app/Calendar
ls -la /system/app/Jelly
ls -la /system/app/messaging

, убедитесь, что системный раздел перемонтированв режиме read/write.

...