Тільки для ознайомлення з іншими, ось деякий фон у форматі файлу .ab.
Файл резервного копіювання Android (* .ab) - це стислий файл TAR . Він стискається за допомогою алгоритму DEFLATE . Крім того, може використовуватися шифрування AES . Це визначається під час створення резервної копії, якщо ви вводите пароль, тоді резервна копія зашифрована, інакше; шифрування немає, воно лише стиснене.
HEADER файлу трохи відрізняється від звичайного архіву DEFLATE. Він містить інформацію про резервну копію і виглядає наступним чином:
ANDROID BACKUP
1
1
none
Перший рядок - це лінія "Магія" . Наступний рядок - версія формату файлів резервного копіювання Android. Наступний рядок - булева (вірна чи помилкова, 1 або 0), яка вказує, чи файл стискається. Останній рядок - тип шифрування. У цьому прикладі не використовується жодне шифрування. Якби був пароль, у рядку було б написано "AES-256". Після цього шифрується шифр. Якщо немає пароля, тоді запускається ВІДКРИТИЙ «архів».
Він стискається за допомогою Java Deflater . Це, з точки зору розробників, викликає проблеми, якщо ви хочете використовувати що-небудь крім Java для його витягу. Я не зміг знайти нічого, що може спустити це за допомогою того ж алгоритму, хоча все, що я знайшов (як, наприклад, C #), повинно слідувати "SPEC".
Зважаючи на це, існує проект з відкритим кодом за ліцензією Apache 2.0, написаний Миколою Еленковим, який дозволить вам витягнути .ab у файл tar.
Використання:
java -jar abe.jar unpack <backup.ab> <backup.tar> <password>
Якщо ви не знаєте, як реально використовувати це (що виходить за рамки цієї відповіді), наступна версія Droid Explorer v0.8.8.7 ( доступна тут ) дозволить вам зробити саме це та інше прямо з Провідника. Ви можете прочитати більше про функції в моєму блозі (так, я знаю, безсоромна плагіна. Я це роблю, коли це відповідає питанням)