Nandroid doğrudan bilgisayara yedekleme yapmak ve daha sonra doğrudan pc'den geri yüklemek için bir yolu var mı?


22

Telefonumda yedek dosyaları depolamak için yeterli alan yok bu yüzden Nandroid yedeklemesi yapmanın ve PC'de depolanan dosyalarla geri yüklemenin bir yolu olup olmadığını merak ediyorum.


1
Bunu yapmanın bir yolu olduğundan şüpheliyim. Harici bir SD karta yedekleme yapıp daha sonra bilgisayara aktarmayı denemelisiniz. Veya bilgisayarınıza yeterli dosyayı taşıyın, böylece telefonunuzda yedek oluşturup geri yükleyebilir ve işiniz bittiğinde dosyaları geri taşıyabilirsiniz.
VarnerBeast14

Yanıtlar:


14

Benzer hayal kırıklıkları nedeniyle tam olarak bu amaç için bazı araçlar yazdım : https://github.com/dlenski/tetherback

Bu araçlar Python'da yazılmıştır ve adbnandroid tarzı yedeklemeler (gelen ham bölüm görüntüleri dd if=/dev/block/mmcblk0pXX) veya TWRP stili yedeklemeler (ham bölüm görüntüleri ve tarball'ların karışımı ext4) oluşturmak için kullanılır.

Doğru bölüm düzenini araştırmaya çalışırlar ve yedeklemenin ilerlemesini gösterirler:

$ ./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  

Bu devam eden bir çalışmadır - geribildirim çok açığız!

Gereksinimler:

  • Python 3.3+ Linux / OSX / Windows altında.
    • progressbarpaket gereklidir ( pip install progressbaryapmalı)
  • adb (Android Hata Ayıklama Köprüsü) komut satırı araçları
  • TWRP kurtarma yüklü olan köklü Android cihazı .
    • Köklü bir aygıt ve özel bir kurtarma gereksinimi asla ortadan kalkmaz : kök erişiminiz yoksa, aygıtınızın belleğinin tüm içeriğini kopyalamak için hiçbir yolunuz yoktur, bu kadar basit.

EDIT: https://github.com/dlenski/tetherback için trafiğin çoğu gibi görünüyor bu konuya geliyor. Aşağıdaki yorumlarda açıklanan veri bozulması ile ilgili erken sorunların tümü çözüldü; Tetherback şimdi yolsuzluğa karşı çok güçlü kontroller içeriyor.


Öncelikle programı yaptığınız için teşekkürler. Ne zaman ne zaman nandroid.py kullanmalıyım, system.img.gz ve userdata.img.gz gibi daha büyük dosyalar gzip'i sıkıştırırken başarısız oluyorlarsa iyi çalışıyor gibi görünüyor. "Crc başarısız" ve img.gz dosyasının boyutunun 1 / 5'i kadar bir img dosyası üretir. Bununla birlikte, bootloader.img.gz sıkıştırması iyi olur. Onların yine de, gzipping'u devre dışı bırakabileceğini mi yoksa bozuk dosyayı düzeltmenin başka bir yolunu biliyor musun?
I'm_With_Stupid

1
I'm_With_Stupid @, devre dışı bırakabilir gzipdeğiştirerek L46 , ama bu aslında bir sorundur şüpheliyim. Linux mu yoksa Windows mu kullanıyorsunuz? Ne yazık ki, Windows adb altında CRLF karakterlerini düzenler , bu, kullandığım tekniği kullanarak bir ikili görüntü aktarmanın mümkün olmadığı anlamına gelir. Gerekirse bunun için bir geçici çözüm yazabilirim.
Dan

Ayrıca, daha fazla ayrıntı sağlayabiliyorsanız, lütfen onu Github deposunda Yeni Sayı olarak ekleyin, çünkü takip edilmesini kolaylaştırır!
Dan

1
Sorunlarımı yeni konular olarak ekledim, bu yüzden muhtemelen konuşmamıza orada devam etmeliyiz .
I'm_With_Stupid

8

XDA geliştiricilerine ait bir iş parçacığında, bir nandroid sdcard kullanmadan doğrudan bilgisayarınıza nasıl yedekleme yapılacağı açıklanmaktadır . Tabii ki sadece köklü cihazlarda çalışır. Diğer gereksinimler arasında Linux / MacOS gibi bir Posix OS (Windows kullanıcıları bunu Cygwin ile taklit edebilir) ve ADB (yani tüm SDK'yı ya da en azından minimum bir kurulumu ) içerir. Ayrıca, busyboxcihazda mevcut olması ve USB hata ayıklamanın etkin olması gerekir .

Makalede, bir Nandroid yedeği oluşturmak için gereken komutlar adım adım anlatılmaktadır. Temel olarak, cihazınızın bölümlerinin blok düzeyinde bir kopyasını oluşturmak için adlandırılmış bir kanal üzerinden dd kullanıyor - temel olarak bir .


2
İşaretçi için teşekkürler, @Hudayfah! Ancak sadece link gönderileri soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantıyı sağlamak tercih edilir. Aksi takdirde, bağlantının ölmesi durumunda cevap işe yaramaz hale gelir. Yazınızı, nasıl göründüğünü göstermek için, gelecekteki yayınlar konusunda size yardımcı olmak için (ki umarım yapacağınız :), topluluğumuza sıcak bir karşılama dahil!
Izzy

Ayrıca, yalnızca fastboot'a erişebildiğinizi veya kurtarma işleminde adb yapabileceğinizi varsayarsak, bu yedeği geri yüklemeyi nasıl başardınız?
jiggunjer

neden köklü olmak zorunda?
user4951

2

(ADB'yi zaten yapılandırdıysanız, telefonunuzun çalıştığını ve bir Linux sistemi veya benzerleri üzerinde çalıştığınızı), bölüm içeriğini tek bir astarla dökmenin mümkün olduğunu fark ettim:

adb pull /dev/block/mmcblk0

Bu, netcat ve borularla dans edilmediği sürece (şartlara bağlı olarak gerekebilir veya gerekmeyebilir), bit-bit flash belleğin bit içeriğini almak için XDA iş parçasında açıklananlarla aynıdır. Açıkçası, verileri kopyalarken flash bellekte hiçbir bölüm monte edilmemelidir (örneğin adb mount, herhangi bir bölümü listelemeden kurtarma işleminden yapın ), aksi halde Android'in veri yazmaya karar verdiği yerlerde tutarsız bir yedekleme riskiyle karşı karşıya kalırsınız. yedekleme zamanı.

Basit bir geri yükleme için:

pv mmcblk0 | adb shell dd of=/dev/block/mmcblk0

değil iş olarak edecektir adb shellboru desteklemez. Ancak bir şekilde dd of=/dev/block/mmcblk0aygıtın kendisinde bir şey yapabilirseniz , yedeğinizi geri yüklemesi gerektiğini düşünüyorum. Bu konuda bana güvenme, telefonunu kirletebilir. Henüz test etmedim; Şimdiye kadar sadece tek bir bölümü kurtarmam gerekiyordu ve ddbunun için iyiydim.


2
  1. Geliştirici Seçeneklerini Göster ( Settings > Developer> tap build 7 times)
  2. USB Hata Ayıklamayı Etkinleştir ( Settings > Developer > USB Debugging)
  3. İşletim sistemi kök sınırlamalarını önlemek için kurtarma kullanın

    ./adb reboot recovery

  4. çekme yapmak

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


Böyle bir yedeği nasıl geri yüklerim?
Suma

Adb push ile @Suma (veya img ve ilgi dosyaları dışarı kopyalamak)
user1133275

Android, dahili depolama alanının tamamına kolayca erişmenize izin verecek mi?
Melab
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.