
Извлекать и перепаковывать резервные копии Android ADB (ICS+). Поддерживает зашифрованные архивы, преобразование в tar и стандартный ввод/вывод для криминалистического анализа или восстановления данных.
Утилита для извлечения и перепаковки резервных копий Android, созданных с помощью adb backup (ICS+).
В значительной степени основана на BackupManagerService.java из AOSP.
Требуется Java 11. Для работы с зашифрованными резервными копиями требуется политика неограниченной силы JCE (не требуется, если используется текущий выпуск Java 9).
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
Используйте один из инструментов, перечисленных ниже, для сборки или посмотрите Релизы для предварительно собранных двоичных файлов (исполняемые jar-файлы).
Загрузите последнюю версию jar-файла Bouncy Castle Provider
(bcprov-jdk15on-*.jar) здесь:
Поместите последний jar-файл Bouncy Castle в lib/, импортируйте в Eclipse и при необходимости настройте путь сборки. Используйте сценарий abe для запуска утилиты.
Чтобы создать самовыполняющийся всё-в-одном jar:
mvn clean package, а затем:
java -jar target/abe.jar pack|unpack|pack-kk ...
Используйте прилагаемый сценарий Ant для создания всё-в-одном jar и запуска с помощью:
(вам всё равно нужно поместить jar-файл Bouncy Castle в lib/; измените свойство bcprov.jar соответствующим образом)
java -jar abe.jar pack|unpack|pack-kk ...
(Спасибо Яну Петеру Штотцу за файл build.xml)
Используйте gradle для создания всё-в-одном jar:
./gradlew, а затем:
java -jar build/libs/abe-all.jar pack|unpack|pack-kk ...
abe unpack <backup.ab> <backup.tar> [пароль]abe pack <backup.tar> <backup.ab> [пароль]abe pack-kk <backup.tar> <backup.ab> [пароль]
(создаёт резервные копии версии 2, совместимые с Android 4.4.3)Если имя файла равно -, то данные читаются из стандартного ввода или записываются в стандартный вывод.
Если пароль не указан в командной строке, то используется переменная окружения ABE_PASSWD. Если пароль не указан, архив резервной копии не будет зашифрован, а только сжат.
allowBackup, установленным в false, не архивируются и не восстанавливаются.
adb push и adb shell)BackupManagerService.Самый безопасный способ упаковать tar-архив — это получить список файлов из исходного файла backup.tar:
tar tf backup.tar | grep -F "com.package.name" > package.list
Затем используйте этот список для создания tar-файла. В извлечённой директории резервной копии:
tar cf restore.tar -T package.list
Теперь вы можете упаковать restore.tar и попробовать выполнить adb restore restore.ab
Релизы создаются с помощью Travis CI из ветки master и включают исполняемый fat jar.
Используйте двоичные файлы на свой страх и риск. Гарантия или поддержка не предоставляются.
Пожалуйста, сообщайте только об ошибках в самом извлекателе резервных копий. Я не могу отвечать на вопросы, касающиеся распаковки/перепаковки резервных копий или tar-файлов. (См. Использование для краткого руководства.)
Более подробная информация о формате резервной копии и реализации инструмента в соответствующей статье блога.