Помогите восстановить Huawei Honor 4c Hisilicon Kirin Hi6220

Прошивки и их моды\ Кухни\ Игры и приложения\ Различные настройки\ Различные вопросы по ОС Android и WM и т.п.

Модераторы: Lunat, pvsurkov, AlexG1, KSAT

Помогите восстановить Huawei Honor 4c Hisilicon Kirin Hi6220

Сообщение Ответ:#1 » michфуд » 01 фев 2016, 10:47

Разблокировал загрузчик, залил рековери на базе CWM, т.к. режим fastboot не давал заливать любые разделы, сделал update.zip для того чтобы иметь возможность шить все подряд и взял прошивку от LTE аппарата - CHM-UL0.
Не уверен что правильно смог расставить соответствие разделов телефона и образов из распакованного UPDATE.APP. Прошил - в самом конце прошивке тело выключилось и перестало работать.
Единственным признаком жизни стало то, что при нажатии POWER или подключении к USB телефон мигает попеременно зеленым и красным LED, при этом в диспетчере устройств определяется как неизвестное устройство под названием из иероглифов ㄰㌲㔴㜶㤸 VID 12d1 PID 3609. После установки драйверов (в аттаче) определяется как HUAWEI USB COM 1.0. Через 60 секунд устройство отключается.
Поискав как следует в сети было найдено устройство на одноименном процессоре (да и вообще все как у телефона почти, больше и подробнее инфы про HiSilicon Kirin я найти не смог нигде) - собственно все остальное взято оттуда: [url="https://www.96boards.org/"]https://www.96boards.org/[/url]
Смысл в том, что пока девайс виден по 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 - [url="https://www.avito.ru/nizhniy_novgorod/tovary_dlya_kompyutera/usb_kabel_pl2303_dlya_proshivki_zhestkih_diskov_299994442"]https://www.avito.ru/n…stkih_diskov_299994442[/url] - то что надо.
Через 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 - и ждет :) - чем и что заливать в таком режиме - непонятно...
  • 0

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

Помогите восстановить Huawei Honor 4c Hisilicon Kirin Hi6220

Сообщение Ответ:#2 » fktrctq71 » 29 авг 2017, 22:04

Здравствуйте michфуд!
имеется подобный телефон Huawey P8 c аналогичной проблемой. Очень хочу все таки разблокировать и восстановить телефон, но знаний не хватает. Для начала я понимаю надо все таки установить драйвера, или без установки люнукса ни ка не получится прорваться в сознание телефона. :ne_vi_del: :ne_vi_del: :ne_vi_del: :ne_vi_del: :ne_vi_del: :ne_vi_del: :ne_vi_del: :ne_vi_del:
Вложения
  • 0

Аватара пользователя
fktrctq71
Новичок
 
Сообщения: 3
Зарегистрирован: 21 сен 2011, 13:39
Репутация: 0

Помогите восстановить Huawei Honor 4c Hisilicon Kirin Hi6220

Сообщение Ответ:#3 » fktrctq71 » 02 сен 2017, 19:55

1. Кирпичные телефоны Huawei HiSilicon - Честь P6, Mate, 4C и т. Д., Способ unbrick ???
216 сообщений
Thanks : 314

По michfood , старший член 9 - го августа 2015 года, 7:23 PM
Ответить Эл. адрес
123


Привет, народ.
У меня новый кирпичный Huawei Honor 4c с HiSilicon Kirin 620 octacore (Hi6620) Вряд ли кирпичный.
Я разблокировал загрузчик и пользовательское восстановление, которое использовалось для его создания с помощью моего собственного update.zip с другого телефона (с поддержкой LTE). В конце мигания - он выключился и замарился.
НО! После подключения к ПК через USB он мигает зеленым и красным светодиодами несколько раз, и после того, как окна определяют его как устройство с USB \ VID_12D1 и PID_3609 & REV_0000 и называются 䕇 䕎 䥎 ㄰ ㌲ 㔴 㜶 㤸.
Это VID Huawei. И после большого поиска я нашел для него драйвер - и устройство стало HUAWEI USB-COM 1.0. Но ничего больше.
Нет флеш-утилиты, ничего. HiSilicon-IDT для процессора K3 не работает.

После очередных поисков я нашел очень похожее устройство - он называется HiKey. На процессоре Hisilicon Kirin тоже
Цитата:
Эта плата базируется на 64-битном SoC HiSilicon Kirin 6220 с 64-разрядным процессором ARM Cortex-A53, работающем на частоте 1,2 ГГц, и обеспечивает общую производительность более 10 000 Dhrystone VAX MIPS. SoC также обеспечивает высокую производительность 3D-графики с графическим процессором ARM Mali 450-MP4.

1 ГБ 800 МГц LPDDR3 DRAM, 4 ГБ флэш-памяти eMMC и стандартный разъем 96Boards microSD v3.0 обеспечивают высокую производительность. Гибкие возможности хранения и возможности подключения доступны через 802.11a / b / g / n WiFi, Bluetooth 4.0 LE, три высокоскоростных порта USB 2.0 (1 OTG), видеовыход HDMI 1.3 1080p со звуком и дисплей Maker, DSI и камеру CSI интерфейсы. Плата представляет собой стандартный форм-фактор кредитной карты 96Boards, питаемый от источника питания 8-18 В постоянного тока 2А.
Как мы видим, это очень близко к нашему телефону.
Он полностью документирован и имеет множество спецификаций о proc и других.
И в его руководстве написано о процедуре восстановления после повреждения ПЗУ - когда устройство включено - оно находится в режиме «загрузки» в течение 90 секунд - абсентливо, как мой телефон - через 90 секунд он выключается из окон.
Короче говоря, это возможность записывать в RAM 2 снимка fastboot (fastboot1.img и fastboot2.img), запускать их и использовать flashboot команды flash-изображений для eMMC. Они используют SERIAL COM PORT для управления устройством.
Он использует утилиту под названием «hisi-idt.py» - это скрипт python для машин на базе Linux.
Я установил Linux Mint и попробую.
И у меня есть результат - первый снимок идет хорошо, и я получаю «Done»
Но второе изображение всегда «Failed». И команда fastboot «устройства fastboot» не перечисляет никаких устройств.
Просмотр двоичных файлов из моего ROM (Fastboot.img и Fastboot1.img) в HEX - я вижу, что адреса загрузки в ROM такие же, как в скрипте python. Для обоих изображений это 0xf9800800 и 0x0700000.
Но ... не имеют успеха. Похоже, я близок к цели.
Есть идеи?
Быстрый ответ Ответить
Этот пользователь сказал Спасибо! Michfood за это сообщение:[Посмотреть]Gift michfood Ad-Free
michfood
18 августа 2015 года, 11:52 | # 2

OPSenior Member
Спасибо Meter : 314

Пожертвовать мне
Больше
Никто не вмешался?
Я нашел точки UART Rx Tx на материнской плате, и теперь я могу получить информацию об отладке.
Я вижу, что могу загружать изображения в оперативную память, но ...
Код:
отладка загрузки EMMC: печать init OK
Отладка загрузки EMMC: отправьте RST_N.
Отладка загрузки EMMC: запуск eMMC загрузки ......
OnChipRom: fastboot1 Verif sucess!
[BDID] boardid: 745 <7.4.5>
аккумулятор ocv - 4141 мВ
壂 {? вывода
H? Ш !! я? 㡡 VJ грешных 硾 B9FF $ /» 0D c f B B f B rreset устройство сделано.
Начать перечисление.
enum done intr
Enum запускается.
Usb reset intr
enum done intr
Пакет NULL
Пакет NULL
USB ENUM OK.
init ser устройство сделано ....
USB :: Err !! Неизвестный пакет настройки USB!
Пакет NULL
USB :: Err !! Неизвестный пакет настройки USB!
Пакет NULL
USB :: Err !! Неизвестный пакет настройки USB!
Пакет NULL
USB :: Err !! Неизвестный пакет настройки USB!
Пакет NULL
USB :: Err !! Неизвестный пакет настройки USB!
Пакет NULL
uFileAddress = сс = f9800800
Начать режим загрузки armboot
[BDID] boardid: 745 <7.4.5>
аккумулятор 펟 v W ʝcn? g ?
H? Ш !! я? 㡡 VJ грешных 硾 B9FF $ /» 0DcfBBfgc 姾 fBʔ
Все это на некоторое время
Быстрый ответ Ответить
zekaplus11
29 августа 2015 года, 14:23 | # 3
Младший сотрудник
Спасибо Meter : 0

Больше
У меня есть те же проблемы, что и мне, если вы исправите это
Быстрый ответ Ответить
Корневой-эксперт
30 августа 2015, 07:48 | # 4
Старший член
Греция
Спасибо Meter : 301

Пожертвовать мне
Больше
Цитата:
Сообщение от michfood
Никто не вмешался?
Я нашел точки UART Rx Tx на материнской плате, и теперь я могу получить информацию об отладке.
Я вижу, что могу загружать изображения в оперативную память, но ...
Код:
отладка загрузки EMMC: печать init OK
Отладка загрузки EMMC: отправьте RST_N.
Отладка загрузки EMMC: запуск eMMC загрузки ......
OnChipRom: fastboot1 Verif sucess!
[BDID] boardid: 745 <7.4.5>
аккумулятор ocv - 4141 мВ
壂 {? вывода
H? Ш !! я? 㡡 VJ грешных 硾 B9FF $ /» 0D c f B B f B rreset устройство сделано.
Начать перечисление.
enum done intr
Enum запускается.
Usb reset intr
enum done intr
Пакет NULL
Пакет NULL
USB ENUM OK.
init ser устройство сделано ....
USB :: Err !! Неизвестный пакет настройки USB!
Пакет NULL
USB :: Err !! Неизвестный пакет настройки USB!
Пакет NULL
USB :: Err !! Неизвестный пакет настройки USB!
Пакет NULL
USB :: Err !! Неизвестный пакет настройки USB!
Пакет NULL
USB :: Err !! Неизвестный пакет настройки USB!
Пакет NULL
uFileAddress = сс = f9800800
Начать режим загрузки armboot
[BDID] boardid: 745 <7.4.5>
аккумулятор 펟 v W ʝcn? g ?
H? Ш !! я? 㡡 VJ грешных 硾 B9FF $ /» 0DcfBBfgc 姾 fBʔ
Все это на некоторое время
Привет, можете ли вы использовать файл python, чтобы посмотреть на него? Также журнал, который вы нам предоставили, это весь журнал?
Быстрый ответ Ответить
michfood
31 августа 2015 года, 14:17 | # 5

OPSenior Member
Спасибо Meter : 314

Пожертвовать мне
Больше
нет, журнал не заполнен.
он изменяет скорость UART во время загрузки.
сценарий:
Код:
#! / USR / бен / питон
# - * - кодирование: utf-8 - * -

import os
import os.path
серийный импорт, время
массив импорта
import sys, getopt

class bootdownload (object):
«»»
Загрузочный загрузчик Hisilicon

>>> downloader = bootdownload ()
>>> downloader.download (имя файла)

«»»

# Crctab, рассчитанный Марк Г. Мендель, Network Systems Corporation
crctable = [
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0,
]

Startframe = {
'Hi3716cv200': [0xFE, 0x00,0xFF, 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x02,0x01]
}

headframe = {
'Hi3716cv200': [0xFE, 0x00,0xFF, 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x02,0x01]
}

bootheadaddress = {
'Hi3716cv200': 0xF9800800
}

bootdownloadaddress = {
'Hi3716cv200': 0x07000000
}

BOOT_HEAD_LEN = 0x4F00
MAX_DATA_LEN = 0x400

def __init __ (self, chiptype, serialport):
пытаться:
Self.s = serial.Serial (порт = serialport, скорость = 115200, тайм-аут = 1)
кроме serial.serialutil.SerialException:
#no последовательное соединение
self.s = None
Print "\ nСвободно открывать серийный номер!", Serialport
sys.exit (2)

self.chip = chiptype

Def __del __ (self):
Если self.s! = None:
self.s.close ()

def calc_crc (self, data, crc = 0):
для символа в данных:
crc = ((crc << 8) | ord (char)) ^ self.crctable [(crc >> 8) & 0xff]
для i в диапазоне (0,2):
crc = ((crc << 8) | 0) ^ self.crctable [(crc >> 8) & 0xff]
return crc & 0xffff

Def getsize (self, filename):
St = os.stat (имя файла)
return st.st_size

def sendframe (self, data, loop):
для i в диапазоне (1, цикл):
self.s.flushOutput ()
self.s.write (данные)
self.s.flushInput ()
пытаться:
ack = self.s.read ()
если len (ack) == 1:
Если ack == chr (0xaa):
return None
Кроме:
return None

Print 'failed'

Def sendstartframe (self):
self.s.setTimeout (0,01)
Data = array.array ('B', self.startframe [self.chip]). Tostring ()
crc = self.calc_crc (данные)
data + = chr ((crc >> 8) & 0xff)
data + = chr (crc & 0xff)
self.sendframe (данные, 10000)

def sendheadframe (сам, длина, адрес):
self.s.setTimeout (0.03)
self.headframe [self.chip] [4] = (длина >> 24) & 0xff
self.headframe [self.chip] [5] = (длина >> 16) & 0xff
self.headframe [self.chip] [6] = (длина >> 8) & 0xff
self.headframe [self.chip] [7] = (длина) & 0xff
self.headframe [self.chip] [8] = (адрес >> 24) & 0xff
self.headframe [self.chip] [9] = (адрес >> 16) & 0xff
self.headframe [self.chip] [10] = (адрес >> 8) & 0xff
self.headframe [self.chip] [11] = (адрес) & 0xff

Data = array.array ('B', self.headframe [self.chip]). Tostring ()
crc = self.calc_crc (данные)

data + = chr ((crc >> 8) & 0xff)
data + = chr (crc & 0xff)

self.sendframe (данные, 16)


Def senddataframe (self, seq, data):
self.s.setTimeout (0,15)
head = chr (0xDA)
head + = chr (seq & 0xFF)
Head + = chr ((~ seq) & 0xFF)

data = head + data

crc = self.calc_crc (данные)
data + = chr ((crc >> 8) & 0xff)
data + = chr (crc & 0xff)

self.sendframe (данные, 32)

def sendtailframe (self, seq):
data = chr (0xED)
data + = chr (seq & 0xFF)
Data + = chr ((~ seq) & 0xFF)
crc = self.calc_crc (данные)
data + = chr ((crc >> 8) & 0xff)
data + = chr (crc & 0xff)

self.sendframe (данные, 16)

def senddata (self, data, address):
длина = Len (данные)
self.sendheadframe (длина, адрес)
сл = 1
while length> self.MAX_DATA_LEN:
self.senddataframe (Seq, данные [(сл-1) * self.MAX_DATA_LEN: сл * self.MAX_DATA_LEN])
seq = seq + 1
Length = length-self.MAX_DATA_LEN
self.senddataframe (Seq, данные [(сл-1) * self.MAX_DATA_LEN:])
self.sendtailframe (сл + 1)


def download (self, filename1, filename2):

F = открыт (имя_файла1, "RB")
data = f.read ()
f.close ()

print 'Sending', filename1, '...'
self.senddata (данные, self.bootheadaddress [self.chip])
print 'Done \ n'

если filename2:
F = открыт (имя_файла2, "RB")
data = f.read ()
f.close ()

Print 'Sending', filename2, '...'
self.senddata (данные, self.bootdownloadaddress [self.chip])
print 'Done \ n'


def burnboot (chiptype, serialport, filename1, filename2 = ''):
Downloader = bootdownload (chiptype, serialport)
downloader.download (filename1, filename2)

def startterm (serialport = 0):
пытаться:
Miniterm = Miniterm (
Серийный порт,
115200,
'N',
rtscts = False,
XONXOFF = False,
эхо = False,
convert_outgoing = 2,
repr_mode = 0,
)
кроме serial.SerialException, e:
Sys.stderr.write ("не удалось открыть порт% r:% s \ n"% (порт, e))
sys.exit (1)
miniterm.start ()
miniterm.join (True)
miniterm.join ()

Def main (argv):
«»»
img2 = 'fastboot2.img'
«»»
img1 = 'fastboot1.img'
Img2 = ''
dev = '/ dev / serial / by-id / usb- 䕇 䕎 䥎 _ ㄰ ㌲ 㔴 㜶 㤸 -if00-port0'
пытаться:
opts, args = getopt.getopt (argv, "hd:", ["img1 =", "img2 ="])
кроме getopt.GetoptError:
print 'hisi-idt.py -d-устройство -img1 <fastboot1> -img2 <fastboot2>'
sys.exit (2)
для opt, arg in opts:
если opt == '-h':
print 'hisi-idt.py -d-устройство -img1 <fastboot1> -img2 <fastboot2>'
sys.exit ()
Elif opt in ("-d"):
Dev = arg
Elif opt in ("--img1"):
img1 = arg
Elif opt in ("--img2"):
img2 = arg
print '+ ---------------------- +'
print 'Serial:', dev
print 'Image1:', img1
Print 'Image2:', img2
Print '+ ---------------------- + \ n'

Если не os.path.isfile (img1):
Print «Изображение не существует:», img1
sys.exit (1)

если (img2):
Если не os.path.isfile (img2):
print «Изображение не существует:», img2
sys.exit (1)

burnboot ('hi3716cv200', dev, img1, img2)

если __name__ == "__main__":
Основной (sys.argv [1:])
журналы:
Код:
0
===> vbus_is_high!
fastboot1 charger_type: CHARGER_TYPE_PC
get_hw_config_int, hw_afreq: 1200000.
get_efuse_value, efuse ATE_flag temp: 0x0af00000.
ATE PASS, ate значение флага: 0x00000001.
Get_efuse_value, efuse acpu_freq уровень изменения: 0x8e186100.
get_efuse_value, efuse afreq изменить уровень val: 0x00000000.
Get_efuse_value, уровень epuse acpu_freq: 0x8e186100.
get_efuse_value, efuse acpu freq sys level: 0x00000000.
### INFO ###, soc_freq = hw_afreq, efuse_afreq: 1200000, hw_afreq: 1200000.
efuse ACPU 1.4G HPM: 0.
efuse ACPU 1.2G HPM: 0.
Efuse ACPU 960M HPM: 0.
Fastboot: acpu_dvfs_init успешно!
начните получать напряжение на hpm ...
Prof [729000]: hpm_dly_exp = 0x00000cb0, hpm_dly_exit = 0x00000cf6!
prof [960000]: hpm_dly_exp = 0x00000cb6, hpm_dly_exit = 0x00000cfc!
Prof [1200000]: hpm_dly_exp = 0x00000e94, hpm_dly_exit = 0x00000eda!
Acpu support freq num: 5
Вольт: 0x0000004a 0x0000004a 0x0000004a 0x0000004a 0x00000057
Acpu_get_dvfs_volt, g_afreq_max_pro: 5 acpu max freq: 1200000.
#### успех !!!!! Set_acpu_freq: поддержка acpu freq num равна 5, а начало - 4.
Get_ddr_type 1; (lpddr2: 0; lpddr3: 1)
передать func addr: [0xfff81b10]: 0xf980d044ddr_init (): get_ddr_type: 1
ddr freq: 800000
В lpddr3_init: mode: 0; freq_config: 800
Напряжение переключения ddr: 1.25V -> 1.2V
lpddr3_init 150
lpddr3_150_rank0_init_pass
lpddr3_150_rank1_init_pass
Lpddr3_init 266
lpddr3_266_rank0_init_pass
lpddr3_266_rank1_init_pass
lpddr3_init 400
lpddr3_400_rank0_init_pass
lpddr3_400_rank1_init_pass
Напряжение переключения ddr: 1.2V -> 1.25V
Lpddr3_init 533
lpddr3_rank0_phydraminit_pass
lpddr3_cat_pass
lpddr3_533_rank0_init_pass
rdet_lbs_passrdet_ds_passrdet_rbs_av_passwdet_lbs_passwdet_ds_passwdet_rbs_av_passlpddr3_533_rank1_init_pass
lpddr3_init 800
lpddr3_rank0_phydraminit_pass
lpddr3_cat_pass
lpddr3_800_rank0_init_pass
rdet_lbs_passrdet_ds_passrdet_rbs_av_passwdet_lbs_passwdet_ds_passwdet_rbs_av_passlpddr3_800_rank1_init_pass
ОШИБКА: tmp_freq: 0
tmp_freq: 400000
Значение MR8 =: 0x0000005b
Значение MR5 =: 0x00000001
Samsung DDR
Значение MR6 =: 0x00000004
Значение MR5 =: 0x00000000
[MR7, MR6, MR5] =: 0x00000401
ddr init pll1 0x00007800! ddrc_qos_init сделано
Bootloader_logger получил буфер на 0x07300000, размер 0x00040000
Bootloader_logger: нет достоверных данных в буфере, (sig = 0x43474244)

[emmc_set_card_ready] emmc id: 0xb64432c9 0x520644c1 0x474e4433 0x15010038

[Emmc_set_card_ready] manufid: 0x00000015
Режим DDR emmc
--error: gps / ldo16
[SEC] check_oem_hw: carrier_id = 0x00000000
Идентификатор изображения DX_BIV_SwImageVerification равен 0x00000011, возврат 0xf1000002!
Execute_load_fastboot2: В безопасном режиме и fastboot2 проверка завершилась неудачно!
Ошибка загрузки fastboot2!
Hw_error_print: led = 12. func = 0. err = 0.
[Быстрая загрузка]: k3_led_green_on
[Быстрая загрузка]: k3_led_green_on
[Быстрая загрузка]: k3_led_green_on
[Быстрая загрузка]: k3_led_green_on
[Быстрая загрузка]: k3_led_green_on
[Быстрая загрузка]: k3_led_green_on
введите fatal_exception!
Ошибка восстановления, перейдите на onchiprom usbloader!
USB-разъемы
0
===> vbus_is_high!
fastboot1 charger_type: CHARGER_TYPE_PC
get_hw_config_int, hw_afreq: 1200000.
get_efuse_value, efuse ATE_flag temp: 0x0af00000.
ATE PASS, ate значение флага: 0x00000001.
Get_efuse_value, efuse acpu_freq уровень изменения: 0x8e186100.
get_efuse_value, efuse afreq изменить уровень val: 0x00000000.
Get_efuse_value, уровень epuse acpu_freq: 0x8e186100.
get_efuse_value, efuse acpu freq sys level: 0x00000000.
### INFO ###, soc_freq = hw_afreq, efuse_afreq: 1200000, hw_afreq: 1200000.
efuse ACPU 1.4G HPM: 0.
efuse ACPU 1.2G HPM: 0.
Efuse ACPU 960M HPM: 0.
Fastboot: acpu_dvfs_init успешно!
начните получать напряжение на hpm ...
Prof [729000]: hpm_dly_exp = 0x00000caf, hpm_dly_exit = 0x00000cf5!
prof [960000]: hpm_dly_exp = 0x00000cb5, hpm_dly_exit = 0x00000cfb!
prof [1200000]: hpm_dly_exp = 0x00000e90, hpm_dly_exit = 0x00000ed6!
Acpu support freq num: 5
Вольт: 0x0000004a 0x0000004a 0x0000004a 0x0000004a 0x00000057
Acpu_get_dvfs_volt, g_afreq_max_pro: 5 acpu max freq: 1200000.
#### успех !!!!! Set_acpu_freq: поддержка acpu freq num равна 5, а начало - 4.
Get_ddr_type 1; (lpddr2: 0; lpddr3: 1)
передать func addr: [0xfff81b10]: 0xf980d044ddr_init (): get_ddr_type: 1
ddr freq: 800000
В lpddr3_init: mode: 0; freq_config: 800
Напряжение переключения ddr: 1.25V -> 1.2V
lpddr3_init 150
lpddr3_150_rank0_init_pass
lpddr3_150_rank1_init_pass
Lpddr3_init 266
lpddr3_266_rank0_init_pass
lpddr3_266_rank1_init_pass
lpddr3_init 400
lpddr3_400_rank0_init_pass
lpddr3_400_rank1_init_pass
Напряжение переключения ddr: 1.2V -> 1.25V
Lpddr3_init 533
lpddr3_rank0_phydraminit_pass
lpddr3_cat_pass
lpddr3_533_rank0_init_pass
rdet_lbs_passrdet_ds_passrdet_rbs_av_passwdet_lbs_passwdet_ds_passwdet_rbs_av_passlpddr3_533_rank1_init_pass
lpddr3_init 800
lpddr3_rank0_phydraminit_pass
lpddr3_cat_pass
lpddr3_800_rank0_init_pass
rdet_lbs_passrdet_ds_passrdet_rbs_av_passwdet_lbs_passwdet_ds_passwdet_rbs_av_passlpddr3_800_rank1_init_pass
ОШИБКА: tmp_freq: 0
tmp_freq: 400000
Значение MR8 =: 0x0000005b
Значение MR5 =: 0x00000001
Samsung DDR
Значение MR6 =: 0x00000004
Значение MR5 =: 0x00000000
[MR7, MR6, MR5] =: 0x00000401
ddr init pll1 0x00007800! ddrc_qos_init сделано
Bootloader_logger получил буфер на 0x07300000, размер 0x00040000
Bootloader_logger: нет достоверных данных в буфере, (sig = 0x43474244)

[emmc_set_card_ready] emmc id: 0xb64432c9 0x520644c1 0x474e4433 0x15010038

[Emmc_set_card_ready] manufid: 0x00000015
Режим DDR emmc
--error: gps / ldo16
[SEC] check_oem_hw: carrier_id = 0x00000000
Идентификатор изображения DX_BIV_SwImageVerification равен 0x00000011, возврат 0xf1000002!
Execute_load_fastboot2: В безопасном режиме и fastboot2 проверка завершилась неудачно!
Ошибка загрузки fastboot2!
Hw_error_print: led = 12. func = 0. err = 0.
[Быстрая загрузка]: k3_led_green_on
[Быстрая загрузка]: k3_led_green_on
[Быстрая загрузка]: k3_led_green_on
[Быстрая загрузка]: k3_led_green_on
[Быстрая загрузка]: k3_led_green_on
[Быстрая загрузка]: k3_led_green_on
введите fatal_exception!
Ошибка восстановления, перейдите на onchiprom usbloader!
USB-разъемы
v
NUpdate debug uart baudRate to: 921600
===> vbus_is_high!
fastboot1 download_mode: 1
fastboot1 charger_type: CHARGER_TYPE_PC
get_hw_config_int, hw_afreq: 1200000.
get_efuse_value, efuse ATE_flag temp: 0x0af00000.
ATE PASS, ate значение флага: 0x00000001.
Get_efuse_value, efuse acpu_freq уровень изменения: 0x8e186100.
get_efuse_value, efuse afreq изменить уровень val: 0x00000000.
Get_efuse_value, уровень epuse acpu_freq: 0x8e186100.
get_efuse_value, efuse acpu freq sys level: 0x00000000.
### INFO ###, soc_freq = hw_afreq, efuse_afreq: 1200000, hw_afreq: 1200000.
efuse ACPU 1.4G HPM: 0.
efuse ACPU 1.2G HPM: 0.
Efuse ACPU 960M HPM: 0.
Fastboot: acpu_dvfs_init успешно!
начните получать напряжение на hpm ...
prof [729000]: hpm_dly_exp = 0x00000cad, hpm_dly_exit = 0x00000cf3!
Prof [960000]: hpm_dly_exp = 0x00000cad, hpm_dly_exit = 0x00000cf3!
prof [1200000]: hpm_dly_exp = 0x00000e88, hpm_dly_exit = 0x00000ece!
Acpu support freq num: 5
Вольт: 0x0000004a 0x0000004a 0x0000004a 0x0000004a 0x00000057
Acpu_get_dvfs_volt, g_afreq_max_pro: 5 acpu max freq: 1200000.
#### успех !!!!! Set_acpu_freq: поддержка acpu freq num равна 5, а начало - 4.
Get_ddr_type 1; (lpddr2: 0; lpddr3: 1)
передать func addr: [0xfff81b10]: 0xf980d044ddr_init (): get_ddr_type: 1
ddr freq: 800000
В lpddr3_init: mode: 0; freq_config: 800
Напряжение переключения ddr: 1.25V -> 1.2V
lpddr3_init 150
lpddr3_150_rank0_init_pass
lpddr3_150_rank1_init_pass
Lpddr3_init 266
lpddr3_266_rank0_init_pass
lpddr3_266_rank1_init_pass
lpddr3_init 400
lpddr3_400_rank0_init_pass
lpddr3_400_rank1_init_pass
Напряжение переключения ddr: 1.2V -> 1.25V
Lpddr3_init 533
lpddr3_rank0_phydraminit_pass
lpddr3_cat_pass
lpddr3_533_rank0_init_pass
rdet_lbs_passrdet_ds_passrdet_rbs_av_passwdet_lbs_passwdet_ds_passwdet_rbs_av_passlpddr3_533_rank1_init_pass
lpddr3_init 800
lpddr3_rank0_phydraminit_pass
lpddr3_cat_pass
lpddr3_800_rank0_init_pass
rdet_lbs_passrdet_ds_passrdet_rbs_av_passwdet_lbs_passwdet_ds_passwdet_rbs_av_passlpddr3_800_rank1_init_pass
ОШИБКА: tmp_freq: 0
tmp_freq: 400000
Значение MR8 =: 0x0000005b
Значение MR5 =: 0x00000001
Samsung DDR
Значение MR6 =: 0x00000004
Значение MR5 =: 0x00000000
[MR7, MR6, MR5] =: 0x00000401
ddr init pll1 0x00007800! ddrc_qos_init сделано
Bootloader_logger получил буфер на 0x07300000, размер 0x00040000
Bootloader_logger: найден существующий буфер, размер 1044, addr 24
USB_DOWNLOAD_MODE
метка времени: 0xfff2c982
возврат из fastboot1!
uFileAddress = сс = 07000000
uFileAddress = сс = 07000000
uFileAddress = сс = 07000000
Проверка изображения не удалась!
Вложения
Программы для кирпича.rar
Туточки все что нашел на данный момент и драйвера тоже.
(2.72 КБ) Скачиваний: 6
  • 0

Аватара пользователя
fktrctq71
Новичок
 
Сообщения: 3
Зарегистрирован: 21 сен 2011, 13:39
Репутация: 0

Помогите восстановить Huawei Honor 4c Hisilicon Kirin Hi6220

Сообщение Ответ:#4 » fktrctq71 » 12 сен 2017, 23:17

УПс неужели не кто не может объяснить как по шагово пользоватся Люнуксом и как всетаки оживить телефон?
  • 0

Аватара пользователя
fktrctq71
Новичок
 
Сообщения: 3
Зарегистрирован: 21 сен 2011, 13:39
Репутация: 0


Вернуться в Программная часть КПК

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

x

#{title}

#{text}