Скопировать полный образ диска с Android на компьютер

У меня есть смартфон без возможности вставки SD-карты. Я хотел бы сделать дамп самого большого раздела (потому что я потерял файлы, и я хотел бы использовать дамп для их восстановления).

Разделение составляет 10 ГБ.

Я искал команду ADB для pull, используя dd, но ничего...

Я попытался использовать Carliv touch recovery с помощью 32-битного USB-ключа OTG, но USB-ключ не монтировался... Тогда я не мог использовать "dd" прямо на телефоне, используя Aroma file manager и эмуляцию терминала.

Спасибо!

Ответ 1

Как сказано в комментарии, adb pull /dev/block/mmcblk0 mmcblk0.img работал у меня. "DD-образ" - это всего лишь двоичный файл изображения устройства.

Ответ 2

Вы хотите скопировать диск с устройства Android на компьютер (желательно на самый быстрый диск) для более быстрого и без потерь анализа/восстановления.

Это краткое пошаговое руководство в окнах (linux: прокрутка вниз) для достижения этого с помощью инструмента linux dd, предназначенного для точных побитовых копий данных. Кредиты идут в Scandium на xda для кода, см. Его пост для более подробной информации.

Предпосылки

Windows:

  1. установить cygwin. Во время установки добавьте пакеты netcat (под Net) и pv (под util-linux); стандартная установка находится в C:\, поэтому заранее убедитесь, что у вас достаточно места на диске;
  2. установить adb например через Android Studio. Обязательно добавьте исполняемый файл adb.exe в переменную path, чтобы получить к нему правильный доступ (руководство).

  3. Откройте две консоли/терминалы Cygwin (одна для отправки данных, другая для получения данных) и введите данные в один из терминалов:

    # terminal 1
    adb forward tcp:5555 tcp:5555   # forward data over tcp connection
    adb shell                       # open a connection
    su                              # gain root access
    BUSYBOX=/system/xbin/busybox    # default location for most bb installers

    # note: adapt the variable 'BUSYBOX' to point to your install directory
    #       the TWRP default is 'BUSYBOX=/sbin/busybox' (in case of bricked device)
  1. Решите, какой раздел копировать, обычно это раздел /dev/block/mmcblk0, содержащий данные, которые вы обычно хотели бы получить.

  2. В следующем коде измените имя раздела в соответствии с 4. и быстро один за другим введите в terminal 1 и terminal 2:

    # terminal 1
    $BUSYBOX nc -l -p 5555 -e $BUSYBOX dd if=/dev/block/mmcblk0
    # terminal 2
    nc 127.0.0.1 5555 | pv -i 0.5 > $HOME/mmcblk0.raw    

Это сохраняет раздел в домашнем каталоге cygwin (в двух словах: он отправляет/получает выходные данные dd через соединение tcp)


Посмотрите на файлы/анализ

  • Для монтирования раздела в Windows вы можете использовать (OSFmount).

  • Для анализа файлов я рекомендую Active @Undelete, но существует множество альтернатив. С помощью этой программы вы также можете напрямую загрузить все разделы из файла (без его монтирования, поэтому шаг 5 в этом случае является избыточным).


Руководство для пользователей GNU/Linux: установите netcat и pv (шаг 1), используйте утилиту Диски для анализа

Ответ 3

Запуск от имени пользователя root:

adb root

Используйте dd для вывода содержимого в stdout и записи файла на вашем компьютере:

adb shell 'dd if=/dev/block/platform/msm_sdcc.1/by-name/XXXXXX 2>/dev/null' > XXXXXX.img

Или все (см. cat/proc/partition)

adb shell 'dd if=/dev/block/mmcblk0 2>/dev/null' > mmcblk0.img