Mój telefon nie ma wystarczającej ilości miejsca do przechowywania plików kopii zapasowych, więc zastanawiam się, czy istnieje sposób na wykonanie kopii zapasowej i przywracanie Nandroid za pomocą plików przechowywanych na komputerze.
22
Odpowiedzi:
Z powodu podobnych frustracji napisałem kilka narzędzi do tego właśnie celu: https://github.com/dlenski/tetherback
Narzędzia te są napisane w języku Python i służą
adb
do tworzenia kopii zapasowych w stylu nandroid (surowe obrazy partycjidd if=/dev/block/mmcblk0pXX
) lub TWRP (mieszanka surowych obrazów partycji i archiwów tar dlaext4
partycji).Próbują zbadać poprawny układ partycji i pokazać postęp tworzenia kopii zapasowej:
To praca w toku - opinie są mile widziane!
Wymagania:
progressbar
pakiet jest potrzebny (pip install progressbar
powinien to zrobić)adb
Narzędzia wiersza polecenia (Android Debug Bridge)EDYCJA: Wygląda na to, że większość ruchu do https://github.com/dlenski/tetherback pochodzi z tego wątku. Wczesne problemy z uszkodzeniem danych opisane w poniższych komentarzach zostały rozwiązane; tetherback obejmuje teraz bardzo silne kontrole przeciwko korupcji.
źródło
gzip
, modyfikując L46 , ale wątpię, że to w rzeczywistości problem. Czy korzystasz z systemu Linux lub Windows? Niestety, pod Windows adb zmienia znaki CRLF , co oznacza, że nie można przesłać przez niego obrazu binarnego przy użyciu techniki, której używam. W razie potrzeby mogę napisać obejście tego problemu.Wątek na temat twórców XDA opisuje, jak wykonać kopię zapasową nandroid bezpośrednio na komputerze bez użycia karty SD . Oczywiście działa tylko na zrootowanych urządzeniach. Dalsze wymagania obejmują system operacyjny Posix, taki jak Linux / MacOS (użytkownicy systemu Windows mogą to emulować za pomocą Cygwin), i ADB (czyli albo cały SDK, albo przynajmniej minimalna instalacja ). Co więcej,
busybox
musi być dostępny na urządzeniu i aktywowane debugowanie USB .W artykule opisano krok po kroku polecenia potrzebne do utworzenia kopii zapasowej Nandroid. Zasadniczo używa dd za pośrednictwem nazwanego potoku do tworzenia kopii blokowych partycji urządzenia - czym w zasadzie jest kopia zapasowa nandroid .
źródło
Zauważyłem, że (jeśli masz już skonfigurowany ADB, Twój telefon jest zrootowany i pracujesz na systemie Linux lub podobnym), możliwe jest zrzucenie zawartości partycji za pomocą jednego linijki:
Jest to to samo, co opisano w wątku XDA do pobierania zawartości pamięci flash „bit po bicie”, z wyjątkiem tańca bez netcata i potoków (które, jak sądzę, mogą być potrzebne lub nie zależą od okoliczności). Oczywiście podczas kopiowania danych nie należy montować żadnej partycji w pamięci flash (tzn. Zrobić to z odzyskiwania, podczas gdy
adb mount
nie wymieniono żadnych zamontowanych partycji), w przeciwnym razie ryzykujesz niespójną kopię zapasową w miejscach, w których Android zdecydował się zapisać dane na czas tworzenia kopii zapasowej.Pamiętaj, że w celu przywrócenia prostego:
nie będzie działać, ponieważ
adb shell
nie obsługuje instalacji rurowej. Ale jeśli w jakiś sposób możesz zrobić todd of=/dev/block/mmcblk0
na samym urządzeniu, przypuszczam, że powinno ono przywrócić kopię zapasową. Ale nie ufaj mi w tym, może równie dobrze zepsuć twój telefon. Jeszcze tego nie testowałem; do tej pory potrzebowałem tylko odzyskać jedną partycję idd
było to w porządku.źródło
Settings > Developer> tap build 7 times
)Settings > Developer > USB Debugging
)użyj odzyskiwania, aby uniknąć ograniczeń systemu operacyjnego
./adb reboot recovery
zrób to
./adb pull /dev/block/mmcblk0 mmcblk0.img
źródło