Как бэкапить приложение Android через скрипт?
Как бэкапить приложение целиком (т е не только apk, но и содержимое /data/data/com.author.appname и /data/user_de/0/com.author.appname) в Android? Бэкапить желаю строго с консоли shell-скриптом.
Использовать adb не желаю, скрипт должен быть локальным.
Использовать bu или bmgr тоже нежелательно. bu вообще вызывает диалог о резервном копировании, хотя я хочу просто и "тихо" получить архив с бэкапом, как это делает Titanium Backup.
Проблема бэкапа в том, что я не могу просто так взять и сделать tar -cJ --with-selinux -f /sdcard/backup.tar.xz, т к при перестановке приложения у него поменяется UID, так что как быть - я хз. Чёрт бы с SELinux - restorecon тут в случае чего точно поможет, но меня волнует проблема UID и возможной корректной работоспособности приложения после восстановления с такого бэкапа.
ОС - Android 10.
Ответы (1 шт):
Итак, ответ все же нашёл:
1.У rsync есть опциии -o, -g, но самое главное - chown=UID:GID. Делаем так:
~ # rsync -r /data/data/com.author.appname/* /data/backup
Это только backup. Восстановление делаем так:
~ # export NEWUID=$(ls /data/data -l | grep com.author.appname | awk -F' ' '{print $2}')
~ # rm -rf /data/data/com.author.appname/*
~ # rsync -ogr --chown=$NEWUID:$NEWUID /data/backup/* /data/data/com.author.appname