Перейти к содержимому

Все о китайских телефонах
Портал по пластической хирургии prof-medicina.ru

Кирпич Huawei Honor 4C - нужна помощь

Кирпич Huawei Honor 4C

  • Please log in to reply
Пока никто не отвечал в этой теме...

#1
michфуд

michфуд

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений
  • 0 благодарностей
Разблокировал загрузчик, залил рековери на базе CWM, т.к. режим fastboot не давал заливать любые разделы, сделал update.zip для того чтобы иметь возможность шить все подряд и взял прошивку от LTE аппарата - CHM-UL0.
Не уверен что правильно смог расставить соответствие разделов телефона и образов из распакованного UPDATE.APP. Прошил - в самом конце прошивке тело выключилось и перестало работать.
Единственным признаком жизни стало то, что при нажатии POWER или подключении к USB телефон мигает попеременно зеленым и красным LED, при этом в диспетчере устройств определяется как неизвестное устройство под названием из иероглифов ㄰㌲㔴㜶㤸 VID 12d1 PID 3609. После установки драйверов (в аттаче) определяется как HUAWEI USB COM 1.0. Через 60 секунд устройство отключается.
Поискав как следует в сети было найдено устройство на одноименном процессоре (да и вообще все как у телефона почти, больше и подробнее инфы про HiSilicon Kirin я найти не смог нигде) - собственно все остальное взято оттуда: https://www.96boards.org/
Смысл в том, что пока девайс виден по USB - он находится в режиме USB DOWNLOAD MODE - и готов принимать файлы непосредственно в оперативную память RAM и сразу запускать код. По указанной ссылке в мануале говорится о восстановлении убитого загрузчика таким образом.
Для того чтобы это сделать - запускается скрипт для Python 2.7 на машине работающей под Linux. Теоретически это работает и под виртуалкой, но я для чистоты эксперимента поставил Linux Mint на комп второй системой (благополучно угробив 2Тб данных  :rofl: ). В линуксе драйвера для устройства не нужны - в списке USB устройств команда lsusb сразу его видит как Huawei модем типа.
mich@mich-PC ~/Рабочий стол/222 $ lsusb
Bus 002 Device 011: ID 12d1:3609 Huawei Technologies Co., Ltd.
Bus 002 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Дальше - запуск скрипта:
sudo python hisi-idt.py -d /dev/ttyUSB0 --img1 FASTBOOT1.img --img2 FASTBOOT.img
Cкрипт предназначен для записи 2х файлов в RAM по адресам 0xF9800800 и 0x07000000 соответственно.
В наших фастбутах при просмотре в HEX редакторе именно такие адреса:
Спойлер
Короче кладем оба фастбута в папкусо скриптом и запускаем его. Он начинает писать файлы в память, после записи пишет Done или Failed - без UART больше вы ничего не поймете и не увидите.
В теории - после того как напишет 2 раза Done - телефон должен перейти в режим FASTBOOT и дальше командами уже фастбута необходимо сделать:
sudo fastboot devices
- здесь должен определиться подключенный телефон и если он определился - дальше
sudo fastboot flash fastboot1 FASTBOOT1.img
sudo fastboot flash fastboot2 FASTBOOT.img
- этими командами мы прошиваем правильные файлы в eMMC телефона - внутренний флеш, чтобы последующая загрузка уже пошла с них...
имея рабочий фастбут шьем рековери, потом полная прошивка UPDATE.APP...

UART - это такой протокол обмена данными, который есть почти во всех устройствах с процессором. У нас тоже.
Вот на фото Rx и Tx и GND контакты на плате Honor 4c:
Спойлер
Как нашел - при нажатии power на них появлялось напряжение 1,8v - ну и просто методом научного тыка.
Для работы с UART можно использовать кучу разных кабелей (USB TTL convertor)- я нашел за 50р на авито кабель на микросхеме PL2303 - https://www.avito.ru...iskov_299994442 - то что надо.
Через UART как правило идет поток отладочной информации, но также возможна прошивка. Мне как минимум надо было знать что не так с телефоном.
Для этого я поставил в линукс программу minicom - она может обмениваться инфой через эмулятор USB с COM портом. И на меня наконец-то вылезли логи...
UART работает здесь на 2х скоростях - сперва 115200 - а потом переключает на 921600. Если скорость в терминале задана неправильная - видны крякозябры.
Дальше я включаю телефон и пытаюсь залить оба фастбута в тело:
Вот лог загрузки на скорости 115200:
Спойлер
А вот на 921600:
Спойлер
А вот лог загрузки и попытки заливки файлов:
Спойлер
Спойлер
Комментарии - при начальной загрузке fastboot1 срабатывает и пробует загрузить код fastboot2 - но не получается и случается фатальная ошибка.
[SEC]check_oem_hw: carrier_id = 0x00000000
DX_BIV_SwImageVerification image id is 0x00000011, return is 0xf1000002 !
execute_load_fastboot2: In secure mode and fastboot2 verify failed!
Load fastboot2 failed!
Тело начинает мыргать LED`ом и ждать загрузки файлов через USB.
Если ничего на входе нет - через 60 секунд USB отключается и тело начинает ждать загрузки через UART.
Когда начинаем загружать наши файлы - видим:
uFileAddress=ss=f9800800
start armboot download mode
После загрузки файлов - мы видим надписи Done - в теле начинает работать загруженный FASTBOOT1 и уже он не принимает 2й файл:
uFileAddress=ss=07000000
image verify failed!
Физически в линуксе у меня кабель определяется как ttyUSB0 - а телефон как ttyUSB1 - если потом запустить скрипт и указать номер порта (0) на котором висит кабель - пойдет залиывка файлов через UART - правда терминал с minicom придется закрыть - освободить COM порт и результат мы не увидим.
Ну и как видно из лога - даже правильные образа мой телефон принимать отказывается.
Почти в каждом образе из распакованного UPDATE.APP первые 800 байт - некая подпись, или CRC сумма - видимо ее и проверяет загрузчик. Возможно эти данные хранятся на eMMC (скорее всего).
Без первых 2048 (0x800) байт залить даже первый файл не удастся - проверял, хотя с т.з. самого файла - это мусор. Например если говорить о RECOVERY и BOOT - для работы эти заголовки не нужны, а нужны только видимо в момент установки обновления как раз для проверки соответствия файлов. Более того - FASTBOOT1.img лежит на флешке в разделе mmcblk0boot0 - вместе с этим header, а вот второй образ FASTBOOT,img - лежит в разделе /dev/block/mmcblk0p5 - причем без этих 2048 (0x800) байт.
Ну вроде все. Пока кирпич.
PS - ах да, забыл отметить - после того как по USB не приходит - тело уходит в режим UART Download Mode - и ждет :) - чем и что заливать в таком режиме - непонятно...

#000
YDirect

YDirect





0 посетителей читают эту тему

0 пользователей, 0 гостей, 0 скрытых