Ну, допустим, поддержку в Ghidra можно и добавить, в конце концов, полное описание ISA со всеми опкодами есть. Была бы возможность системный код подменить, в крайнем случае, можно попробовать и в ассемблере разобраться, тем более, что часть этого кода есть в виде исходников для более новых (но совершенно недоступных) QCC7.
Код, видимо, всё-таки подписан. Вот такая строка есть в apps_p0_firmware.xuv (после конвертации в .bin):
Да и в разметке флэш памяти этот файлик указан с истинным значением в поле "src_file_signed". Единственная надежда только на то, что под "подписью" они подразумевают хэш. И, насколько я вижу, в утилитах для сборки есть метод для вычисления этого хэша прямо на самом устройстве.
Я пробовал там менять случайные байты и чип переставал загружаться, ровно так же, как и при неправильном ключе. Но в конце файла с прошивкой системного ядра есть какой-то хэш, вот его я не трогал. Возможно, если его тоже пересчитать, то что-то и выйдет.
Ну, либо мне несколько раз подряд не повезло и случайные байты оказывались критичными для запуска.
На практике тоже. Некоторые бедолаги с заблокированными чипами безуспешно пробовали прошивать: он просто не грузится, хотя вернуть родную прошивку можно.
Я даже не уверен, что можно будет просто в памяти что-то перезаписать, в коде прошивки полно указаний на виртуальную память (что, конечно, весьма нетипично для embedded).
Там 4 ядра и они все Kalimba: 2 для приложений (пользовательское и системное) и 2 для обработки звука (программировать их можно только на QCC5/7, для QCC3 потребуется подпись, которую, опять же, может сделать только Qualcomm. Здесь тоже есть предположение, что это можно обойти, убрав проверку лицензии с системного ядра приложений. Если хотите попробовать, то я могу помочь с настройкой среды разработки и скинуть свой проект плат под модули BTM581, было бы интересно увидеть, получится ли что-то). Под них есть только тулчейн на основе GNU Binutils с какими-то своим компилятором. Впрочем, есть достаточно хорошее описание ISA.
OTP находится внутри чипа, перепрошивка флешки бесполезна, чип попросту не загрузится. А ещё смысла это делать попросту нет, проще сразу взять разблокированный чип.
Вот в USB/BT стэках было бы интересно найти дыры, но вот они предоставляются только в бинарном виде (как прошивка для второго ядра). Было бы интересно, впрочем, попытаться его дизассемблерировать и убрать различные проверки лицензий, но есть вероятность, что эту прошивку второго ядра так просто не поменять. Я пробовал поменять пару байт случайных местах и чип отказывался грузиться, впрочем, может быть, если поправить хэш, то сработает. Если обойти BT стэк, то эти чипы будет легко использовать как USB BT адаптеры, что видится весьма интересной идеей за счёт проприетарный радиоплюшек от Qualcomm.
Там 128-битный ключ в OTP памяти, которым "шифруется" прошивка. В принципе, если этот ключ знать, то перепрошить можно, вот только узнать его можно лишь от продавца.
Почти все эти платы с залоченными модулями и прошить их невозможно, особенно если там есть LDAC.
В FAQ (предпоследний пункт на данный момент) есть рабочая ссылка на магазин производителя, но их нужно немного попинать в чате, чтобы они создали нужный товар. Лучше уточнить, что модуль берётся под перепрошивку, но версия без LDAC у них не залоченная.
Тогда QCC5181 - отличный выбор. Там достаточно производительный DSP, а ещё есть QHS, с которым подключение заметно стабильнее, да и скорость выше стандартных значений в Bluetooth.
Тут я бессовестно прорекламирую свою тему на 4pda с прошивками для чипов от Qualcomm. Производитель ими, конечно, очень не хочет делиться, но достать всё равно можно.
Ну, допустим, поддержку в Ghidra можно и добавить, в конце концов, полное описание ISA со всеми опкодами есть. Была бы возможность системный код подменить, в крайнем случае, можно попробовать и в ассемблере разобраться, тем более, что часть этого кода есть в виде исходников для более новых (но совершенно недоступных) QCC7.
Код, видимо, всё-таки подписан. Вот такая строка есть в apps_p0_firmware.xuv (после конвертации в .bin):
Да и в разметке флэш памяти этот файлик указан с истинным значением в поле "src_file_signed". Единственная надежда только на то, что под "подписью" они подразумевают хэш. И, насколько я вижу, в утилитах для сборки есть метод для вычисления этого хэша прямо на самом устройстве.
Я пробовал там менять случайные байты и чип переставал загружаться, ровно так же, как и при неправильном ключе. Но в конце файла с прошивкой системного ядра есть какой-то хэш, вот его я не трогал. Возможно, если его тоже пересчитать, то что-то и выйдет.
Ну, либо мне несколько раз подряд не повезло и случайные байты оказывались критичными для запуска.
На практике тоже. Некоторые бедолаги с заблокированными чипами безуспешно пробовали прошивать: он просто не грузится, хотя вернуть родную прошивку можно.
Я даже не уверен, что можно будет просто в памяти что-то перезаписать, в коде прошивки полно указаний на виртуальную память (что, конечно, весьма нетипично для embedded).
Там 4 ядра и они все Kalimba: 2 для приложений (пользовательское и системное) и 2 для обработки звука (программировать их можно только на QCC5/7, для QCC3 потребуется подпись, которую, опять же, может сделать только Qualcomm. Здесь тоже есть предположение, что это можно обойти, убрав проверку лицензии с системного ядра приложений. Если хотите попробовать, то я могу помочь с настройкой среды разработки и скинуть свой проект плат под модули BTM581, было бы интересно увидеть, получится ли что-то). Под них есть только тулчейн на основе GNU Binutils с какими-то своим компилятором. Впрочем, есть достаточно хорошее описание ISA.
OTP находится внутри чипа, перепрошивка флешки бесполезна, чип попросту не загрузится. А ещё смысла это делать попросту нет, проще сразу взять разблокированный чип.
Вот в USB/BT стэках было бы интересно найти дыры, но вот они предоставляются только в бинарном виде (как прошивка для второго ядра). Было бы интересно, впрочем, попытаться его дизассемблерировать и убрать различные проверки лицензий, но есть вероятность, что эту прошивку второго ядра так просто не поменять. Я пробовал поменять пару байт случайных местах и чип отказывался грузиться, впрочем, может быть, если поправить хэш, то сработает. Если обойти BT стэк, то эти чипы будет легко использовать как USB BT адаптеры, что видится весьма интересной идеей за счёт проприетарный радиоплюшек от Qualcomm.
Там 128-битный ключ в OTP памяти, которым "шифруется" прошивка. В принципе, если этот ключ знать, то перепрошить можно, вот только узнать его можно лишь от продавца.
Почти все эти платы с залоченными модулями и прошить их невозможно, особенно если там есть LDAC.
В FAQ (предпоследний пункт на данный момент) есть рабочая ссылка на магазин производителя, но их нужно немного попинать в чате, чтобы они создали нужный товар. Лучше уточнить, что модуль берётся под перепрошивку, но версия без LDAC у них не залоченная.
Тогда QCC5181 - отличный выбор. Там достаточно производительный DSP, а ещё есть QHS, с которым подключение заметно стабильнее, да и скорость выше стандартных значений в Bluetooth.
Тут я бессовестно прорекламирую свою тему на 4pda с прошивками для чипов от Qualcomm. Производитель ими, конечно, очень не хочет делиться, но достать всё равно можно.