Как бэкапить приложение 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 шт):

Автор решения: RandomDice 779

Итак, ответ все же нашёл:

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
→ Ссылка