Показаны сообщения с ярлыком firmware. Показать все сообщения
Показаны сообщения с ярлыком firmware. Показать все сообщения

суббота, 16 января 2016 г.

Micromax Q415. Прошивка с помощью Qualcomm Smartphone Software Update Tool. Инструкция.

Продолжаем цикл постов про Micromax Q415. Сегодня мы рассмотрим с вами как прошить телефон официальной заводской прошивкой SW_V2.8 с помощью Qualcomm Smartphone Software Update Tool. Сама прошивка выложена в посте Micromax Q415 Canvas Pace 4G. Прошивки и обновления. (см. раздел Официальная прошивка MMX_Q415_SW_V2.8_HW_V0.2_25112015 для прошивки с ПК). Первое что мы делаем это идем по ссылке для скачивания прошивки на NeedROM'е и регистрируемся на данном ресурсе. Регистрация занимает не более 5 минут и в любом случае будет полезной для вас в будущем. Можно было конечно выложить эту прошивку на Яндекс.Диск и т.п. файловые хостинги, но я этого делать не стал ... Скорость скачивания c needrom'а достаточно хорошая, а учетная запись на этом ресурсе позволит вам без проблем загружать выложенные там прошивки и для других устройств. После завершения регистрации качаем себе на ПК 4 файла:

  • MMX_Q415_SW_V2.8_HW_V0.2__V25112015B1661_LCS4.bin.7z - непосредственно сам архив с прошивкой. 
  • Qualcomm Smartphone Software Update Tool.rar - флешер. 
  • Uniscope_Qualcomm driver_V1.0.1.zip - драйвера Qualcomm (при установке на 64-битные ОС обязательно отключение проверки цифровой подписи драйверов) 
  • Flashing_Procedure_Инструкция для прошивки.pdf - инструкция по прошивке (все логины, пароли и явки от прошивальщика находятся в данной инструкции). 


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


Далее важный момент, если у вас x64 (64-битная) система, то временно, на один сеанс, отключаем обязательную проверку цифровой подписи драйверов. Как это сделать описано в этой инструкции. Т.е. просто читаем инструкцию со слов "Для начала, если у вас x64 система временно (на один сеанс) отключим проверку цифровой подписи драйверов" и выполняем все пункты вплоть до "Нажимаем F7 для отключения проверки цифровой подписи". Если у вас x86 (32-битная) система - этот пункт вы пропускаете.

Выключаем телефон, если до этого он был у вас включен и удерживая кнопки Громкость+ и Громкость- держим кнопку включения питания до тех пор, пока телефон не включится. Скорее при этом на нем будет просто белый экран, это нормально. Подключаем телефон к ПК кабелем и открываем диспетчер устройств.

Если вы все сделали верно, то в диспетчере устройств вы увидите устройство QHSUSB__BULK со следующими VID и PID - USB\VID_05C6&PID_9008&REV_0000:


Нажимаем по нему правой кнопкой мыши и выбираем пункт "Обновить драйверы ... ", далее выбираем поиск драйверов на этом компьютере и в качестве пути к драйверам указываем папку Uniscope_Qualcomm driver_V1.0.1, которая у нас получилась при распаковке архива:


После чего нажимаем кнопку Далее. В результате устройство QHSUSB__BULK у нас пропадает, а в разделе COM и LPT порты диспетчера устройств появляется новое устройство с названием RELINK HS-USB QDLoader 9008:


Как видно, у меня это COM3. Если вы дошли до этого пункта без проблем, то от прошивки телефона вас отделяют считанные минуты.

Запускаем Qualcomm Smartphone Multi-Port Software Upgrade Tool. В появившемся диалоге нажимаем на восклицательный знак, чтобы имя пользователя Operator у вас изменилось на Administrator и вводим пароль ustest , после чего нажимаем Ok.


В окне программы нажимаем кнопку Load Soft Folder и выбираем папку с прошивкой MMX_Q415_SW_V2.8_HW_V0.2__V25112015B1661_LCS4.bin из распакованного нами архива. Далее в любом из окошек выбираем COM-порт, на котором у нас находится телефон в Download Mode (в моем случае это COM3) и нажимаем кнопку Start. Вот так выглядит окно программы Qualcomm Smartphone Multi-Port Software Upgrade Tool до нажатия кнопки Start:

Всё, далее у нас идет процесс прошивки:



Успешным признаком ее завершения является появление надписи Download finish! в окне состояния:


Телефон после завершения прошивки должен перезагрузиться автоматически (по-крайней мере так задумано), но в моем случае этого не произошло. Ничего страшного, это нормально. Просто удерживаем кнопку Power на телефоне около секунды, двух, до тех пор пока он не перезагрузится.

Первое включение телефона после прошивки может продолжаться несколько минут, необходимо подождать пока не инициализируются все данные. Вообщем-то первое включение аналогично тому, как если бы вы только что купили новый телефон в магазине, достали из коробки и впервые в жизни включили его. Сразу же после завершения загрузки и инициализации данных на дисплее появится экран приветствия:


Добро пожаловать в ваш обновленный Micromax Q415! Если есть какие-то вопросы, задаем их в комментариях здесь или в сообществе.

p.s. Эх, а коврик-то уже порвался ... )

p.p.s. Да, как вы уже поняли, с помощью утилиты Qualcomm Smartphone Multi-Port Software Upgrade Tool можно прошить одновременно до 16 (!) устройств. При этом среднее время прошивки одного устройства составляет ~4 min.

воскресенье, 4 октября 2015 г.

Idol 3. Firmware Checker.

Сегодня мы опять поговорим про Alcatel Idol 3. В одном из своих сентябрьских постов я писал о процедуре переразметки памяти на Alcatel Idol 3 4.7" 6039Y. Для тех кто не читал этот пост, вкратце - на части выпущенных аппаратов оказалась физически установлена eMMC Flash на 16 Gb, вместо заявленных 8-ми. Однако, как выяснилось позже, у некоторых пользователей по неизвестным причинам не получалось выполнить процесс переразметки. Причина оказалась банальной ... оказывается существуют аппараты где памяти действительно 8 Gb, и 16 из них сделать не удастся при всем желании. Проверить сколько именно физической памяти установлено в вашем аппарате, а также получить информацию о версии установленной прошивки и артикуле аппарата можно с помощью простого приложения Idol 3 Firmware Checker. Интерфейс приложения минималистичен и выглядит следующим образом:


Как видно, здесь отображаются:

  • Модель вашего аппарата.
  • Текущая версия прошивки.
  • Внутренний идентификатор прошивки.
  • Артикул (Provider ID)
  • Физический размер eMMC Flash в Mb.
  • Наличие Root (наличие root-прав проверяется также, как и в приложении FOTA)

История версий:

  • 18.09.2015 - Первая версия приложения. Определение модели аппарата, версии прошивки, идентификатора и артикула.
  • 01.10.2015 - Добавлено определение наличия root-прав. Наличие root определяется по тому же самому алгоритму, который используется в приложении "Беспроводное обновление". Таким образом, если Idol 3 Firmware Checker говорит вам что у вас есть root, то и FOTA также будет знать про наличие root на вашем аппарате. Немного улучшен UI, информацию в Edit'ах теперь нельзя отредактировать вручную.
  • 04.10.2015 - Добавлено определение объема физической памяти, исправлена работа функционала "Поделиться".

Приложению не требуется дополнительных прав и т.п., т.е. ваши данные никуда не отсылаются. По нажатию кнопки "Поделиться" вы можете скопировать информацию в буфер обмена (для этого нужно выбрать действие "Копировать") или отправить ее в любое другое приложение (например SMS или EMail). Вот, вообщем-то и все ... 

p.s. Если у вас будут какие-то идеи по добавлению дополнительных функций, либо еще какой-либо информации в приложение - пишите в комментариях, обсудим.

вторник, 12 мая 2015 г.

Как сделать Backup прошивки с помощью SP Flash Tool (MediaTek)?

В этом посте я расскажу о том как снять backup прошивки с практически любого аппарата на базе MediaTek с помощью SP Flash Tool и MTK Droid Tools. Также, отдельно, я рассмотрю случаей, когда MTK Droid Tools по каким-либо причинам не видит аппарат, но есть доступ по ADB. Итак, приступим. Для начала скачаем все необходимое:

После того как мы скачали все необходимое, можно, например, создать в корне какого-нибудь папку Android и разложить распакованное содержимое архивов по папкам, т.е. драйвера в папку Drivers, Platform Tools в отдельную папку, SP Flash Tool в отдельную, MTK Droid Tools тоже в отдельную.

Далее включаем на своем устройстве Режим разработчика и активируем отладку по USB. Т.е. сначала заходим в Настройки -> О телефоне (Об устройстве) и кликаем несколько раз (5-7) по надписи "Номер сборки", до появления сообщения о том что Режим разработчика активирован. Далее переходим в меню Настройки -> Для разработчиков и ставим галочку на "Отладка по USB":


После этого подключаем устройство к ПК и устанавливаем драйвера ADB (т.е. либо запустив AdbDriverInstaller.exe из архива, либо открыв диспетчер устройств и указав вручную путь к драйверам в папке Android ADB driver x64 для неизвестного устройства). В результате должно получиться так (Диспетчер устройств):


Устройство Android ADB Interface в диспетчере устройств подтверждает что у нас все готово к следующему шагу.

Запускаем MTK Droid Tools:


Ждем пока устройство определится в нем и нажимаем кнопку "Карта блоков":


После чего нажимаем кнопку "Создать scatter файл" и сохраняем получившийся файл (у меня он назывался MT6582_Android_scatter.txt) на диск. На этом этап подготовки закончен и можно приступать непосредственно к чтению данных.

Открываем получившийся файл в Notepad++ или Word (обратите внимание, обычный блокнот не подойдет) и находим в нем строчку partition_name: CACHE:


И запоминаем то, что у вас написано в графе linear_start_addr, в данном случае это - 0x3E900000.

Отключаем телефон от ПК и выключаем его, т.е. держим кнопку выключения питания и выбираем в меню "Отключение питания", также можно отсоединить и вставить батарею. Далее запускаем SP Flash Tool и переходим в нем на закладку Readback. Далее нажимаем кнопку Add. В результате в таблице появится одна строка:


Кликаем по ней, у нас появляется запрос выбора места сохранения файла ROM_0, выбираем папку, в которую мы его хотим сохранить и на следующем экране в поле Length вводим запомненное нами ранее число (linear_start_addr):


В итоге должно получиться что-то вроде этого:


После чего подключаем выключенный телефон (!) к ПК. В этот момент желательно открыть диспетчер устройств. Пока никакие кнопки в SP Flash Tool на этом экране не нажимаем!

В момент подключения у вас определится неизвестное устройство MT65xx PreLoader и ОС предложит вам установить драйвера на него. На картинке ниже это наглядно показано. Лучше сразу перед подключением телефона открыть диспетчер устройств, чтобы "отловить" момент появления MT65xx PreLoader. Если устройство появится, а ОС не предложит автоматически установить драйвера, то это надо сделать вручную, кликнув правой кнопкой мыши на устройстве MT65xx PreLoader. 


Выбираем "Выполнить поиск драйверов на этом компьютере" и указываем папку в которой находится распакованное содержимое архива mtk_xp_vista_7_8_x32_x64.zip (т.е. к этому моменту вы должны распаковать архив куда-нибудь). После того как драйвера успешно установятся, картинка в диспетчере устройств должна поменяться на такую: 


Если драйвера установились - можно переходить к следующему шагу. Обратите внимание, что при подключении телефона Preloader USB VCOM Port может появляться всего на несколько секунд - это нормально, наша задача на этом этапе установить драйвера телефона, чтобы он определялся именно как Preloader USB VCOM Port, а не неизвестное устройство MT65xx PreLoader. Если вы вдруг не успели установить драйвера, а телефон включился - вытаскиваем батарею, отсоединяем телефон, вставляем батарею, подключаем телефон и повторяем процедуру.

Как только мы убедились что драйвера у нас установлены - отсоединяем телефон от ПК. Выключаем его, в открытом у нас SP Flash Tool нажимаем кнопку Readback и подключаем выключенный телефон к ПК. После этого у нас пойдет процесс считывания прошивки из телефона:

Многие пишут о затруднениях возникающих именно на этом шаге. Попробую объяснить чуть подробнее. После того как вы нажимаете кнопку Readback - SP Flash Tool переходит в режим ожидания подключения телефона, т.е. подразумевается что до этого вы успели отловить момент когда выключенный телефон у вас определяется как MT65xx PreLoader и установить на него драйвера, чтобы в COM-портах у вас появился Preloader USB VCOM Port. Если вдруг по каким-то причинам SP Flash Tool написал об ошибке, или телефон не успел подключиться - может помочь следующая методика (все описанное справедливо только если вы корректно установили драйвера и при подключении телефона у вас появляется именно Preloader USB VCOM Port): отключаем телефон от ПК, вынимаем батарею, нажимаем кнопку Readback, подключаем телефон с вытащенной батареей. В SP Flash Tool пойдет красная полоска (Download), за это время быстро вставляем батарею назад, если мы успели, то пойдет синяя полоска Readback с процентами, как на картинке:


Ждем пока процесс завершится. Создание backup'а может занимать 10-15 минут. Просто смотрим на бегущие проценты и ничего не трогаем ;) По окончании процедуры чтения у вас появится надпись Readback Ok:


Пока у нас делается Backup самое время пояснить что же такое scatter файл и что представляет собой файл ROM_0, который мы получим на выходе. Память телефона - это обычная EMMC Flash, которая разбита на определенные разделы. Scatter файл это и есть файл описания разделов (так, например в Scatter'е есть разделы PRELOADER, RECOVERY, LOGO, ANDROID и т.п.). Назначение разделов различно, так, например в Recovery - содержится образ recovery, в logo - логотип, использующийся при загрузке системы, в Android - образ system и т.п. Файл ROM_0, который мы получаем на выходе по сути представляет собой сплошной дамп EMMC Flash в одном файле. Но чтобы воспользоваться полученным backup'ом прошивки, например, для восстановления другого аналогичного аппарата - нам еще будет необходимо разбить его на разделы. Здесь я опишу несколько способов как это сделать. Первый и самый распространенный - через MTK Droid Tools. Допустим у нас уже есть файл ROM_0 сделанный с помощью SP Flash Tool.

Включаем питание устройства (телефона) и даем ему загрузиться, после чего вновь запускаем MTK Droid Tools (режим отладки по USB на телефоне при этом, естественно, должен быть включен, а драйвера ADB установлены на ПК), переходим на закладку root, backup, recovery и нажимаем кнопку "Создать бэкап из ROM_ флэштула":


Выбираем получившийся у нас на предыдущем шаге ROM_0 и в окне лога видим примерно следующее:

--- Папка сохранения на компьютере: E:\Android\MtkDroidTools\backups\KINGSING_S1_141117_ForFlashtoolFromReadBack_150512-005322\
 --- scatter сохранен в файле:  
E:\Work\Мегафон Login Plus\MtkDroidTools\backups\KINGSING_S1_141117_ForFlashtoolFromReadBack_150512-005322\MT6582_Android_scatter.txtкопирование завершено 
    -- preloader.bin ...скопировано  ... cut OK
    -- MBR ...скопировано 
    -- EBR1 ...скопировано 
    -- pro_info ...скопировано 
    -- nvram.bin ...скопировано 
    -- protect_f ...скопировано 
    -- protect_s ...скопировано 
    -- seccfg ...скопировано 
    -- uboot.bin ...скопировано 
    -- boot.img ...скопировано 
...
Ну и т.д. Теперь в папке сохранения, у меня это E:\Android\MtkDroidTools\backups\ у нас появляется папка с полным backup'ом нашей прошивки, разбитым на разделы (т.е. каждый раздел в отдельном файле):


На этом процесс создания Backup'а прошивки завершен. Если вы только хотели узнать как сделать backup прошивки с помощью SP Flash Tool и у вас все получилось, дальше можно не читать.

Для продвинутых

А что делать если MTK Droid Tools "не видит" телефон? Или же не получается создать scatter файл или разбить получившийся файл ROM_0 на разделы? Как получить карту разделов и есть ли возможность "разрезать" файл ROM_0 вручную? Такая возможность есть. Чтобы получить карту разделов на MTK 65xx нужно в консоли ADB дать команду cat /proc/dumchar_info - т.е. запустить в консоли adb shell и уже там набрать эту команду:


Если вдруг телефон по каким-то причинам не видится и через ADB (в этом случае я советую ознакомиться с мануалом по ADB, может быть проблема в VEN_ID устройства и его нужно просто прописать в %USERPROFILE%\.android\adb_usb.ini), то ту же самую команду можно дать и в самом телефоне, установив Terminal Emulator for Android из Google Play:


Как видите - результат точно такой же и linear_start_address раздела cache можно взять и отсюда. Да, к слову, в новых устройствах, например на базе MTK 6752, таких как Билайн Про, ZTE Q Lux и т.п. карту разделов можно получить с помощью cat /proc/partinfo. MTK Droid Tools с этими устройствами вообще не работает.

Методика получения адреса старта раздела cache, который нужен для получения ROM_0 с помощью SP Flash Tool у нас теперь есть. Также мы знаем адреса (смещения) и размеры каждого из разделов. Т.е. чтобы "порезать" ROM_0 на разделы - использовать MTK Droid Tools нам вовсе не обязательно. Это можно сделать "руками" в любом Hex-редакторе, поддерживающим функцию выделения и сохранения блока в файл (я пользуюсь консольным HIEW). Ну и в качестве примера давайте "вырежем" раздел с Recovery из получившегося ROM_0 файла.

Мы знаем (из scatter'а или из dumchar_info) его linear_start_addr: 0x4180000 и partition_size: 0x1000000. Открываем ROM_0 в HIEW и переходим на 0x4180000. Т.е. в консоли делаем hiew32 ROM_0, затем нажимаем F5 и вбиваем адрес начала раздела - 4180000:


Как вижно по 4180000 у нас находится сигнатура ANDROID!, что говорит нам о том, что мы на верном пути ;) Адрес конца раздела вычисляется как linear_start_addr+partition_size-1 = 0x517FFFF в нашем случае. Нажимаем в HIEW * (звездочку на доп. клавиатуре) для начала выделения блока (если подвигать стрелками вверх / вниз / вправо / влево, то мы видим как блок начинает выделяться цветом) и либо спускаемся до 0x517FFFF, либо делаем это через F5:


И заканчиваем выделение блока, опять же через "серую" * (на доп. клавиатуре). После этого нажимаем F2 - Put block (сохранение блока в файл):


И раздел recovery у нас записан. Точно также можно вырезать из ROM_0 любой другой раздел. Как вы понимаете MTK Droid Tool при этом нам вообще не нужен. 

Для упрощения процедуры можно также написать скрипт / программу, которая будет делать это автоматически для всех разделов, но у меня честно говоря не хватает времени на это, да и не так часто возникает эта задача, так что HIEW'а мне вполне хватает для этих целей. 

p.s. На этом пока все ... пост получился как "черновой вариант", т.к. писался на скорую руку, возможно позже я его дополню, если будут какие-то непонятные моменты. И конечно же, как всегда, буду раз вашим комментариям и вопросам ...

p.p.s. Как меня успели немного поправить, в /proc/dumchar_info содержатся не linear_start_addr из scatter'а, а physical_start_addr. Т.е. в приведенном примере для раздела с recovery мы имеем:

  linear_start_addr: 0x4180000
  physical_start_addr: 0x2D80000
  partition_size: 0x1000000

И в /proc/dumchar_info мы в графе StartAddr мы видим именно physical_start_addr. Но если мы взглянем на размер первого раздела (preloader), то становится понятно как перевести physical_start_addr в linear_start_addr, если к 0x2D80000 добавить 0x1400000 (это как раз размер preloader'а), то как раз получается 0x4180000.