Поиск по сайту

Как снять дамп разделов system, kernel, data, zImage на Андроид

вкл. . Опубликовано в Android - Общее


Как снять дамп разделов system, kernel, data, zImage на Андроид

Как снять дамп разделов system, kernel, data, zImage на Андроид. Многие начинающие ромоделы Android или гики не знают как снять образ с Android. В данной статье подробно рассказано как узнать нужные вам /dev/block , как снять дампы с них, разобрать их или в последствие восстановиться.

Для тех кто не много не понял о чем речь. В данной статье будет подробно рассказано как снять текущее состояние с разделов Android — system, data, efs, preload, cache или выдрать ядро (zImage / boot.img). С какой  целью расписываться здесь не будет , так как это уже другая история.

Необходимо для снятия образа

1. Скачайте и установите на ПК фирменную программу сайта ADB RUN (если в курсе, что такое adb или установлено Android SDK, то устанавливать не нужно)

2. Android смартфон или планшет должен быть c Root правами

 Подробно о Root Android:

3. Активировать Отладка по USB

4. Установить драйвера если вдруг не установлены

5. MicroUSB кабель

Инструкция как снять образ с Андроид

1. Подключите устройство Android к ПК

2. Запустите программу ADB RUN и перейдите в меню  (7) Manual Command > (1) Adb

Узнаем /dev/block разделов

Что такое /dev/block/?  /dev/block/  — это «диски» на которых находятся разделы system, data, cache

Вариант 1

Данный способ самый простой, но к сожалению узнать где находиться ядро не возможно.

Для того чтобы узнать  /dev/block/ вводим команду

adb shell mount

Получаем список где видим список с нашими разделами и к каким /dev/block/ они примонтированы

Как снять дамп разделов system, kernel, data, zImage на Андроид

Вариант 2

Данный способ более сложный, но за то вы точно будете знать абсолютно все ваши разделы!

Вначале лучше воспользоваться файловым менеджером Android с Root доступом например как:

Root Browser

Root Explorer

После того как установили перейдите по пути

/dev/block/platform/

Далее вам нужно найти папку by-name, она находиться в одной из под папок в platform

Например для некоторых устройств Samsung это выглядит так:

/dev/block/platform/dw_mmc/by-name

или

/dev/block/platform/dw_mmc.0/by-name

или

/dev/block/platform/msm_sdcc.1/by-name

Для устройств на Tegra 3:

/dev/block/platform/sdhci-tegra.3/by-name

Для устройств на Omap:

/dev/block/platform/omap/omap_hsmmc.0/by-name

Для некоторых Mediatek:

/dev/block/platform/sdhci.1/by-name

или

/dev/block/platform/emmc/by-name

Для некоторых устройств Sony:

/dev/block/platform/msm_sdcc.1/by-name

После того как выяснили где находиться папка by-name в программу ADB RUN набираем команду

 adb shell ls -l /dev/block/platform/xxxxxxxx/by-name

где xxxxxxxx - точный путь до папки by-name

Как снять дамп разделов system, kernel, data, zImage на Андроид

[Обновление]

В новых версиях программы ADB RUN (с версии 3.4x.xx) узнать все разделы стало гораздо проще! Все что вам необходимо это:

  • запустить ADB RUN
  • Перейти в раздел  Memory and Partitions -> Partitions /dev/block/
  • Попробовать один из методов узнать ваши блоки

Как снять дамп разделов system, kernel, data, zImage на Андроид

Снятие образа Android с выбранного раздела

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

1. Для того чтобы снять образ необходимо в ADB RUN зайти в меню  (7) Manual Command > (1) Adb

2. Залогиниться в терминале под Root -ом

 adb shell su

Как снять дамп разделов system, kernel, data, zImage на Андроид

3. Набрать команду для снятия дампа

dd if=/dev/block/XXXXXXXXX of=/sdcard/NAME_razdel.img

где XXXXXXXXX - раздел с которого вы снимаете

где NAME_razdel.img — имя которое вы присвоите при снятие образа с выборного раздела (давать имена лучше также как они указаны, если data то data)

Процедура снятия может занять определенное время, от 1 минуты до 15, в это время лучше не дергать ваш Android!

[Обновление]

В новых версиях ADB RUN  появилась возможность быстро снять образ каждый раз не набирая столь длинные команды. Все что вам нужно это знать имя блока.

Когда вы уже знаете необходимый блок перейдите в ADB RUN:

  • С главного меню в раздел Backup -> Backup dev/block
  • Выбираем BackupКак снять дамп разделов system, kernel, data, zImage на Андроид
  • Указываем последние данные с блока (данные после block/)
  • Ждем пока снимется образ (не трогать Android)

Восстановление раздела из созданного образа Android (дампа раздела)

Когда вам будет необходимо выполнить восстановление из ранее созданного образа, нужно сделать вот, что:

Убедитесь что образ все еще находиться в разделе /sdcard — так как бекап создавался именно в этот раздел, либо переместите его обратно.

Прописать следующую команду:

adb shell su
adb shell dd if=/sdcard/NAME_razdel.img of=/dev/block/XXXXXXXXX

где XXXXXXXXX - раздел на которой вы заливаете образ

где NAME_razdel.img — имя образа выборного раздела (давать имена лучше также как они указаны, если data то data)

Процедура восстановления может занять определенное время, от 1 минуты до 15, в это время лучше не дергать ваш Android!

[Обновление]

Особенно актуально для тех кто не удачно выполнил S-OFF (или планирует выполнить) или неудачно прошил кастомную прошивку, либо после не удачных экспериментов! 

Для устройств Sony, HTC, Xiaomi и других устройств на которых есть режим Fastboot

могут выполнить восстановление следующим образом после ранее обязательного снятия boot.img (zImage) и system.img (factoryfs.img) обязательно скопируйте данные файлы на ПК:

1. Переведите Android в режим fastboot (bootloader) и подключить к ПК

2. Файлы boot.img и system.img переместить в папку C:/adb/progbin

3. Запустить ADB RUN и перейти в пункт Manual -> ADB

4. Набрать следующие команды (подробно о Fastboot)

 fastboot flash boot boot.img
fastboot flash system system.img
fastboot reboot

Система будет восстановлена в исходное состояние! Можете продолжать эксперименты!