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.

Menusuk
sumber
1
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.
VarnerBeast14

Jawaban:

14

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 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:

$ ./twrp_backup.py
Device reports TWRP kernel (3.4.0-bricked-hammerhead-twrp-g7b77eb4).
Reading partition map for mmcblk0 (29 partitions)...
  partition map: 100% Time: 0:00:03                                                                                                                                                                                
Saving TWRP backup images in twrp-backup-2016-03-17--18-53-12/ ...
Saving partition boot (mmcblk0p19), 22 MiB uncompressed...
  boot.emmc.win: 100% Time: 0:00:05   3.10 MB/s                                                                                                                                                                    
Saving tarball of mmcblk0p25 (mounted at /system), 1024 MiB uncompressed...
  system.ext4.win:   2% ETA:  0:06:29   2.69 MB/s  

Ini adalah pekerjaan yang sedang berjalan — umpan balik sangat disambut baik!

Persyaratan:

  • Python 3.3+ di bawah Linux / OSX / Windows.
    • progressbarpaket diperlukan ( pip install progressbarharus melakukannya)
  • adb (Android Debug Bridge) alat baris perintah
  • Perangkat Android yang di- rooting dengan pemulihan TWRP diinstal.
    • 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.

Dan
sumber
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 .

Izzy
sumber
2
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.

liori
sumber
2
  1. Tampilkan Opsi Pengembang ( Settings > Developer> tap build 7 times)
  2. Aktifkan USB Debugging ( Settings > Developer > USB Debugging)
  3. gunakan pemulihan untuk menghindari keterbatasan root OS

    ./adb reboot recovery

  4. lakukan tarikan

    ./adb pull /dev/block/mmcblk0 mmcblk0.img

pengguna1133275
sumber
Bagaimana saya mengembalikan cadangan seperti itu?
Suma
@Suma dengan adb push (atau pasang img dan salin file yang diinginkan)
user1133275
Android akan memungkinkan Anda mengakses keseluruhan penyimpanan internal dengan mudah?
Melab