Резервное копирование Adb не работает

Ребята, мне нужна помощь, потому что я не знаю, что я сделал не так с резервным копированием 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 байтами. Я не знаю, что мне теперь делать.

Ответ 1

Вместо того, чтобы пытаться найти старую версию adb, проще добавить к аргументам к резервной копии adb кавычки:

adb backup "-apk -shared -all -f C:\Users\NAME\backup.ab"

Ответ 2

Строка, которая правильно вызывает 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 для проверки правильности резервного копирования!

FYI

Я публикую это обновление, так как все остальные ответы были полезными, но не точными до последней детали. (При использовании с полными кавычками резервное копирование выполнялось, но оно называлось backup.ab)

Вот мое окружение:

  • ОС: Ubuntu 16.04
  • Телефон: Android 7.0
  • АБР: 1.0.32

Полная процедура была (на случай, если кто-то наткнется на это, не зная, что нужно):

  • Zeroth: установить adb (в Ubuntu: sudo apt-get install android-tools-adb)
  • Первое: включите режим отладки по USB на телефоне.
  • Второе: подключите телефон к USB компьютера с помощью USB-кабеля для передачи данных (недостаточно только кабеля для зарядки)
  • Обратите внимание, что Ubuntu Phone Manager может появиться и попросить ввести PIN-код телефона. Вам это не нужно, закройте это, если это произойдет.
  • Третье: запустить adb devices - вы должны увидеть что-то вроде XXXXXXXXXXXX unauthorized
  • Через некоторое время на вашем телефоне появляется сообщение, которое запрашивает разрешение на отладку USB
    • Разрешите это один раз. По соображениям безопасности не следует автоматически доверять компьютеру, так как fingerprint может быть легко подделан.
    • Обратите внимание, что если что-то мешает одному пикселю этого окна подтверждения (например, какая-то кнопка функции доступности), вы не можете нажать на кнопку OK. Сначала переместите препятствующее окно.
  • Далее: теперь снова запустите adb devices - вы должны увидеть что-то вроде XXXXXXXXXXXX device
    • Если отображается более одной линии, вы подключили к компьютеру более одного телефона. Самый простой способ - отключить всех тех, кого вы не хотите делать резервные копии. (Сложный способ - установить переменную среды ANDROID_SERIAL=XXXXXXXXXXXX.)

Теперь запустите adb backup как показано выше. Измените файл в соответствии с вашими потребностями.

  • Это вызывает окно, которое запрашивает разрешение на резервное копирование.
  • Не закрывайте окно резервного копирования во время резервного копирования. Когда я попробовал это, резервное копирование остановилось, и полученный архив был сломан.
  • Вы можете дать пароль для шифрования вашей резервной копии. У меня нет никакой информации о том, насколько безопасен пароль. Но очень вероятно, что вы не сможете восстановить резервную копию, если вы когда-нибудь забудете этот пароль.
  • Понятия не имею о том, как восстановить такую резервную копию на другие телефоны. Я даже никогда не пытался восстановить, поэтому и здесь не могу помочь.

Заметки:

  • adb help показывает все возможные варианты adb backup
  • Закройте все открытые приложения на вашем телефоне перед резервным копированием. Я не знаю, нужно ли это, но это точно не повредит.
  • Оставьте телефон в покое, пока выполняется резервное копирование. Я не знаю, нужно ли это, но это точно не повредит.
  • Не будь нетерпеливым. Оставьте резервную копию много времени. На моей стороне я вижу прогресс около 100 МБ/мин (YMMV). Таким образом, резервное копирование занимает около получаса для моего телефона (2,5 ГБ).

По всей видимости, adb backup не полностью резервное копирование все!

Я посмотрел в резервную копию (cd X && dd if=../XXXX.adb bs=24 skip=1 | zlib-flate -uncompress | tar xf -) и не нашел все установленные приложения.

То, что мне удалось найти, было (обратите внимание, что этот список неполон):

  • Внутренняя эмулируемая SD-карта: shared/0
  • Внешняя SD-карта: shared/1
  • Приложения: apps/ - многие приложения (например, Google Authenticator) отсутствовали
  • Календарь: apps/com.android.providers.calendar/db/calendar.db (вероятно)

Что мне не удалось найти (обратите внимание, что этот список неполон):

  • Сигналы тревоги. (Я, вероятно, не смог определить правильное приложение)
  • Полная внешняя SD-карта (на этой карте больше, чем показано ниже share/1 Например, приложения, которые перемещаются на SD-карту.)

Выводы:

  • Иногда adb backup может создавать поврежденные резервные копии, которые могут остаться незамеченными. Поэтому либо проверяйте свою резервную копию, либо делайте частые резервные копии и делайте вид, что вам повезло, что не все резервные копии испортились.
  • С помощью adb backup вы получаете резервную копию большинства ваших ценных данных, таких как изображения с камер и так далее. Это может быть немного сложно распаковать его, хотя.
  • adb backup недостаточно для полного резервного копирования вашего телефона.
  • adb backup копирования вашей SD-карты недостаточно резервного adb backup поэтому, если она сломается, вы сможете заменить ее новой с восстановленным содержимым. Это очень грустно!

PS: опечатка " Forth " не случайна.

PPS: zlib-flate можно найти в пакете qpdf на Ubuntu 18.04

Ответ 3

Это просто сработало с использованием 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

Ответ 4

Проблема в версии 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

Ответ 6

Просто, если у кого-то все еще есть проблемы - В Windows я обнаружил, что расставлять кавычки можно только вокруг каталога, например, "C:\Users\NAME\backup.ab".

Ответ 7

Ни одна из этих работ для меня. Он работает полностью, но затем говорит, что завершен, фактически не получая все приложения, так как общее число должно превысить 200…. Получается около 30. Очень расстраивает, когда это известно Google годами, но они все еще не исправляют это самостоятельно. устройство.