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

Non hlos bin что это

  • автор:

acdev

Ради фана и прокачки скилов решил собрать Qualcomm модем из исходников. В качестве целевой платформы выбрал msm8916 , т.к. именно под эту платформу можно скачать исходники из интернета.

Для начала нужно скачать эти самые исходники. Для этого нужно воспользоваться торрент клиентом. Сам торрент можно найти, если загуглить строку EF3BF4FD7388657FF35C3DBF2B6367F924F8CDBC (magnet link). Скачивать можно не всё содержимое торрента, а только файл
» msm8916_2014-12-03_amss_qrd/modem_proc.zip » (500 MB).

Для сборки исходников модема msm8916 нам понадобится пакет HEXAGON Tools v6 . Этот пакет входит в состав Hexagon SDK v2.0 — Linux. Но почему то консольный вариант установки этого SDK зависает на 30%. Поэтому предлагаю скачать отдельно HEXAGON Tools 6.4.06 ? используя магнет ссылку 61e8b8a520181ade801c251e5ec9352e33a7bb8c (magnet link) (490 MB).

Пока скачиваются тулзы и торрент следует распаковать NON-HLOS образ, который следует взять из прошивки целевого устройства. В моём случае этим устройством будет являться ASUS ZE550KL , т.к. разработчики из ASUS все свои модемы подписыват тестовым сертификатом Qualcomm (данный сертификат имеется в исходниках).
Распаковка образа NON-HLOS.bin осущестляется таким образом:

MODEM_DIR=$HOME/dev/asus_ze550kl MODEM_STK=$MODEM_DIR/NON-HLOS.bin MODEM_VDISK=/media/vdisk sudo mkdir -p $MODEM_VDISK sudo mount -t vfat $MODEM_STK -o ro $MODEM_VDISK cp -f -r $MODEM_VDISK/* $MODEM_DIR sudo umount $MODEM_STK

После этого в директории » dev/asus_ze550kl/image » должен появиться следующий набор файлов:

mba.mbn modem.b00 modem.b01 modem.b02 . modem.b25 modem.b26 modem.mdt

После скачивания торрента и утилит, при помощи которых будет осуществляться сборка модема msm8916 , можно приступить к настройке операционной системы (рекомендую использовать Ubuntu 14.04 64-bit).

Для начала нужно установить некоторые зависимости:

sudo apt-get install p7zip-full sudo apt-get install lib32z1 lib32ncurses5 sudo apt-get install scons sudo apt-get install libxml-parser-perl

Установим HEXAGON Tools в систему из директории ~/Downloads :

cd $HOME mkdir -p Qualcomm/HEXAGON_Tools cd $HOME/Downloads 7za x -y -o$HOME/Qualcomm/HEXAGON_Tools hexagon_tools_6.4.06.7z

Распакуем исходники модема msm8916 в директорию ~/dev/qcom :

cd $HOME mkdir -p dev/qcom/msm8916/modem_proc cd $HOME/Downloads/msm8916_2014-12-03_amss_qrd 7za x -y -o$HOME/dev/qcom/msm8916/modem_proc modem_proc.zip

Т.к. zip-архив не хранит информацию о UNIX-атрибутах, следует устранить это недоразумение:

cd $HOME/dev/qcom/msm8916/modem_proc find . -name '*.sh' -exec chmod -f 775 <> \; find . -name '*.mk' -exec chmod -f 775 <> \; find . -name '*.py' -exec chmod -f 775 <> \; find . -name '*.pl' -exec chmod -f 775 <> \; find . -name '*.lcs' -exec chmod -f 775 <> \; find . -name '*.api' -exec chmod -f 775 <> \; find . -name '*.xml' -exec chmod -f 775 <> \; find . -name '*.scons' -exec chmod -f 775 <> \; find . -name 'scons' -exec chmod -f 775 <> \; find . -name 'SConscript' -exec chmod -f 775 <> \; find . -name 'SConstruct' -exec chmod -f 775 <> \; find . -name 'Makefile' -exec chmod -f 775 <> \; find . -name 'makefile' -exec chmod -f 775 <> \; find . -name 'qaic' -exec chmod -f 775 <> \; find . -name 'doxygen' -exec chmod -f 775 <> \; find . -name 'qdsp6-image-build' -exec chmod -f 775 <> \; find . -name 'SleepSynth' -exec chmod -f 775 <> \; find . -name 'crypto_cbc' -exec chmod -f 775 <> \; find . -name 'crypto_ccm' -exec chmod -f 775 <> \;

Перейдём в директорию » modem_proc/build/ms » , т.к. именно тут находится shell-скрипт, запускающий процесс сборки. Так же в этой директории следует ожидать появления результатов сборки в поддиректории » bin «. Перед запуском сборки нужно превести предварительную настройку. Откройте в тектовом редакторе файл build.sh и выполните следующие изменения:
1) удалите первую строчку, содержащую строку » #!/bin/sh »
2) замените строку » source setenv.sh » на » . setenv.sh «

В этой же директории нужно создать файл setenv.sh со следующим содержанием:

export ARMTOOLS=ARMCT5.05 export ARMROOT=$HOME/ARMCompiler5.05u2 export ARM_COMPILER_PATH=$ARMROOT/bin64 export ARMHOME=$ARMROOT export ARMLIB=$ARMROOT/lib export ARMINCLUDE=$ARMROOT/include export ARMBIN=$ARMROOT/bin64 export ARMINC=$ARMINCLUDE export ARMLMD_LICENSE_FILE=$ARMROOT/Community.lic export HEXAGON_ROOT=$HOME/Qualcomm/HEXAGON_Tools export HEXAGON_RTOS_RELEASE=6.4.06 export HEXAGON_Q6VERSION=v5 export HEXAGON_IMAGE_ENTRY=0xC0000000 export PYTHON_PATH=/usr/bin/python export PYTHONPATH=/usr/bin/python export MAKE_PATH=/usr/bin/make export PATH=$MAKE_PATH:$ARM_COMPILER_PATH:$HEXAGON_ROOT/$HEXAGON_RTOS_RELEASE/qc/bin:$HEXAGON_ROOT/$HEXAGON_RTOS_RELEASE/gnu/bin:$PATH:PYTHONPATH

Хочется обратить внимание на значение параметра HEXAGON_IMAGE_ENTRY . Данное значение следует искать в стоковом модеме:

cd $HOME/dev/asus_ze550kl/image readelf -h modem.b00

На входе получаем такую информацию о стоковом образе модема:

ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: QUALCOMM DSP6 Processor Version: 0x1 Entry point address: 0xc0000000 Start of program headers: 52 (bytes into file) Start of section headers: 0 (bytes into file) Flags: 0x4 Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 28 Size of section headers: 40 (bytes) Number of section headers: 0 Section header string table index: 0

Из всего этого нас интересует только значение параметра » Entry point address «, равное 0xC0000000.

Теперь откройте в текстовом редакторе файл build_cfg.xml и сделайте следующие изменения:
1) значение параметра hexagon_image_entry измените на «0xC0000000»
2) значение параметра hexagon_rtos_release измените на «6.4.06»
3) значение параметра cflags измените на
» -Wno-error -Wno-tautological-constant-out-of-range-compare -Wno-medium -Wno-low -hexagon-predef-argset=modem-sw -mllvm -shrink-wrap-ext-wrapper-section=.wrap.func «

Далее нужно исправить досадную ошибку в файле » modem_proc/build/bsp/mapss_b/build/mapss_b.scons «. Для этого откройте его в текстовом редакторе, найдите вот такой участок кода:

legacy_mode = True if hex_version[0] >= '7': legacy_mode = False elif hex_version[0] == '6': if hex_version[1] == '2': if len(hex_version) >= 3 and hex_version[2] >= '06': legacy_mode = False elif hex_version[1] == '4': legacy_mode = False

и добавьте 2-ве выделенных строчки кода (в оригинале они отсутствуют).

Теперь нужно добавить версию HEXAGON Tools 6.4.06 в белый список:

cd $HOME/dev/qcom/msm8916/modem_proc/core/kernel/qurt HEXAGON_RTOS_RELEASE=6.4.06 WL_PREFIX="toolsver_whitelist \\= \\[" find . -name 'target_tools.py' -exec sed -i "s/$WL_PREFIX/$WL_PREFIX\"$HEXAGON_RTOS_RELEASE\" ,/" <> \;

Перед началом сборки следует определиться с вариантом собираемого модема. Для этого следует в распакованном образе NON-HLOS.bin найти строку » IMAGE_VARIANT_STRING= «:

cd $HOME/dev/asus_ze550kl/image grep -aohP "IMAGE_VARIANT_STRING=." modem.b*

Результат поиска таков: «IMAGE_VARIANT_STRING=EAAAANUZ»

Далее стоит в редактируемом ранее файле build_cfg.xml найти соответствие для строки » EAAAANUZ » найти вариант сборки:

  gen prod EAAAANVZ    genns prod EAAAANUZ   

Значит разработчики из ASUS используют вариант сборки «genns«.

Запускаем сборку модема:

cd $HOME/dev/qcom/msm8916/modem_proc/build/ms/ ./build.sh 8916.genns BUILD_ID=EAAAANUZ -k

Через некоторое время процесс сборки остановится и выдаст следующие ошибки:

** Build errors. /home/android/dev/qcom/msm8916/modem_proc/geran/gmac/build/mapss_b/qdsp6/EAAAANUZ/gmacidleutil.o failed: Error 1 /home/android/dev/qcom/msm8916/modem_proc/geran/gmac/build/mapss_b/qdsp6/EAAAANUZ/gmacutil.o failed: Error 1

Сначала исправим ошибку в gmacidleutil.c :

else < if( /*(((starting_time_fn - reception_fn_mod_42432) % 42432) >= 0) &&*/ (((starting_time_fn - reception_fn_mod_42432) % 42432) 

Т.е. нужно всего навсего закоментировать первую часть условия.
В файле gmacutil.c нужно исправить полностью аналогичную ошибку.

Теперь можно снова запустить сборку исходников:

cd $HOME/dev/qcom/msm8916/modem_proc/build/ms/ ./build.sh 8916.genns BUILD_ID=EAAAANUZ -k

Хочу сразу отметить, что если вам понадобиться начать сборку с самого начала, то перед этим нужно выполнить " clean ". Для этого нужно в консоли ввести следующее:

cd $HOME/dev/qcom/msm8916/modem_proc/build/ms/ ./build.sh 8916.genns BUILD_ID=EAAAANUZ --clean

Через некоторое время процесс сборки должен завершиться и при успехе вы в консоли должны увидить следующие строки:

#------------------------------------------------------------------------------- Build 8916.genns returned code 0. #------------------------------------------------------------------------------- Overall Start Time: Sun Aug 14 16:26:43 2016, Overall End Time: Sun Aug 14 16:31:21 2016 Overall Delta Time: 4 minutes, 37 seconds #-------------------------------------------------------------------------------

Результаты сборки следует искать в директории " dev/qcom/msm8916/modem_proc/build/ms/ ":

./build.log ./bin/EAAAANUZ/mba.mbn ./bin/EAAAANUZ/qdsp6sw.mbn ./bin/EAAAANUZ/unsigned/mba.mbn ./bin/EAAAANUZ/unsigned/qdsp6sw.mbn

Т.к. в стоковом образе NON-HLOS.bin используются подписанные модули, то нужно использовать для дальнейших операций файлы " EAAAANUZ/mba.mbn " и " EAAAANUZ/qdsp6sw.mbn ". Оба файла подписаны тестовым сертификатом Qualcomm.
Теперь нужно файл qdsp6sw.mbn разбить на множество более мелких файлов, которые представляют из себя ELF-секции исходного MBN-файла. Для этого нужно выполнить следующее:

cd $HOME/dev/qcom/msm8916/modem_proc/build/ms/bin wget http://github.com/remittor/qcom-mbn-tools/raw/master/pil-splitter.py BUILD_ID=EAAAANUZ MBN_FILE=./$BUILD_ID/qdsp6sw.mbn MBN_PREFIX=modem cd $HOME/dev/qcom/msm8916/modem_proc/build/ms/bin python pil-splitter.py $MBN_FILE $MBN_PREFIX

После выполнения скрипта pil-splitter.py в директории " bin " появится следующий набор файлов:

modem.b00 modem.b01 modem.b02 . modem.b24 modem.b25 modem.mdt

Так же в эту папку следует добавить файл mba.mbn , что можно сделать таким способом:

BUILD_ID=EAAAANUZ MBN_FILE=./$BUILD_ID/mba.mbn cd $HOME/dev/qcom/msm8916/modem_proc/build/ms/bin cp -f $MBN_FILE ./

Далее нужно полученные файлы добавить в стоковый образ NON-HLOS.bin. Эту операцию можно осуществить следующим способом:

MODEM_DIR=$HOME/dev/asus_ze550kl MODEM_STK=$MODEM_DIR/NON-HLOS.bin MODEM_NEW=$MODEM_DIR/NON-HLOS-NEW.bin MODEM_VDISK=/media/vdisk cp -f $MODEM_STK $MODEM_NEW sudo mkdir -p $MODEM_VDISK sudo mount -t vfat $MODEM_NEW -o rw,umask=0000 $MODEM_VDISK rm -f $MODEM_VDISK/image/modem.mdt rm -f $MODEM_VDISK/image/modem.b* rm -f $MODEM_VDISK/image/mba.* cd $HOME/dev/qcom/msm8916/modem_proc/build/ms/bin cp -f ./modem.mdt $MODEM_VDISK/image/ cp -f ./modem.b* $MODEM_VDISK/image/ cp -f ./mba.* $MODEM_VDISK/image/ sudo umount $MODEM_NEW

Теперь у нас имеется файл NON-HLOS-NEW.bin , который содержит новые бинарные модули, относящиеся непосредственно к модему. Осталось только проверить работоспособность этого образа NON-HLOS-NEW.bin. Но сделать этого я не могу, т.к. у меня нету девайса ASUS ZE550KL .

Поэтому я оставлю тут патч для TWRP, который устанавливает в девайс ASUS ZE550KL этот новый модем: modem_test_005.zip (только для модификации Z00L на чипе msm8916 )

Non hlos bin что это

linerty

Lenovo Vibe Z2 Pro (K920) - Патчи модемов от ROW и CN прошивок под TWRP

Опубликовал linerty , 8 декабря, 2014

В этой теме 101 сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Войти

Уже есть аккаунт? Войти в систему.

Исправлена ​​ошибка, из-за которой сеть не работала после прошивки EU ROM на китайском Xiaomi.

В этом руководстве мы покажем вам, как решить проблему, из-за которой сеть не работает после прошивки EU ROM на китайском варианте (CN) вашего устройства Xiaomi. Хотя базовым скином ОС по-прежнему является MIUI, но есть некоторые заметные различия в европейской и китайской сборках стандартной ОС. Одним из них является множество ненужных программ и рекламы, включенных в последний.

Чтобы решить эту проблему, пользователи сразу же разблокируют загрузчик, а затем прошьют версию ПЗУ для стран ЕЭЗ/ЕС. Однако это также может иметь некоторые последствия, и в большинстве случаев это влияет на модем. В результате пользователи больше не смогут совершать и принимать звонки и SMS, а также использовать данные оператора связи. Если вы тоже находитесь в одной лодке, то это руководство расскажет вам, как решить эту проблему раз и навсегда. Следуйте дальше.

Исправлена ​​ошибка, из-за которой сеть не работала после прошивки EU ROM на китайском Xiaomi.

Сеть не работает ЕС Китайский Xiaomi

Вы столкнулись с этой проблемой, поскольку у Xiaomi есть разные варианты модемов в глобальной и китайской версиях ПЗУ. Так что для исправления придется прошить модем из версии Global EEA. Вот как это можно сделать:

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

  1. Прежде всего загрузите и извлеките инструменты платформы Android SDK на свой компьютер.Сеть не работает ЕС Китайский Xiaomi
  2. Затем загрузите ПЗУ Global EEA Fastboot, которое соответствует той же версии ПЗУ ЕС.
  3. Теперь извлеките ПЗУ, скопируйте modem.img или NON-HLOS.bin (в зависимости от того, что имеется) и перенесите его в папку Platform-Tools.Сеть не работает ЕС Китайский Xiaomi
  4. Затем введите CMD в адресной строке папки «Инструменты платформы» и нажмите Enter. Это запустит командную строку.
  5. Теперь введите следующую команду в окне CMD, чтобы загрузить устройство в режим быстрой загрузки: adb restart bootloader Сеть не работает ЕС Китайский Xiaomi
  6. Затем введите следующую команду, чтобы прошить файл модема: fastboot flash modem_ab modem.img
  7. Или введите следующую команду, чтобы прошить файл NON-HLOS: fastboot flash modem_ab NON-HLOS.bin
  8. Наконец, загрузите ОС на своем устройстве с помощью приведенной ниже команды: fastboot restart.

Вот и все. Это были шаги по устранению проблемы, из-за которой сеть не работала после прошивки EU ROM на китайском варианте устройства Xiaomi. Если у вас есть какие-либо вопросы относительно вышеупомянутых шагов, сообщите нам об этом в комментариях. Мы свяжемся с вами с решением в ближайшее время.

Инструкция по прошивке Samsung устройств через Odin и что такое Odin вообще?

Odin очень полезный инструмент который позволяет вам взаимодействовать с вашим Samsung устройством (в режиме загрузки) и прошивать его. Это Windows программа, которую использовала/использует компания Samsung для прошивки своих устройств (без режима рекавери/восстановления). К счастью для нас этот софт просочился в сеть и у простых смертных есть возможность пользоваться ним.

Существуют разные версии Odin. Вы можете прошивать .tar, tar.md5 или .bin прошивки через Odin на ваше устройство.

Краткий тур по опциям программы.

Auto Reboot - автоматическая перезагрузка устройства после прошивки;
Re-Partition - перераспределяет файловую систему на вашем устройство по умолчанию (RFS);
F. Reset Time - сбрасывает cчётчик прошивок (flash counter);
PIT - Partition Information Table. Если вы выбрали Re-Partition, то вы также должны указать .pit путь к .pit файлу для перераспределения файловой системы устройства;
Bootloader - для прошивки загрузчика (bootloader);
PDA - сборка прошивки. Для выбора файла с прошивкой, ядром и т.д.
Phone - модем. Для выбора файла модема для прошивки;
CSC - Comsumer Software Customization. Для выбора CSC файла, содержащего специфические для региона и оператора данные;

Будьте очень осторожны при испоьзовании Odin, особенно с опцией Re-Partition и правильным .pit файлом. Если у вас нет нужного .pit файла ни в коем случае не ставьте галочку возле Re-Partition.

Внимание: Odin можно использовать только на устройствах от Samsung!

Как прошить Samsung Galaxy с помощью Odin?

1. Скачайте и установите USB драйвера для Samsung. Или можете установить Samsung Kies , при установке которого драйвера будут установлены автоматически.
2. Удостоверьтесь что у вас есть резервные копии всей важной для вас информации (контакты, SMS, MMS, видео, фото, документы и т.д.) на внутренней или внешней SD картах вашего устройства (или на компьютере).
3. Убедитесь что батарея вашего устройства заряжена хотябы на 60-80%, чем больше тем лучше (не хотелось бы брикнуть телефон во время прошивки если пропадет питание).
4. В настройках устройства включите USB debugging/Отладка USB в Developer Options/Для разработчиков.
5. Убедитесь что Samsung Keis не запущен. Можно “убить” процесс через диспетчер задач.

Установка заводских/официальных прошивок через Odin, обычно, довольно безопасное занятие если все делать верно. Но стоит понимать, что всегда существует шанс брикнуть/сломать устройство, пусть и невелик. Так что все это вы будете делат на свой страх и риск, и автор поста не несет никакой ответственности если что-то пойдет не так.

1. Скачайте zip файл с официальной прошивокй для вашего устройства и распакуйте архив себе на компьютер. Вы увидите либо один .tar или .tar.md5 файл, или же несколько файлов:
- если вы увидите один файл, то внутри него уже будет все что вам нужно для успешной прошивки (PDA, PHONE, CSC);
- если же файлов несколько, то используйте отдельные кнопки PDA (в новых версиях AP), PHONE, CSC для выбора соответствующих файлов;
2. Скачайте архив с прикрплённый к посту внизу распакуйте его. Вы увидите следующие файлы:
- Odin3 v3.04.exe;
- tmax.dll;
- zlib.dll;
- Odin3.ini;
3. Запустите Odin3_v3.04.exe на правах администратора (правый клик ---> в режиме администратора).
4. Загрузите ваше устройство в режим загрузки (download mode). Для большинства устройств от Samsung для этого надо выключить устройство и после этого одновременно зажать кнопки Home (домой) + Питание + Звук вниз и в появившемся меню подтвердить вход в режим загрузки путём нажатия звука вверх.
5. После того как телефон находится в режиме загрузки, подключите его к компьютеру через USB кабель. Если Odin распознает ваше устройство то поле ID:COM станет желтого или голубого цвета и отобразит номер COM порта (скриншот внизу).

Важно : если вы не увидите номер порта в поле ID:COM или если поле не будет желтого или голубого цвета, пожалуйте не продолжайте операцию. Отключите USB и перезагрузите ваше устройство путем нажатия и долгого удерживания кнопки питания. Проверьте корректно ли установлены USB драйвера для Samsung.

6. Если zip архив с прошивкой имел всего один файл, то кликните на кнопку PDA и через обзор выберите .tar или .tar.md5 файл с вашей прошивкой. В случае же если zip архив с прошивкой имел несколько файлов:
- нажмите на BL (Bootloader) и выберите файл который имеет BL или Bootloader в своём названии;
- нажмите на AP (PDA) и выберите файл который имеет CODE или AP (PDA) в своём названии;
- нажмите на PHONE и выберите файл который имеет MODEM в своём названии;
- нажмите на CSC и выберите файл который имеет CSC в своём названии;

Других файлов не трогайте!

7. Убедитесь что флажки расставлены правильно:
- Auto Reboot и F. Reset Time должны быть отмечены;
- все остальные флажки не отмечены;

8. После выбора соответсвующих файлов и проверки флажков нажмите кнопку Start. Начнется процесс прошивки. Ни в коем случае не отключайте телефон от компьютера во время этого процесса. Это можно занять несколько минут.

9. Как только процесс прошивки завершится, ваше устройство перезагрузится. Теперь вы можете отключить его от компьютера и начать использовать.

Можете использовать эту инструкцию для прошивки устройств от Samsung на Android OS.

update: добавил Odin 3.07

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *