Saya memiliki smartphone Samsung Galaxy S2 GT-I9100 dengan LineageOS dan TWRP. Setiap minggu saya membuat cadangan dengan perintah berikut:
adb backup -f twrp-20170322.ab --twrp boot data system
Saya juga bisa menggunakan --compress
opsi ini.
Apakah ada cara untuk mengekstrak twrp-20170322.ab
file cadangan dengan alat baris perintah GNU / Linux stardard? Saya juga akan mempertimbangkan untuk menginstal perangkat lunak tambahan jika diperlukan, tetapi harus gratis (seperti dalam kebebasan).
Tautan:
--compress
kapan membuat cadangan, membuat cadangan tidak terkompresi? Dalam kasus terakhir, coba tinggalkanzlib
parameter (atau lakukan sebaliknya dan tentukan--compress
saat membuat cadangan;).openssl
). Tetapi ketika saya mencoba mendaftar isi arsip tar dengan tar -tf twrp-20170320.tar saya mendapatkan: tar: Ini tidak terlihat seperti arsip tar; tar: Melewati header berikutnya; tar: Keluar dengan status kegagalan karena kesalahan sebelumnya--compress
opsiadb
: kompres jauh lebih efisien daripadaxz
. Saya lebih suka menghemat ruang sebanyak mungkin. Tapi itu tidak terkait dengan masalah awal saya.--compress
sana). Dari pernyataan Anda (adb backup …
) saya mengasumsikan format yang sama. Jika Anda hanya menggunakan kompresi berbeda, Anda harus mempertimbangkan itu.openssl
diperlukan untuk mendekripsi cadangan - jadi tanpa itu, Anda tidak mendapatkan valid.tar
. Dari komentar terakhir Anda, saya menganggap Anda harus menggantizlib
dengan bagian yang sesuai untukxz
. Selain itu, saya kehabisan ide, maaf.Saya telah menemukan bahwa
.ab
file yang dihasilkan TWRP berbeda dariadb backup
file normal , sehingga offset berbeda dari.ab
file normal . Saya dapat memeriksa dan mengekstrak file menggunakan (misalnya untuk memeriksa) perintah berikut:Tampaknya, tajuknya mungkin lebih panjang, tetapi harus disejajarkan dengan batas 512-byte, jadi cukup benturkan
skip=
parameter jika tidak dapat menemukannya pada awalnya.Perhatikan bahwa format file didefinisikan dalam twadbstream.h , jika Anda perlu menggali lebih dalam.
sumber
Masalah dengan pendekatan berbasis dd naif adalah bahwa ada metadata setiap begitu sering dalam file. Ini menghasilkan korupsi untuk file dengan panjang yang signifikan.
Saya menulis sebuah alat ekstraksi yang menggunakan twadbstream.h (terima kasih @anarcat) yang telah saya gunakan untuk berhasil memulihkan cadangan multi-filesystem TWRP ADB yang besar (~ 10GB). twrpabx
sumber