Git Product home page Git Product logo

qtools's Introduction

qtools

Набор инструментов для работы с flash модемов на чипсете Qualcom Набор состоит из пакета утилит и набора патченных загрузчиков.

qcommand - интерактивный терминал для ввода команд через командный порт. Идет на замену жутко неудобного revskills. Позволяет вводить побайтно командные пакеты, редактировать память, читать и просматривать любй сектор flash.

qrmem - программа для чтения дампа адресного пространства модема.

qrflash - программа для чтения flash. Умеет читать как диапазон блоков, так и разделы по карте разделов.

qwflash - программа для записи образов разделов через режим user partitions загрузчика, аналогично QPST.

qwdirect - программа для прямой записи блоков флешки с/без ООВ через порты контроллера (без участия логики загрузчика).

qdload - программа для загрузки загрузчиков. Требует, чтобы модем был в download mode или режиме аварийной загрузки PBL.

dload.sh - скрипт для перевода модема в режим загрузки и отправки в него указанного загрузчика.

Для работы программ требуются модифицированные версии загрузчиков. Они собраны в каталоге loaders, а исходник патча лежит в cmd_05_write_patched.asm.

qtools's People

Contributors

forth32 avatar kobin23 avatar rust3028 avatar vvevvevve avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qtools's Issues

Compile for arm32

Can this qcommand run in arm32? i already compile it and run the binary but not working
/ # ./qcommand.h -p /dev/tty -e -c "c 4b 65 1 0" && cat /dev/tty
Ke� T�~

in windows the command should respond and change the port to quallcomm. but when use on arm32 the modem itself, the command cannot respond at all and change the port

add MSM8996 chipset support

Hi! I'm trying to use qdload with my leEco x829 (Snapdragon 820 MSM8996) and noticed that it's not listed in chipset list, also calling command ./qdload -p /dev/ttyUSB0 -k MSM8996 gives - Неверный код чипсета error. Same issue with any of listed chipset codes. Am i doing something wrong or this chipset is unsupported for now?

Thank you

raw dump mdm9x25 badblocks detected

Hello
i'm performing raw dumpe write to mdm9x25 device it detects badblocks then device is unable to start and stays on download mode qualcomm hs-usb qdloader 9008 , is there anyway to fix the badblocks by erasing or any other solution ?

thanks for help

`
qwdirect -p22
-fi -b0 rawdump-Djezzy-MF910+-B03.bin

Write from file rawdump-B01.bin, starter unit 000, the size 1000
Recording mode: raw image without calculation of ЕСС
Data format: 512+16
Block: 0f39 Page: 3f
Block f3a defective - skipping
Block: 0f99 Page: 3f
Block f9a defective - skipping
Block: 0fb9 Page: 3f
Block fba defective - skipping
Block: 0fc9 Page: 3f
Block fca defective - skipping
Block: 0fd9 Page: 3f
Block fda defective - skipping
Block: 0fe9 Page: 3f
Block fea defective - skipping

Block feb defective - skipping
Block: 0ff9 Page: 3f
Block ffa defective - skipping

Block ffb defective - skipping

Block: 1008 Page: 3f

qcommand -p22 -c "c 0b"

---- ответ ---
00000000: 7e 0c 14 3a 7e *..: *
`

MDM9215 (SIM7100E)

Здравствуйте, товарищи разработчики.
Спасибо за Ваш труд, набор утилит очень полезный.

Теперь, если позволите, к проблеме.
Имеется модем SIM7100E PCI-E, построенный на базе Qualcomm MDM9215.

  1. Если модем жив-здоров, то его прошивка легко и просто сливается по инструкции уважаемого @vvevvevve . Выглядит это так:
./qdload -p /dev/ttyUSB0 -i loaders/NPRG9x15p.bin

 Найден блок идентификации загрузчика
 
Файл загрузчика: loaders/NPRG9x15p.bin
 Адрес загрузки: 41700000
 Размер файла: 63816
 Загружено: 63816
 Запуск загрузчика...ok
 Версия HELLO-протокола: 3
 Чипсет: MDM9x15
 Базовый адрес NAND-контроллера: 1b400000
 Флеш-память: Elite Semiconductor FM6AD2G1GA, NAND 256MiB 1.8V 8-bit
 Размер сектора: 512 байт
 Размер страницы: 2048 байт (4 секторов)
 Число страниц в блоке: 64
 Размер OOB: 64 байт
 Тип ECC: R-S, 4 бит
 Размер ЕСС: 10 байт
 Размер spare: 5 байт
 Положение маркера дефектных блоков: user+1d1
 Общий размер флеш-памяти = 2048 блоков (256 MB)

./qrflash -p /dev/ttyUSB0 -m
00       0  00000a   ff ff ff 00   STD   0:MIBIB
01       a  00001b   ff ff 00 00   STD   0:SBL2
02      25  00001b   ff ff 00 00   STD   0:RPM
03      40  000053   ff ff ff 00   STD   0:EFS2
04      93  00001f   ff 01 00 00   LNX   0:DSP1
05      b2  000052   ff 01 00 00   LNX   0:DSP3
06     104  000196   ff 01 00 00   LNX   0:DSP2
07     29a  000062   ff ff 00 00   STD   0:APPSBL
08     2fc  000052   ff ff 00 00   STD   0:APPS
09     34e  000203   ff ff ff 00   STD   0:CACHE
10     551  00000b   ff ff ff 00   STD   0:MISC
11     55c  000053   ff ff ff 00   STD   0:RECOVERY
12     5af  00000b   ff ff ff 00   STD   0:FOTA
13     5ba  0000b7   ff ff ff 00   STD   0:RECOVERYFS
14     671  000144   ff ff ff 00   STD   0:SYSTEM
15     7b5  00004b   ff ff ff 00   STD   0:USERDATA

qrflash -p3 -x -b0 -l0 -o rawdump.bin

 Чтение блоков 00000000 - 000007ff
 Формат данных: 512+16
 Блок: 000007ff

Первые 2 команды запускались из-под Linux, но это не суть (кстати, под Linux есть проблемы, но это отдельная тема). Таким образом, патченный NPRG-загрузчик спокойно попадает на модем и выполняет свою работу.

  1. Проблема возникает, когда я пытаюсь прошить модем, находящийся в аварийном Download Mode (SimTech HS-USB QDLoader 9008). Не могу загрузить ENPRG-загрузчик никак. Выглядит это как-то так:
qdload.exe -p9 -k4 -a 2A000000 -i loaders\ENPRG9x15p.bin

 Файл загрузчика: loaders\ENPRG9x15p.bin
 Адрес загрузки: 2a000000
 Размер файла: 75776
 Загружено: 75776
 Запуск загрузчика...ok
 Отсылка hello... повторный hello возвратил ошибку!
00000000: 7e 0d 08 00 00 00 55 6e 72 65 63 6f 67 6e 69 7a  *~.....Unrecogniz*
00000010: 65 64 20 66 6c 61 73 68 20 64 65 76 69 63 65 53  *ed flash deviceS*
00000020: b2 7e                                            *.~              *

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

Производитель поставляет собственные загрузчики в составе прошивки, на всякий случай размещаю их тут: http://rgho.st/8pqLC2nqq

Очень надеюсь, что вы сможете чем-то помочь в данной ситуации. Готов оказывать всяческое содействие.

Формат файла загрузчика

Добрый день. Не нашёл места где можно было бы задать вопрос по проекту. Я так понимаю что все вопросы писать можно сюда. Извините если ошибся.
Я хотел спросить о формате файлов загрузчиков. В проекте они все (почти) hex. Или BIN. У меня телефон на qualcomm, но к нему в заводской прошивке загрузчик идёт в ELF формате. ARM little indean. Его понимает QPTS. Через него шью когда надо бывает восстановить кирпич. Qtools не принимает такой загрузчик. Да мне его и не про патчить даже.
HEX мне нужно как то перекомпилировать из ELF? Или это вообще разные вещи и нужно искать отдельный загрузчик в hex формате. И ELF никакого отношения к этому не имеет?

И такой вопрос. В телефоне есть какая то проверка на валидность загрузчика? Типа контрольной суммы? Я пробовал свой загрузчик декомпилировать и вносить небольшие изменения. Но телефон после попытки загрузить в него изменённый загрузчик переставал работать и переходил в режим загрузки пока в него не загружался оригинальный файл. В том что изменял корректно и не запорол файл уверен на 78% :)

logical error in convert_cmdbuf

The correct way to escape a command is:

Example

  1. escape the command
  2. apply the hdlc checksum
  3. escape the checksum

Your rotine does only the first one
But it will give error if the checksum contains 7e,7d or 5d.

Regards.
Zibri

qrflash possibility to add save ptable.bin while using -m

Hello
is it possible to save the partition table when we use qrflash -m to view the partition table directly from the flash into a file current-ptable.bin ? thanks for support


qtools_win>qrflash -p22 -m``
 # start size A0 A1 A2 F # format ------ Name ------
============================================================
00 0 00000a ff 01 00 00 LNX 0:SBL
01 a 00000a ff 01 ff 00 LNX 0:MIBIB
02 14 00002c ff 01 00 00 LNX 0:EFS2
03 40 00001b ff 01 00 00 LNX 0:SDI
04 5b 00001b ff 01 00 00 LNX 0:TZ
05 76 000006 ff 01 00 00 LNX 0:MBA
06 7c 00001b ff 01 00 00 LNX 0:RPM
07 97 000196 ff 01 00 00 LNX 0:QDSP
08 22d 000054 ff 01 00 00 LNX 0:ADSP
09 281 000032 ff 01 00 00 LNX 0:ZTEFLAG
10 2b3 0000a2 ff 01 00 00 LNX 0:BSPFOTA
11 355 00002b ff 01 00 00 LNX 0:NVBAK
12 380 000007 ff 01 00 00 LNX 0:APPSBL
13 387 000052 ff 01 00 00 LNX 0:APPS
14 3d9 000196 ff 01 00 00 LNX 0:SCRUB
15 56f 00000b ff 01 00 00 LNX 0:MISC
16 57a 000159 ff 01 00 00 LNX 0:CACHE
17 6d3 00012c ff 01 00 00 LNX 0:SYSTEM
18 7ff 000279 ff 01 00 00 LNX 0:USERDATA
19 a78 000053 ff 01 00 00 LNX 0:RECOVERY
20 acb 00000b ff 01 00 00 LNX 0:FOTA
21 ad6 0000a5 ff 01 00 00 LNX 0:ZTEDATA
22 b7b 0000ad ff 01 00 00 LNX 0:ZTEFILE
23 c28 0003d8 ff 01 00 00 LNX 0:RECOVERYFS
============================================================
Section table version: 4


error in compile

chipoza@ubuntu:~/Desktop/qtools-master$ make
gcc -O2 -g -Wno-unused-result -Wunused -c -o qcommand.o qcommand.c
In file included from qcommand.c:1:0:
include.h:38:39: fatal error: readline/readline.h: No such file or directory
compilation terminated.
: recipe for target 'qcommand.o' failed
make: *** [qcommand.o] Error 1

Нужен лоадер для Qualcomm MSM7625A

Здравтвуйте! Я так надругался над своим E5830, что, похоже, он ушел в режим аварийной загрузки PBL. Единтсвенное, на что он реагирует, так это на qdload (начинает моргать индикатор модемного соединения). На прошивки он не реагирует. Разве что, после balong_flash он начинает выдавать это:
~¤¤¤Њo~_
Пожалуйста, помогите найти загрузчик и адрес загрузки.

Востановление загрузчика

Добрый день.
Имеются неаколько mini-PCIe карт Sierra Wireless AirPrime MC8090 у которых поврежден загрузчик, находится в режиме Qualcomm HS-USB QDLoader 9008.
Пытаюсь востановить загружчик с помощью команды:
./qdload -p /dev/ttyUSB0 -k 4 -i loaders/NPRG6200_p_1.bin
Но после этого модем вообще перестает определяться
usb 1-3: device descriptor read/64, error -110
Может кто-нибудь помочь с востановлением.
Заранее спасибо.

Очень нужен дамп PBL

Коллеги, здравствуйте.
Для исследования очень нужен дамп PBL от MSM8953 или чего-нибудь близкого. Выложите куда-нибудь, пожалуйста.

Загрузчик 7625

Пожалуйста сделайте патченный загрузчик под этот проц.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.