Ответ 1
Вместо того, чтобы пытаться найти старую версию adb, проще добавить к аргументам к резервной копии adb кавычки:
adb backup "-apk -shared -all -f C:\Users\NAME\backup.ab"
Ребята, мне нужна помощь, потому что я не знаю, что я сделал не так с резервным копированием adb.
Я хочу сделать резервную копию моего Samsung Galaxy S3 LTE (GT-I9305) без рута. Я гуглил его и нашел Full Android Backup с SDK Manager. Я установил все, что мне нужно для этого, как Java Development Kit 8 версии 66 (JDK 8u66 x64) и Android Studio, которая содержит SDK Manager. Тогда они грустят, я должен загрузить Google USB Driver. Я скачал его, но ничего не произошло. Я думал, что это должно работать сейчас, и затем я пошел в C:\Users\MYNAME\AppData\Local\Android\sdk\platform-tools и щелкнул левой кнопкой мыши на adb, удерживая Shift. Затем я нажал "Открыть окно команд здесь". После этого я набрал "adb devices" и он сказал:
Список подключенных устройств
Устройство 3204cfaaf8611199
Затем я набрал:
adb backup -apk -shared -all -f C:\Users\NAME\backup.ab
Сказано
Теперь разблокируйте устройство и подтвердите операцию резервного копирования.
Я сделал это, и мой смартфон открыл "Полная резервная копия", а затем я смог установить пароль для резервного копирования. Мне не нужен пароль, и я просто нажал "Резервное копирование моих данных" Затем он вернулся на мой домашний экран и сказал "Запуск резервного копирования..." в качестве всплывающего сообщения, и сразу после этого он сказал "Резервное копирование завершено" и создал резервный файл с 40 байтами. Я не знаю, что мне теперь делать.
Вместо того, чтобы пытаться найти старую версию adb, проще добавить к аргументам к резервной копии adb кавычки:
adb backup "-apk -shared -all -f C:\Users\NAME\backup.ab"
Строка, которая правильно вызывает adb
, должна выглядеть примерно так:
adb backup "-apk -obb -shared -all -system" -f phone-20180522-120000.adb
Эта строка предназначена для Linux, но должна также подходить для Windows и OS-X. Для Linux (и, возможно, OS-X) вы можете использовать скрипт, подобный следующему, который автоматически назначает временную метку для файла:
adb backup "-apk -obb -shared -all -system" -f "${PHONE:-phone}-'date +%Y%m%d-%H%M%S'.adb'"
Внимание! После создания резервной копии проверьте свои данные! На моей стороне иногда обнаруживается некоторое повреждение файла (и я сомневаюсь, что это мой компьютер, так как я наблюдаю такие ошибки только с помощью
adb
).Вот инструкция по
check
я использую:set -o pipefail for a in *.adb; do echo "$a"; dd if="$a" bs=24 skip=1 | zlib-flate -uncompress | tar tf - >/dev/null; echo "ret=$?"; done
Он должен показывать
ret=0
, но это не так.
- Если вы видите, что
inflate: data: invalid code lengths set
ваш архив поврежден и - очень вероятно - непригоден для восстановления!- Если вы видите
tar: Unexpected EOF in archive
ваша резервная копия, вероятно, пригодна для использования (все резервные копии заканчиваются таким образом, я не знаю почему).- Даже если вы видите только
ret=0
могут быть необнаруженные ошибки, которые все еще мешают восстановлению.- Определенно отсутствует команда
adb verify
для проверки правильности резервного копирования!
Я публикую это обновление, так как все остальные ответы были полезными, но не точными до последней детали. (При использовании с полными кавычками резервное копирование выполнялось, но оно называлось backup.ab
)
Вот мое окружение:
Полная процедура была (на случай, если кто-то наткнется на это, не зная, что нужно):
adb
(в Ubuntu: sudo apt-get install android-tools-adb
)adb devices
- вы должны увидеть что-то вроде XXXXXXXXXXXX unauthorized
OK
. Сначала переместите препятствующее окно.adb devices
- вы должны увидеть что-то вроде XXXXXXXXXXXX device
ANDROID_SERIAL=XXXXXXXXXXXX
.) Теперь запустите adb backup
как показано выше. Измените файл в соответствии с вашими потребностями.
Заметки:
adb help
показывает все возможные варианты adb backup
По всей видимости, adb backup
не полностью резервное копирование все!
Я посмотрел в резервную копию (cd X && dd if=../XXXX.adb bs=24 skip=1 | zlib-flate -uncompress | tar xf -
) и не нашел все установленные приложения.
То, что мне удалось найти, было (обратите внимание, что этот список неполон):
shared/0
shared/1
apps/
- многие приложения (например, Google Authenticator) отсутствовалиapps/com.android.providers.calendar/db/calendar.db
(вероятно)Что мне не удалось найти (обратите внимание, что этот список неполон):
share/1
Например, приложения, которые перемещаются на SD-карту.)Выводы:
adb backup
может создавать поврежденные резервные копии, которые могут остаться незамеченными. Поэтому либо проверяйте свою резервную копию, либо делайте частые резервные копии и делайте вид, что вам повезло, что не все резервные копии испортились.adb backup
вы получаете резервную копию большинства ваших ценных данных, таких как изображения с камер и так далее. Это может быть немного сложно распаковать его, хотя.adb backup
недостаточно для полного резервного копирования вашего телефона.adb backup
копирования вашей SD-карты недостаточно резервного adb backup
поэтому, если она сломается, вы сможете заменить ее новой с восстановленным содержимым. Это очень грустно!PS: опечатка " Forth " не случайна.
PPS: zlib-flate
можно найти в пакете qpdf
на Ubuntu 18.04
Это просто сработало с использованием Ubuntu 15.10 ( "wily" ) для резервного копирования Galaxy SM-G900V под управлением Android версии 6.0.1.
Установлено с помощью:
sudo apt-get install android-tools-adb
Затем я вывел из командной строки следующее (без 'sudo'):
adb backup -apk -shared -all -f backup.adb
Результат:
[email protected]:~/droid$ ls -lah
total 1.2GB
drwxrwxr-x 2 user user 4.0BK Mar 6 18:43 .
drwxr-xr-x 52 user user 4.0KB Mar 6 17:40 ..
-rw-r----- 1 user user 1.2GB Mar 6 18:29 backup.ab
Спасибо "НГ". Я начинал думать, что мой телефон был ранен.
Забыл добавить: Запуск версии adb: Android Debug Bridge версии 1.0.31
Проблема в версии adb вашего ПК. При использовании ADB версии 1.0.31 резервное копирование/восстановление будет успешным.
Более подробная информация на: https://android.stackexchange.com/questions/83080/adb-backup-creates-0-byte-file-prompts-for-current-backup-password-even- Хотя и Как понизить версию моей SDK?
Если ваше устройство имеет версию adb до 1.0.31, то вы должны использовать версию adb 1.0.31 на ПК. Версии adb 1.0. 32+ сломали обратную совместимость. Источник: выпуск 208337
Кажется, не все приложения могут быть скопированы. Android, по-видимому, позволяет приложениям отключать резервное копирование: (
https://developer.android.com/guide/topics/manifest/application-element.html (поиск для возврата)
Просто, если у кого-то все еще есть проблемы - В Windows я обнаружил, что расставлять кавычки можно только вокруг каталога, например, "C:\Users\NAME\backup.ab".
Ни одна из этих работ для меня. Он работает полностью, но затем говорит, что завершен, фактически не получая все приложения, так как общее число должно превысить 200…. Получается около 30. Очень расстраивает, когда это известно Google годами, но они все еще не исправляют это самостоятельно. устройство.