- PVSM.RU - https://www.pvsm.ru -
Здравствуй, Хабрахабр.
Так случилось, что мне понадобилось создать полную копию Android устройства, в котором полностью отсутствовали обычно используемые для этого средства. Поиски меня привели на форум XDA, где и была найдена данная всеобъемлющая инструкция [1], которая пришлась как нельзя кстати и которой я решил поделиться с вами.
В статье имеются мои комментарии, так как применял эту инструкцию для создания backup'a планшета Teclast x98 3g.
Это руководство предназначено для помощи в создании полной резервной копии вашего устройства (вся память со всеми разделами) или одного раздела (в том числе sdcards и т.д.) непосредственно на компьютер:
Данная инструкция применима, когда аппарат включен или находится в ClockworkMod Recovery (в данных случаях ADB будет работать, в режиме Fastboot данная инструкция не применима). Если дополнительно не будет никаких ремарок, все команды предназначены для использования в Windows. То же касается и Linux с Unix.
Теперь вам необходимо определить разделы и блоки на вашем устройстве, копию которых вы хотите сделать. Для копирования одного раздела можно использовать команды tar или dd, в то время как для копирования всей памяти нужно использовать только dd.
На Teclast x98 3g для определения разделов используются две команды: cat proc/partitions и mount.
179 10 30535680 mmcblk0
179 11 229376 mmcblk0p1
179 12 32768 mmcblk0p2
179 13 32768 mmcblk0p3
179 14 131072 mmcblk0p4
179 15 131072 mmcblk0p5
179 16 131072 mmcblk0p6
179 17 786432 mmcblk0p7
179 18 262144 mmcblk0p8
179 19 1048576 mmcblk0p9
259 0 27742188 mmcblk0p10
179 30 2048 mmcblk0boot1
179 20 2048 mmcblk0boot0
179 0 30657536 mmcblk1
179 1 30657504 mmcblk1p1
Обычно на Android весь блок, содержащий все разделы, расположен в /dev/block/mmcblk0, а все остальные разделы являются его подразделами. Вы можете установить parted with GPT support [6], чтобы просмотреть информацию о всех разделах.
Вся память телефона -> /dev/block/mmcblk0 (хотя, на некоторых телефонах, это может быть и sdcard).
Разделы -> все зависит от конкретного устройства. Обычно в /dev/block/platform/dw_mmc/by-name/ перечислены все разделы для данного устройства.
Подключите телефон с включенным режимом отладки по USB к компьютеру.
Что касается Teclast x98 3g и того случая, когда аппарат не загружается (bootloop). Очень важно, чтобы до всего этого случившегося был включен режим отладки по USB. Выключите полностью планшет, отсоедините все кабели, дайте пару секунд на «отдых» и подключите кабель от компьютера к планшету, должна появиться такая большая белая батарея, которая будет показывать, что идет процесс зарядки, вот только тогда, даже в выключенном состоянии можно будет работать с аппаратом через терминал и adb.
Запустите Cygwin Терминал и введите (при необходимости замените mmcblk0):
adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0
Вы увидите мигающий курсор на следующей строке слева. На данный момент аппарат ожидает передачи Блока по сети.
Откройте другой Cygwin Терминал и введите:
adb forward tcp:5555 tcp:5555
cd /path/to/store/the/backup
nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw
Вы увидите, как начнет увеличиваться размер файла до тех пор, пока полностью не скопируется весь выбранный вами Блок. Теперь у вас имеется полный бекап аппарата в raw формате. Вы можете увидеть всё содержимое в скопированном Блоке с помощью gptfdisk, доступного для Windows, Linux и других ОС (официальный сайт [7] или SourceForge [8]). Аналогичное вы сможете сделать при помощи ClockworkMod Recovery, но первоначально необходимо смонтировать Раздел /system, так как в BusyBox, входящем в ClockworkMod, отсутствует netcat, потому вам необходимо использовать netcat из /system раздела Вашего устройства.
При помощи определенных инструментов в Linux вы можете изменять и извлекать необходимые Разделы из всего Блока.
Вы можете использовать ADB через WiFi, аналогично как и Wi-Fi ADB [9].
Ссылка на автора: Nandroid directly to computer w/o sdcard [10].
Необходимо:
Правилом хорошего тона будет копирование myfifo в /cache, а не в /data, так как можно случайно затереть важные данные в случае использования raw данных для восстановления.
Запустите Cygwin Терминал и введите:
adb shell
su
mkfifo /cache/myfifo
ftpput -v -u user -p pass -P 40 COMPUTER_IP block.raw /cache/myfifo
Откройте другой Cygwin Терминал и введите:
adb shell
su
dd if=/dev/block/mmcblk0p12 of=/cache/myfifo
Некоторые замечания:
Для этого необходимо отключить все сетевые соединения на компьютере, кроме того, с помощью которого вы будете осуществлять процесс копирования.
Как только соедините компьютер с Android устройством, вы сможете просмотреть IP компьютера и IP устройства в «Свойствах соединения». IP — будет являться IP самого компьютера, а Gateway будет содержать IP Android устройства.
Процесс абсолютно аналогичный передачи данных через Wi-Fi, единственное, скорость передачи данных будет значительно выше, потому что компьютер и Android устройство соединены непосредственно, вместо того, чтобы использовать роутер в качестве шлюза. В данном случае шлюзом будет само Android устройство. USB-модем имеет самый высокий уровень передачи данных.
Все аналогично тому, что было описано выше, только необходимо заменить mmcblk0 на соответствующий Раздел. Вы можете использовать в данном конкретном случае ПО для просмотра содержимого скопированного Раздела. В зависимости от файловой системы: DiskInternals Linux Reader [11], Ext2Read [12], Ext2 File System Driver for Windows [13], Ext4Explore [14], плагин для Total Commander [15] и ImDisk Virtual Disk Driver [16]. Можно также использовать ПО для восстановления данных с отдельных разделов, например, Recuva [17] совместно с VHD Tool [18] или инструменты командной строки, включенные в сами операционные системы.
В данном случае необходим уже смонтированный раздел. (Как найти разделы на Teclast x98 3g я описывал выше.)
Чтобы увидеть список всех смонтированных разделов в Cygwin Терминале введите:
adb shell mount
Теперь вы должны знать, где и какой раздел монтируется, например, Firmware смонтирована в /system, которая по сути является ROM.
В данном случае вам придется открыть три Cygwin Терминала, вследствие ограничений, накладываемых самим Android:
Откройте первый Cygwin Терминал и создайте FIFO, например, в /cach, и перенаправте tar в него:
adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox mkfifo /cache/myfifo
/system/xbin/busybox tar -cvf /cache/myfifo /system
Вы должны это сделать потому, что перенаправление tar в stdout (c "-") не работает на Android и портит сохраняемый файл.
Откройте второй Cygwin Терминал:
adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox cat /cache/myfifo
Откройте третий Cygwin Терминал:
adb forward tcp:5555 tcp:5555
cd /path/to/store/the/backup
nc 127.0.0.1 5555 | pv -i 0.5 > system.tar
Полученный tar файл вы можете просмотреть с помощью Winrar, Total Commander, PeaZip и т.д. Обратите внимание, вы не должны извлекать файлы или редактировать их, так как tar формат сохраняет данные доступа и владельца для каждого файла, которые исчезают при извлечении в FAT / NTFS разделы.
Данный материал был взят с XDA [1].
Автор:
Источник [19]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/android/69316
Ссылки в тексте:
[1] всеобъемлющая инструкция: http://forum.xda-developers.com/showthread.php?t=1818321
[2] Cygwin: http://www.cygwin.com/
[3] здесь: http://www.theandroidsoul.com/how-to-install-adb-on-windows-full-guide/
[4] здесь: http://forum.xda-developers.com/showthread.php?t=1387527
[5] Path Manager: http://www.addictivetips.com/windows-tips/easily-add-delete-edit-path-variable-entries-path-manager/
[6] parted with GPT support: https://github.com/CyanogenMod/android_bootable_recovery/blob/cm-9.0.0/utilities/parted
[7] официальный сайт: http://www.rodsbooks.com/gdisk/
[8] SourceForge: https://sourceforge.net/projects/gptfdisk/
[9] Wi-Fi ADB: https://play.google.com/store/apps/details?id=com.ttxapps.wifiadb
[10] Nandroid directly to computer w/o sdcard: http://forum.xda-developers.com/showpost.php?p=27793062&postcount=17
[11] DiskInternals Linux Reader: http://www.diskinternals.com/linux-reader/
[12] Ext2Read: https://sourceforge.net/projects/ext2read/
[13] Ext2 File System Driver for Windows: https://sourceforge.net/projects/ext2fsd/
[14] Ext4Explore: https://sourceforge.net/projects/ext4explore
[15] плагин для Total Commander: http://www.diskinternals.com/reader-for-tc/
[16] ImDisk Virtual Disk Driver: http://www.ltr-data.se/opencode.html/#ImDisk
[17] Recuva: http://www.piriform.com/recuva
[18] VHD Tool: http://archive.msdn.microsoft.com/vhdtool
[19] Источник: http://habrahabr.ru/post/236397/
Нажмите здесь для печати.