Образ для снятия дампа разделов eMMC контроллера Wiren Board
Описание
Служебный образ для снятия дампов служебных разделов eMMC, а также сохранения всех файлов контроллера на карту памяти MicroSD.
Также с помощью этого образа можно прошить контроллер релизом wb-2204 с удалением всех данных.
Подготовка карты памяти
Размер карты памяти надо выбрать так, чтобы все файлы на контроллере в неё точно поместились. Чтобы сохранить данные с чистого контроллера достаточно будет 2 Гбайтной карты памяти, рекомендуем взять от 16 Гбайт и выше.
Загрузите образ для своей версии контроллера:
- Wiren Board 8 — wb8_recovery_microsd.img
- Wiren Board 7.x — wb7_recovery_microsd.img
- Wiren Board 6 — в разработке
Далее следуйте инструкциям для своей операционной системы.
Linux
Внимательно выберите имя карты памяти для записи! Если ошибётесь, потеряете информацию на другом диске.
- Откройте консоль в папке с файлом образа.
- Важно правильно определить путь к карте памяти:
- Не вставляя накопитель, выполните команду
lsblk
:
~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk0 179:0 0 7.1G 0 disk |-mmcblk0p1 179:1 0 16M 0 part |-mmcblk0p2 179:2 0 1G 0 part / |-mmcblk0p3 179:3 0 1G 0 part |-mmcblk0p4 179:4 0 1K 0 part |-mmcblk0p5 179:5 0 256M 0 part [SWAP] `-mmcblk0p6 179:6 0 4.8G 0 part /mnt/data mmcblk0boot0 179:8 0 16M 1 disk mmcblk0boot1 179:16 0 16M 1 disk
- Вставьте карту памяти в компьютер и снова выполните команду
lsblk
:
~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 14.5G 0 disk `-sda1 8:1 1 14.5G 0 part mmcblk0 179:0 0 7.1G 0 disk |-mmcblk0p1 179:1 0 16M 0 part |-mmcblk0p2 179:2 0 1G 0 part / |-mmcblk0p3 179:3 0 1G 0 part |-mmcblk0p4 179:4 0 1K 0 part |-mmcblk0p5 179:5 0 256M 0 part [SWAP] `-mmcblk0p6 179:6 0 4.8G 0 part /mnt/data mmcblk0boot0 179:8 0 16M 1 disk mmcblk0boot1 179:16 0 16M 1 disk
- У нас появилось новое устройство с именем
sda
и емкостью 14.5G — это наша карта памяти.
- Не вставляя накопитель, выполните команду
- Запишите образ на карту памяти, указывайте имя устройства без цифр:
sudo dd if=wb7_recovery_microsd.img of=/dev/sda bs=1M conv=fsync status=progress
- в примере мы записываем образ
wb7_recovery_microsd.img
на карту памяти с именем/dev/sda
Windows
Для записи образа на microSD в операционной системе Windows нужно использовать сторонее ПО, например Rufus.
Откройте программу, выберите в строке устройство microSD, куда нужно записать образ, нажмите Выбрать и укажите путь до образа системы. Нажмите Старт.
По завершении записи на microSD надпись Готов будет подсвечена зелёным цветом.
Снятие дампа и архивирование файлов
Во время процедуры контроллер загрузится с карты памяти MicroSD и будет на протяжении процесса копирования файла негромко попискивать зуммером. Для удобства рекомендуем подключить Debug Console, чтобы контролировать процесс.
- Выключите контроллер.
- Вставьте сбоку в разъём карту памяти MicroSD.
- Включите контроллер.
- Контроллер начнёт грузиться, потом перейдёт в режим сбора дампов и файлов. Вам надо просто подождать, выглядеть в Debug Console это будет примерно так:
------------Hello from WirenBoard recovery dumper!--------------- [ 4.859504] EXT4-fs (mmcblk1p3): mounting ext2 file system using the ext4 subsystem [ 4.875233] EXT4-fs (mmcblk1p3): mounted filesystem without journal. Opts: (null) Allocated partition to all free space! ---- Press & hold FW button to confirm Factoryreset from safe builtin FIT; Do nothing to dump files from WB ---- Backing up emmc beginning [ 8.831155] random: crng init done ++++ Done ---- Backing up mmcblk0p1 ++++ Done ---- Backing up mmcblk0p3 ++++ Done ---- Backing up mmcblk0p4 ++++ Done ---- Backing up mmcblk0p5 ++++ Done ---- Backing up all files [ 26.214179] EXT4-fs (mmcblk0p2): recovery complete [ 26.219562] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 27.141322] EXT4-fs (mmcblk0p6): recovery complete [ 27.146571] EXT4-fs (mmcblk0p6): mounted filesystem with ordered data mode. Opts: (null) [ 33.758785] vcc-gmac-phy: disabling [ 33.762672] dc5ldo: disabling [ 33.766712] dldo4: disabling ++++ Done ------ OKAY BusyBox v1.30.1 (Debian 1:1.30.1-6+b3) built-in shell (ash) Enter 'help' for a list of built-in commands. sh: can't access tty; job control turned off ~ #
- В конце контроллер издаст серию из трёх сигналов и выключит зуммер, а индикатор будет мигать зелёным.
- Удерживайте кнопку питания больше 5 секунд для выключения контроллера.
- Извлеките карту microSD из выключенного контроллера
- Вставьте карту microSD в ПК.
В процессе пустой раздел на карте памяти займёт всё свободное пространство и на него будут записаны снятые дампы и архив с файлами. Размер архива с данными зависит от размера файлов на контроллере.
Если у вас есть дамп с зашифрованного контроллера, сохраните его на любой файлообменник и пришлите нам ссылку с кратким описанием на support@wirenboard.com. Это поможет нашим специалистам глубже изучить характер взлома.
Прошивка с удалением данных
При Factory Reset с помощью данного образа, будет произведена полная очистка памяти контроллера, в том числе, загрузочной области. Для удобства рекомендуем подключить Debug Console, чтобы контролировать процесс.
- Выключите контроллер.
- Вставьте сбоку в разъём карту памяти MicroSD.
- Зажмите кнопку FW на контроллере.
- Включите контроллер.
- Контроллер начнёт грузиться, и издаст длинный сигнал и ещё пять коротких подтверждающих переход к процессу сброса.
- Отпустите кнопку.
- Процесс сброса занимает 2 минуты.
- Дождитесь полного сброса контроллера, прозвучит три коротких сигнала, выглядеть в Debug Console это будет примерно так:
------------Hello from WirenBoard recovery dumper!---------------
[ 3.694080] EXT4-fs (mmcblk1p3): mounted filesystem 6cc70e37-1fe7-4dd7-add4-2818a67edbd1 r/w without journal. Quota mode: none.
---- Allocated partition to all free space!
---- Press & hold FW button to confirm Factoryreset from safe builtin FIT; Do nothing to dump files from WB
---- FR confirmed!
[ 22.868420] EXT4-fs (mmcblk0p6): mounted filesystem 4cd271f9-5477-47cb-a2f0-d55ea214bb08 r/w with ordered data mode. Quota mode: none.
[ 33.756648] dcdc4: disabling
[ 40.584245] EXT4-fs (mmcblk0p2): mounted filesystem a0353133-9963-42af-8d18-08d39d11fbf8 r/w with ordered data mode. Quota mode: none.
[ 44.097969] EXT4-fs (mmcblk0p2): unmounting filesystem a0353133-9963-42af-8d18-08d39d11fbf8.
[ 44.138675] EXT4-fs (mmcblk0p2): mounted filesystem a0353133-9963-42af-8d18-08d39d11fbf8 r/w with ordered data mode. Quota mode: none.
[ 67.457976] random: crng init done
[ 76.648572] loop0: detected capacity change from 0 to 32768
[ 76.676595] loop0: detected capacity change from 32768 to 24576
[ 76.689418] EXT4-fs (loop0): mounted filesystem 17e93c7e-413f-437b-90fb-19cdba5ef4e5 ro without journal. Quota mode: none.
[ 76.709599] EXT4-fs (loop0): unmounting filesystem 17e93c7e-413f-437b-90fb-19cdba5ef4e5.
[ 82.538911] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /soc/spi@5011000/wbec@0/status
[ 82.549579] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /soc/spi@5011000/status
[ 82.559581] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /i2c_wbec/status
[ 82.608897] wbec-pwrkey wbec-pwrkey.5.auto: wbec_pwrkey_remove function
[ 82.648019] gpio-231 (sda): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[ 82.657020] gpio-232 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[ 82.666268] i2c-gpio i2c_wbec: using lines 231 (SDA) and 232 (SCL)
[ 86.926316] sun6i-spi 5011000.spi: Failed to request TX DMA channel
[ 86.932614] sun6i-spi 5011000.spi: Failed to request RX DMA channel
[ 86.940023] wbec-adc wbec-adc.1.auto: DMA mask not set
[ 86.945656] wbec-gpio wbec-gpio.2.auto: DMA mask not set
[ 86.951504] wbec-watchdog wbec-watchdog.3.auto: DMA mask not set
[ 86.957947] wbec-rtc wbec-rtc.4.auto: DMA mask not set
[ 86.963938] wbec-rtc wbec-rtc.4.auto: registered as rtc1
[ 86.969497] wbec-pwrkey wbec-pwrkey.5.auto: DMA mask not set
[ 86.975291] input: wbec pwrkey as /devices/platform/soc/5011000.spi/spi_master/spi0/spi0.0/wbec-pwrkey.5.auto/input/input1
[ 86.986788] wbec-power wbec-power.6.auto: DMA mask not set
[ 86.992596] wbec spi0.0: WBEC device added
[ 87.039926] /dev/mmcblk0p6: Can't open blockdev
[ 88.009023] EXT4-fs (mmcblk0p2): unmounting filesystem a0353133-9963-42af-8d18-08d39d11fbf8.
++++ FR done!
[ 88.057700] /dev/mmcblk0p6: Can't open blockdev
---- Factory FIT was untouched
------ OKAY
BusyBox v1.30.1 (Debian 1:1.30.1-6+b3) built-in shell (ash)
Enter 'help' for a list of built-in commands.
sh: can't access tty; job control turned off
- Удерживайте кнопку питания больше 5 секунд для выключения контроллера.
- Извлеките карту microSD из выключенного контроллера.
- Включите контроллер нажатием кнопки включения.
Восстановление данных из дампа
Можно смонтировать раздел с именем раздела "dump" флешки. Например:
mkdir /tmp/sd4
mount /dev/mmcblk1p4 /tmp/sd4
В каталоге есть файлы:
ls /tmp/sd4
log_backup.txt unknown_wb_mmcblk0p3.gz
unknown_wb_mmcblk0_beginning.gz unknown_wb_mmcblk0p4.gz
unknown_wb_mmcblk0p1.gz unknown_wb_mmcblk0p5.gz
unknown_wb_mmcblk0p2.gz unknown_wb_mmcblk0p6.gz
В архиве "unknown_wb_mmcblk0p6.gz" содержится каталог /mnt/data/etc
Для того чтобы восстановить, нужно смонтировать образ ФС Распаковываем и монтируем:
gunzip -c /tmp/sd4/unknown_wb_mmcblk0p6.gz > /tmp/sd4/mmcblk0p6.img
mkdir /tmp/sd4/img6
mount -o ro,loop,offset=0 /tmp/sd4/mmcblk0p6.img /tmp/sd4/img6
Все, файлы раздела доступны в /tmp/sd4/img6:
ls /tmp/sd4/img6
etc root uploads var
Восстановим, например, конфиг wb-mqtt-serial.conf Достаточно выполнить
cp /tmp/sd4/img6/etc/wb-mqtt-serial.conf /mnt/data/etc/
Прочие файлы - аналогично.