[identity profile] melbu.livejournal.com posting in [community profile] useful_faq
Я практически ноль в программировании, отсюда вопрос.

Вот есть штатная железка в автомобиле, представляющая из себя некий компьютер и ЖК дисплей. У него задача брать данные из шины OBDII автомобиля и демонстрировать их на экране. Выводится это в виде нескольких экранных страниц, плюс еще служебное меню с горой интересных и не интересных данных.

Подскажите, в чем будет заключаться работа по изменению прошивки железяги, чтобы появилась еще одна страница с параметрами. PIDы и множители этих параметров известны?
Если это невозможно или архисложно, то почему?

Date: 2014-02-01 10:04 am (UTC)
From: [identity profile] dims12.livejournal.com
Я тоже ноль в этом, я обычный программист.

Думаю, для такой работы может не хватать документации или фирменного оборудования. Если всё это нестрандартно, то узнать, как правильно программировать, практически невозможно.

Date: 2014-02-01 10:38 am (UTC)
From: [identity profile] dims12.livejournal.com
Да, это называется "обратный инжиниринг". Как узнать всякие адреса регистров -- ну я не знаю -- и прочие подробности того, каким образом управлять железом? Это может быть в документации, которая может составлять коммерческую тайну. Без неё будет очень сложно.

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

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

(это я полностью фантазирую)

Date: 2014-02-01 10:41 am (UTC)
From: [identity profile] aterentiev.livejournal.com
Имеется нескольно десятков распространенных семейств микро- и не только контроллеров.
Конечно, если взяться с пристрастием, то, проанализировав типичные последовательности, можно узнать, что это за платформа.

Но легче связаться с производителем и попытаться войти в доверие, получить инфррмацию.

Date: 2014-02-01 10:51 am (UTC)
From: [identity profile] dims12.livejournal.com
Поможет для поиска. Но не гарантирует успешный/приемлемый результат.

Date: 2014-02-01 10:54 am (UTC)
From: [identity profile] aterentiev.livejournal.com
Это может помочь.
Это сложно. Это теоретически не невозможно. Вопрос ресурсов и умения.

Я б посоветовал для начала поискать по форумам, есть ли кто из единомышленников. Может, у людей и информация уже есть. Мир большой, иногда даже очень.

Date: 2014-02-01 12:51 pm (UTC)
From: [identity profile] f2065.livejournal.com
Не всегда это целесообразно декомпилировать. Бывает проще сразу на асме переписать часть фукнций.

Date: 2014-02-01 10:34 am (UTC)
From: [identity profile] sam-buddy.livejournal.com
Там очень жесткие ограничения по вычислительной мощности, борьба идет за каждый байт.

Date: 2014-02-01 10:39 am (UTC)
From: [identity profile] dims12.livejournal.com
Кстати да, эту причину я тоже думал назвать, но предположил, что в наше время это неактуально. Наверняка там очень много ресурсов.

Date: 2014-02-01 10:57 am (UTC)
From: [identity profile] aterentiev.livejournal.com
Вряд ли. Скорее, это скажет только о том, что программист сего не предоставил такой возможности.

Date: 2014-02-01 05:34 pm (UTC)
From: [identity profile] dims12.livejournal.com
Может, там код семибитный и для добавления русских букв надо много перелопачивать. Мало ли что?

Date: 2014-02-01 05:41 pm (UTC)
From: [identity profile] f2065.livejournal.com
На случай 7битного кода есть КОИ7-Н2... Так что только фонт перерисовать и тексты.

Date: 2014-02-01 05:49 pm (UTC)
From: [identity profile] dims12.livejournal.com
Ну мало ли? В этом коде маленьких букв нет или псевдографика нужна? Я не спорю, что есть варианты, но работа усложняется.

Date: 2014-02-01 10:38 am (UTC)
From: [identity profile] aterentiev.livejournal.com
Очень много изначально неизвестных параметров
Какая целевая система? Есть ли под нее исходники? Есть ли компилятор?
Имея прошивку, ее нельзя декомпилировать, не зная под что она.
Это только в "дне независимости" наши герои смогли запустить земной вирус на инопланетном железе. Но это фантастика.

Date: 2014-02-01 10:42 am (UTC)
From: [identity profile] ebiker.livejournal.com
Многое зависит от того на каком железе этот девайс построен и найдётся ли человек имеющий опыт программирования таких штук. И, как понимаете немало времени уйдёт на декомпиляцию+анализ фирмвари.
Т.е. основа успешности - найти такого спеца. У меня есть знакомые программеры (как-бы даже не профи по образованию), которые сами забабахали уникальные проекты с регулярной поддержкой. В одиночку чел сделал железку защищенную от копирования (третий год китайцы ломают зубы :) ), и софт под Win длиною в более чем 100тыс строк (!!!) и еще к нему хелп с описаниями и картинками в 350Мб :)
Или вот зайдите на carsystems.com.ua в раздел продукция... Всё, что там есть разрабатывал 1 (один) программист :) Замечу, что все эти девайсы сделаны по результатам реверс-инжениринга т.к. НИКАКОЙ документации по нужным протоколам найти не возможно (точнее, они есть, но за большие деньги лицензиатам).

Date: 2014-02-01 10:43 am (UTC)
From: [identity profile] dims12.livejournal.com
P.S. Думаю надо делать так: определить все реквизиты (какая машина, какой процессор, какое оборудование -- всё) и искать в интернете любительские прошивки и хаки на эту тему. Если они присутствуют -- значит, задача разрешима. То есть, кто-то где-то нашёл решение ключевых проблем. А если в интернете по этим реквизитам тишина -- значит, есть пепятствие, которое народ преодолеть не сумел.

Согласитесь, что добавить/удалить страничек в меню хочется не только Вам но и многим людям (например, мне). Если задача решаема, то её решение уже должно валяться в Сети.

Date: 2014-02-01 10:52 am (UTC)
From: [identity profile] dims12.livejournal.com
Ну тогда, наверное, задача разрешима. Нужно искать.

Date: 2014-02-01 12:47 pm (UTC)
From: [identity profile] f2065.livejournal.com
Если в интернете по этим реквизитам тишина - значит просто никто это не копал. Это не значит что там есть непреодолимые препятствия.

Date: 2014-02-01 05:33 pm (UTC)
From: [identity profile] dims12.livejournal.com
Ну вряд ли никто не копал. Хотя не знаю, о чём речь. Если это какой-то уникальный раритет -- то возможно.

Date: 2014-02-01 01:54 pm (UTC)
From: [identity profile] hand-file.livejournal.com
Скорее всего постоянная память железки полностью, до байта, занята оригинальной прошивкой и вам придется не только дописать свой код, но и модифицировать имеющийся.

Date: 2014-02-01 05:35 pm (UTC)
From: [identity profile] dims12.livejournal.com
Что же, они сами себе не оставили возможность апгрейда?

Date: 2014-02-01 05:53 pm (UTC)
From: [identity profile] hand-file.livejournal.com
Едва ли понятие апгрейд применимо к бортовому компьютеру автомобиля.

Date: 2014-02-01 08:08 pm (UTC)
From: [identity profile] dims12.livejournal.com
Почему нет? Кроме того, там могут быть ошибки, глюки.