Бэкап adb на Marshmallow — чем отличается?

Устройство и настройки:

введите описание изображения здесь

Цель: я хотел сделать adbрезервную копию своих приложений на Mint Linux (17.3) (с данными, если это возможно) и внутренней SD-карты, используя эту полную резервную копию нерутированных устройств в качестве эталона.

Проблемы:

  1. Когда я набираю это в терминале

    adb backup -apk -shared -all -nosystem -f moto.ab

    Я получаю приглашение « Теперь разблокируйте устройство и подтвердите операцию резервного копирования » в терминале, но на устройстве ничего не происходит — я не вижу панели для принятия или ввода пароля рабочего стола, как на рисунке ниже (то же самое, если я попытаюсь -система вместо -носистема )

введите описание изображения здесь

  1. Терминал возвращается к запросу следующей команды через несколько секунд ( на ноутбуке создается файл размером 0 КБ )

Вопрос

Я делаю что-то не так, или Marshmallow требует дополнительных действий, чтобы сделать резервную копию по желанию?

Устройства Moto считаются «чистым Android», поэтому я ожидаю, что эта проблема будет распространена на устройствах Nexus, работающих под управлением последней версии ОС.


Изменить: Вещи пытались с переменным успехом

  1. Проблемы с резервным копированием Nexus 5 Marshmellow ADB . Проходя мимо этого поста

(....) похоже, что резервная копия adb не распознает переключатели -apk, -nosystem и -noshared. Есть идеи, почему? Из командной строки, если я удалю этот переключатель, резервное копирование запустится

adb backup -all -f moto.ab 

работает в том смысле, что я получаю на панели возможность ввести резервную копию пароля (проблема 1 выше преодолена), но размер файла (105 МБ) показывает, что все приложения не резервируются (по сравнению с использованием ES File Explorer, размер составляет 2 ГБ )

  1. Я где-то читал на этом сайте, что приложение Helium основано на adb. Гелий Вики говорит

Гелий НЕ доступен для устройств Motorola. Это связано с тем, что в телефонах Motorola есть ошибка, которая нарушает механизм резервного копирования Android. Пока это не будет исправлено Motorola, Helium не будет работать на этих устройствах Android (....) Обновление: Helium работает над Motorola Droid Turbo.

Это, очевидно, объясняет, почему это не работает на моем устройстве, было логическим выводом. Это потребовало экспериментов, поэтому я скачал расширение Helium для Chrome и активировал его ( здесь нужно было объяснить небольшой обходной путь ) .

Я выбрал все приложения под Helium и сделал резервную копию (за исключением некоторых приложений, показанных как «не поддерживающие резервное копирование») размером 110 МБ (аналогично приведенному выше эксперименту).

Так что, судя по всему, мой девайс Moto X play не проблема!

  1. Пробное решение здесь Резервное копирование ADB создает 0-байтовый файл; запрашивает текущий пароль для резервного копирования, хотя я никогда его не устанавливал; «Не удалось установить пароль» для пароля резервного копирования рабочего стола с рекомендацией избегать пробелов между аргументами

adb backup -apk\ -shared\ -all\ -nosystem -f moto.abи получил файл резервной копии размером 0 Кб

На обоих выложенных вами скриншотах ADB не подключен. Вы включили отладку по USB в настройках разработчика? (Он полностью отделен от двух опубликованных вами диалогов.)
Примечание. Я предполагаю, что ADB может создавать резервные копии только приложений, которые имеют набор allowBackup:trueв AndroidManifest.xml, тогда как ES File Explorer, вероятно, может создавать резервные копии любых APK, которые он находит с помощью диспетчера пакетов, независимо от вышеуказанного атрибута.
Далее мы не должны игнорировать новый fullBackupContentатрибут тега applicationдля AndroidManifest.xml, представленный в Android 6.0, и то, как это может повлиять на поведениеadb backup
Как бы мне не хотелось это говорить, у моего Nexus 9 под управлением 6.0.1 нет такой проблемы с упомянутой командой. Однако он имеет root-права и не имеет пароля для резервного копирования рабочего стола, а шифрование устройства установлено по умолчанию. Здесь может быть одна тонкая вещь: вы говорите, что ваше устройство не зашифровано, но на изображении какого-то устройства KitKat пароль резервного копирования рабочего стола является паролем шифрования устройства. Не могли бы вы пролить свет на проблему?
Кроме того, какая у вас platform-toolsверсия? Я пробовал с последней стабильной и последней предварительной версиями, так как обе работают нормально. Я предполагаю, что главное сообщение таково: устройства Moto не работают на чистом Android.
@TamoghnaChowdhury: Пожалуйста, присоединяйтесь к комнате здесь

Ответы (4)

Та же проблема здесь - вот как я исправил это на своей стороне. Подготовка:
- Samsung Galaxy S5 на Android 6.0.1 (без рута)
- adbv. 1.0.32 работает под командной строкой Windows 10
- установлен пароль на S5

Мне удалось использовать кавычки для всех переключателей:
adb backup "-apk -noshared -all -nosystem"
-> запросит пароль и создаст backup.ab

Для резервного копирования одного apk с использованием пользовательского имени файла:
adb backup -f all_apk_obb.ab "-apk -obb com.estrongs.android.pop"

Кажется, что обработка переключателя adbнемного странная в последних выпусках. Я делал это раньше, и мои старые скрипты больше не работают.

Windows 10 и adb.exe версии 1.0.31 работают с дополнительными параметрами, если их заключить в двойные кавычки: adb backup "-all -shared -system -apk" -f "e:\backup\samsung.ab"также - обратите внимание, что "-f..." должен быть снаружи. Это сработало для меня.

Это известная проблема, и она до сих пор не решена:

https://code.google.com/p/android/issues/detail?id=212238

+1 за вклад, который может быть полезен другим пользователям. В моем журнале я не вижу этой ошибки, и, как указано в вопросе, ОС 6.0.1.

У меня нет этого мобильного телефона, но вы можете попробовать это:

В "config -> security" есть опция "авторизованные агенты" или что-то в этом роде? А в этом варианте есть вариант агента резервного копирования?

Включите его и снова протестируйте «adb backup».

С уважением,

нет у меня его нет

Если вы используете widnows, попробуйте

adb backup "-apk -shared -all -nosystem" -f "moto.ab"

вместо

adb backup -apk -shared -all -nosystem -f moto.ab.