четверг, 18 апреля 2013 г.

backup/restore программ через adb

Чётко замечено, что представители "старой школы" не очень доверяют "всяким там облакам". Поэтому то, что современный андроид сам себя бэкапит в облако, их не успокаивает. Им надо "на мой жёсткий диск", и всё тут! В первую очередь эта заметка для них. Впрочем, бэкап на "большого брата" (ББ) может пригодиться и в некоторых других случаях, например, для установки нестандартной прошивки (custom ROM).
 Итак, начнём-с.
  1. Во-первых, получим список установленных программ.
    adb shell pm list packages > 0pm.list
  2. Теперь забэкапим каждую программу по отдельности.
    for p in `cat 0pm.list | tr -d '\r' | sed 's|^package:||'`; do
      adb backup -f $p.ab $p ; sleep 1 ;
    done
    Впрочем, можно забэкапить всё скопом в один файл, но тогда восстановление будет возможно тоже только всего вместе за раз.
В результате должен получиться набор из списка программ и бэкапов каждой установленной программы. Полагаю, не нужно объяснять, что в этих бэкапах находится и ваша конфиденциальная информация, пароли например? ;)

Добавлено Чт авг  1 17:08:33 ALMT 2013:

Задание "для первоклассников": также скопировать все установленные apk.
Решение:
for f in `adb shell ls /data/app | tr -d '\r'`; do
  adb pull /data/app/$f ;
done
.