Apakah ada cara untuk melakukan backup Nandroid langsung ke pc dan kemudian mengembalikannya langsung dari pc juga?
22
Ponsel saya tidak memiliki cukup ruang untuk menyimpan file cadangan, jadi saya ingin tahu apakah ada cara untuk melakukan backup dan mengembalikan Nandroid dengan file yang disimpan di pc.
Saya ragu ada cara untuk melakukan ini. Anda harus mencoba mencadangkan ke kartu SD eksternal dan kemudian mentransfer ke komputer. Atau cukup pindahkan file yang cukup ke komputer Anda sehingga Anda dapat membuat dan mengembalikan cadangan pada ponsel Anda dan kemudian memindahkan file kembali setelah Anda selesai.
Alat-alat ini ditulis dengan Python dan digunakan adbuntuk membuat cadangan gaya nandroid (gambar partisi mentah dari dd if=/dev/block/mmcblk0pXX) atau cadangan gaya TWRP (campuran gambar partisi mentah dan tarball untuk ext4partisi).
Mereka mencoba menyelidiki tata letak partisi yang benar, dan menunjukkan kemajuan cadangan:
Persyaratan untuk perangkat yang di-rooting dan pemulihan khusus tidak akan pernah hilang : jika Anda tidak memiliki akses root, maka Anda tidak memiliki cara untuk menyalin seluruh isi memori perangkat Anda, sesederhana itu.
EDIT: Sepertinya sebagian besar lalu lintas ke https://github.com/dlenski/tetherback berasal dari utas ini. Masalah awal dengan korupsi data yang dijelaskan dalam komentar di bawah ini semuanya telah diselesaikan; tetherback sekarang termasuk pemeriksaan yang sangat kuat terhadap korupsi.
Pertama terima kasih telah membuat program. Tampaknya berfungsi dengan baik kecuali setiap kali saya menggunakan nandroid.py file yang lebih besar, seperti system.img.gz dan userdata.img.gz, gagal saat mendekompresi gzip. "CRC gagal" dan menghasilkan file img sekitar 1/5 ukuran file img.gz. Namun, bootloader.img.gz dapat mendekompresi dengan baik. Apakah mereka tetap dapat menonaktifkan gzipping atau Anda tahu cara lain untuk memperbaiki file yang rusak?
I'm_With_Stupid
1
@ I'm_With_Stupid, Anda dapat menonaktifkannya gzipdengan memodifikasi L46 , tapi saya ragu ini sebenarnya masalahnya. Apakah Anda menjalankan Linux atau Windows? Sayangnya, di bawah Windows adb merusak karakter CRLF , artinya tidak mungkin untuk mengirimkan gambar biner melalui itu menggunakan teknik yang saya gunakan. Saya bisa menulis solusi untuk ini jika perlu.
Dan
Selain itu, jika Anda dapat memberikan rincian lebih lanjut, silakan tambahkan ini sebagai Edisi Baru di repositori Github karena memudahkan untuk melacak!
Dan
1
Saya menambahkan masalah saya sebagai masalah baru sehingga kami mungkin harus melanjutkan percakapan kami di sana .
I'm_With_Stupid
8
Utas pada pengembang XDA menjelaskan Cara membuat backup nandroid langsung ke komputer Anda tanpa menggunakan sdcard . Tentu saja itu hanya berfungsi pada perangkat yang di-rooting. Persyaratan lebih lanjut termasuk OS Posix seperti Linux / MacOS (pengguna Windows dapat meniru ini dengan Cygwin), dan ADB (jadi seluruh SDK, atau setidaknya instalasi minimal ). Selain itu, busyboxharus tersedia di perangkat, dan USB debugging diaktifkan.
Artikel ini menjelaskan langkah demi langkah perintah yang diperlukan untuk membuat cadangan Nandroid. Pada dasarnya, ini menggunakan dd melalui pipa bernama untuk membuat salinan tingkat blok partisi perangkat Anda - apa sebenarnya cadangan nandroid .
Terima kasih untuk penunjuknya, @Hudayfah! Tetapi sementara posting hanya tautan secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi. Kalau tidak, jawabannya menjadi tidak berguna jika tautannya mati. Saya memperbarui posting Anda sesuai dengan itu untuk menunjukkan bagaimana itu terlihat, untuk membantu Anda mengenai posting mendatang (yang mudah-mudahan akan Anda buat :) Selamat datang di komunitas kami!
Izzy
Juga bagaimana Anda akan mengembalikan cadangan ini, dengan asumsi Anda hanya memiliki akses ke fastboot atau mungkin adb dalam pemulihan?
jiggunjer
mengapa harus di-root?
user4951
2
Saya perhatikan bahwa (jika Anda sudah mengkonfigurasi ADB, telepon Anda di-rooting dan Anda bekerja pada sistem Linux atau sejenisnya) dimungkinkan untuk membuang konten partisi dengan satu baris:
adb pull /dev/block/mmcblk0
Ini sama dengan apa yang dijelaskan dalam utas XDA untuk mendapatkan konten flash memori bit-for-bit, kecuali tanpa tarian dengan netcat dan pipa (yang mungkin diperlukan atau tidak tergantung pada keadaan, saya kira). Jelas tidak ada partisi pada memori flash yang harus dipasang saat menyalin data (mis. Lakukan dari pemulihan sementara adb mounttidak mencantumkan partisi apa pun yang dipasang), jika tidak, Anda akan menghadapi risiko cadangan yang tidak konsisten di tempat-tempat yang Android memutuskan untuk menulis data di waktu cadangan.
Perhatikan bahwa untuk mengembalikan yang sederhana:
pv mmcblk0 | adb shell dd of=/dev/block/mmcblk0
tidak akan berfungsi, karena adb shelltidak mendukung perpipaan. Tetapi jika Anda entah bagaimana dapat melakukan dd of=/dev/block/mmcblk0pada perangkat itu sendiri, saya kira itu harus mengembalikan cadangan Anda. Tapi jangan percaya padaku, ini mungkin juga merusak ponselmu. Saya belum mengujinya; sejauh ini saya hanya perlu memulihkan satu partisi dan ddbaik-baik saja untuk itu.
Jawaban:
Saya telah menulis beberapa alat untuk persis tujuan ini, karena frustrasi yang sama: https://github.com/dlenski/tetherback
Alat-alat ini ditulis dengan Python dan digunakan
adb
untuk membuat cadangan gaya nandroid (gambar partisi mentah daridd if=/dev/block/mmcblk0pXX
) atau cadangan gaya TWRP (campuran gambar partisi mentah dan tarball untukext4
partisi).Mereka mencoba menyelidiki tata letak partisi yang benar, dan menunjukkan kemajuan cadangan:
Ini adalah pekerjaan yang sedang berjalan — umpan balik sangat disambut baik!
Persyaratan:
progressbar
paket diperlukan (pip install progressbar
harus melakukannya)adb
(Android Debug Bridge) alat baris perintahEDIT: Sepertinya sebagian besar lalu lintas ke https://github.com/dlenski/tetherback berasal dari utas ini. Masalah awal dengan korupsi data yang dijelaskan dalam komentar di bawah ini semuanya telah diselesaikan; tetherback sekarang termasuk pemeriksaan yang sangat kuat terhadap korupsi.
sumber
gzip
dengan memodifikasi L46 , tapi saya ragu ini sebenarnya masalahnya. Apakah Anda menjalankan Linux atau Windows? Sayangnya, di bawah Windows adb merusak karakter CRLF , artinya tidak mungkin untuk mengirimkan gambar biner melalui itu menggunakan teknik yang saya gunakan. Saya bisa menulis solusi untuk ini jika perlu.Utas pada pengembang XDA menjelaskan Cara membuat backup nandroid langsung ke komputer Anda tanpa menggunakan sdcard . Tentu saja itu hanya berfungsi pada perangkat yang di-rooting. Persyaratan lebih lanjut termasuk OS Posix seperti Linux / MacOS (pengguna Windows dapat meniru ini dengan Cygwin), dan ADB (jadi seluruh SDK, atau setidaknya instalasi minimal ). Selain itu,
busybox
harus tersedia di perangkat, dan USB debugging diaktifkan.Artikel ini menjelaskan langkah demi langkah perintah yang diperlukan untuk membuat cadangan Nandroid. Pada dasarnya, ini menggunakan dd melalui pipa bernama untuk membuat salinan tingkat blok partisi perangkat Anda - apa sebenarnya cadangan nandroid .
sumber
Saya perhatikan bahwa (jika Anda sudah mengkonfigurasi ADB, telepon Anda di-rooting dan Anda bekerja pada sistem Linux atau sejenisnya) dimungkinkan untuk membuang konten partisi dengan satu baris:
Ini sama dengan apa yang dijelaskan dalam utas XDA untuk mendapatkan konten flash memori bit-for-bit, kecuali tanpa tarian dengan netcat dan pipa (yang mungkin diperlukan atau tidak tergantung pada keadaan, saya kira). Jelas tidak ada partisi pada memori flash yang harus dipasang saat menyalin data (mis. Lakukan dari pemulihan sementara
adb mount
tidak mencantumkan partisi apa pun yang dipasang), jika tidak, Anda akan menghadapi risiko cadangan yang tidak konsisten di tempat-tempat yang Android memutuskan untuk menulis data di waktu cadangan.Perhatikan bahwa untuk mengembalikan yang sederhana:
tidak akan berfungsi, karena
adb shell
tidak mendukung perpipaan. Tetapi jika Anda entah bagaimana dapat melakukandd of=/dev/block/mmcblk0
pada perangkat itu sendiri, saya kira itu harus mengembalikan cadangan Anda. Tapi jangan percaya padaku, ini mungkin juga merusak ponselmu. Saya belum mengujinya; sejauh ini saya hanya perlu memulihkan satu partisi dandd
baik-baik saja untuk itu.sumber
Settings > Developer> tap build 7 times
)Settings > Developer > USB Debugging
)gunakan pemulihan untuk menghindari keterbatasan root OS
./adb reboot recovery
lakukan tarikan
./adb pull /dev/block/mmcblk0 mmcblk0.img
sumber