Có cách nào để giải nén dữ liệu của ứng dụng từ 1 bản sao lưu đầy đủ( được sao lưu bằng “adb backup”)?

Tui vừa mới sao lưu Nexus 7 bằng adb backup để sao lưu lại tất cả các file vào 1 bản mã hóa. Tui biết rằng có thể khôi phục 1 lại 1 sao lưu với adbb restore, nhưng nó sẽ xóa sạch các dữ liệu hiện tại trên điện thoại.

Vậy nên có ai biết cách nào để giản nén dữ liệu của ứng dụng từ 1 file sao lưu đã mã hóa không? Chỉ cho tui với

 

Droid-biết-chút Đã hỏi vào Tháng Tám 19, 2016 Tổng hợp.
Bình luận
Chấp nhận

Để tiện cho các bạn khác tham khảo, dưới đây là 1 số kiến thức nền về định dạng file .ab:

File Android Backup (*.ab) là 1 file nén dạng TAR.  Nó được nén bằng cách dùng thuật toán DEFLATE và có thể dùng mã hóa AES. Điều này giải thích cho việc khi bạn tạo 1 file sao lưu ( backup), nếu bạn gõ mật khẩu thì file sao lưu đó sẽ được mã hóa, nếu không, nó sẽ không được mã hóa mà chỉ được nén.

Phần đầu của file này có hơi khác biệt so với các file DEFLATE bình thường. Nó sẽ bao gồm thông tin về bản sao lưu và sẽ giống như dưới đây :

ANDROID BACKUP
1
1
none

Dòng đầu tiên gọi là dòng ‘Magic’. Dòng tiếp theo là phiên bản của định dạng file Android Backup. Dòng tiếp theo là 1 boolean ( đúng hoặc sai, 1 hoặc 0) cho biết file đã được nén hay chưa. Dòng cuối là loại mã hóa. Trong VD này không dùng loại mã hóa nào cả. nếu có mật khẩu, dòng đó sẽ là  “AES-256″. Sau đó sẽ là các thuật toán mã hóa. Nếu không có mật khẩu, DEFLATE sẽ bắt đầu luôn.

File được nén bằng cách dùng Java Deflater. Dưới góc độ của các nhà phát triển, việc này sẽ gây ra rất nhiều vấn đề nếu bạn muốn dùng những cách khác bên cạnh Java để giải nén file.

Do đó, có 1 dự án mã nguồn mở, được viết bởi Nikolay Elenkov sẽ giúp bạn giải nén .ab thành 1 file tar.

Sử dụng câu lệnh :

java -jar abe.jar unpack <backup.ab> <backup.tar> <password>

nếu bạn không biết chắc cách làm, phiên bản tiếp theo của Droid Explorer v0.8.8.7 sẽ giúp bạn thực hiện 1 cách chính xác.

Droid-biết-chút Đã trả lời vào Tháng Tám 21, 2016
Bình luận

Hoặc bạn chỉ cần 1 dòng lệnh:

( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 backup.ab ) |  tar xfvz -
Droid-biết-chút Đã trả lời vào Tháng Tám 21, 2016
Bình luận

Đáp án của bạn

Với việc gửi đáp án, bạn đã đồng ý với Chính sách dữ liệuCác điều khoản của chúng tôi.