Pull to refresh
24
0

Системный программист и реверсер

Send message
Ну коли мой ответ на данный комментарий получил столько плюсиков, то по поводу статьи отвечу более конструктивно.
Системной разработкой под Linux я занялся по одной лишь причине: отсутствие прошивок Android 4.4/5.1 для моего телефона, коим является Highscreen Boost 2 SE. Поэтому за неимением исходников стокового ядра пришлось реверсить это самое ядро. Но пришлось ещё реверсить и загрузчик. Более подробно можно почитать тут: http://syshwid.blogspot.ru/2014/11/arm.html (именно с этого и началось моё погружение в Linux).
Поэтому мой путь к системной разработке под Linux очень и очень тернистый. Причём этот путь очень тесно переплетён с реверсом.
Именно поэтому «getting started» я никак не могу написать, т.к. таким путём никто не отважится идти.
Да и считаю такие статьи излишними. Лучше уж найти блог системного программиста Linux и почитать его с самого начала. Это самый лучший вариант.
Когда речь заходит о системных программистах, то не может быть никакой речи о моде.
А по части обычного обывателя вы конечно правы. Модуль LLCON уже несколько месяцев могут использовать все обладатели телефона Highscreen Boost 2 SE, т.к. этот модуль я внедрил в прошивку. Но при этом пользователь должен установить так же и кастомный загрузчик IBL (создавался при моем участии). Причем устанавливать этот загрузчик нужно не только ради забавы LLCON, а прежде всего для предотвращения окирпичивания при выходе из стоя чипа eMMC (на этом телефоне они умирают очень часто).
Так вот уже несколько пользователей откатились на стоковый загрузчик лишь по причине того, что они привыкли видеть стандартную заставку «Highscreen» при старте. При этом они пишут, что для них это важнее, чем «прививка» от окирпичивания.
Знаете, зачем делают заставку при загрузке? Одна из причин — это просто украшательство, но это не основная.

Как раз таки использование бут-анимации замедляет загрузку. Особенно это заметно на SoC 2013 года, когда анимация использует 25 и более FPS.
Бутлого загрузчика ни на что не влияет.

Console output is slow… and disable systemd debug logging

Это относится только к стандартному FBCON модулю. К модулю LLCON мало относится, т.к. LLCON просто напросто записывает байтики во FrameBuffer.

Посмотрев видео, ужаснулся, как же долго загружается телефон.

Так используется бюджетный SoC 2013 года (msm8226). Мой тестовый телефон (он же и основной) при замене бут-анимации на вывод логов LLCON стал загружаться быстрее (сравнивал по выводу dmesg).

Конечно, не в логах основная проблема, но и в них тоже.

Прежде всего дело в медленном SoC.
На втором деморолике используется асинхронный вывод логов на дисплей (mode=2), при котором одно ядро SoC задействуется для периодического вывода логов. Поэтому при использовании асинхронного режима может быть замедление загрузки такое же, как и при использовании бут-анимации андройда.
При использовании синхронного режима (mode=1) замедление загрузки не должно превышать 0,5 секунд, т.к. LLCON просто пишет в видео-память байтики.
Впервые слышу о таком баге (устройство с Android 2.х имею).
Вывод LLCON должен затираться драйвером дисплея, т.к. LLCON работает только с основным FrameBuffer (т.е. без переключения страниц).
Зря вы так. Вероятность окирпичивания устройства прошивкой кастомного ядра довольно низка (на самом деле я считаю, что таковая вообще отсутсвует). А вот прошивка кастомного загрузчика реально может привести к окирпичиванию. Но и в этом случае можно раскирпичить устройство.
Такую статью не могу написать, т.к. я считаю себя виндузятником. Я весь код пишу на винде, который затем по SMB кидаю на Ubuntu тачку для сборки.
Надеюсь меня за это никто не заминусует. Ну не могу я обходиться без родного TotalCmd и других.
А касательно Nexus вот что скажу. Для разработки кастомных ядер Nexus не нужен. А вот когда разговор заходит о кастомном загрузчике, только тогда может чем то помочь специальная версия Nexus для разрабов. Но даже в этом случае я советую поискать китайский вариант, в котором отсутствует подпись загрузчика (либо используется тестовая подпись Qualcomm).
Вот для сравнения видео от создателя этой софтины:

Можно сразу заметить, что нужно довольно долго ждать появления kmsg логов на дисплее (до начала работы самого андройда).
В самом начале своей публикации я сразу упомянул о том, что я задавался целью именно самого раннего начала вывода kmsg логов на дисплей.
Из-за двух батарей будет ли проблема со сторонними прошивками?

Будет очень большая проблемма, т.к. JSR не предоставляет исходников. А для D6000 разработчики JSR очень сильно допилили ядро в части поддержки двух батарей. Да ещё они и код андройда тоже пропатчили ради этого же.
Очень маловероятно, что какой либо независимый разработчик сделает для D6000 рабочую прошивку CyanogenMod.
О нет, а как же DEXP, который прославился линейкой смартфонов Ixion с мощными аккумуляторами

Открою тайну: DEXP — это бывшая марка DNS (владелец тот же). Причём в своё время DNS в России барыжил Innos'ами D9. Именно с Innos D9 (DNS s4502) этот русский ретейлер и начал в Россию завозить аппараты с большими батареями.
Ядро я насколько помню брали JSR-овское

Ядро брал из CAF-репозитория, а все JSR отличия пришлось искать дизассеблером (IDA Pro).
В моём блоге есть немного инфы о трудностях, которые пришлось преодолевать: syshwid.blogspot.ru
А какова разница «по скорости» между LOCK CMPXCHG и LOCK XADD?
Разработка cимуляторов является частью вашей работы в Intel?
Модели каких вычислительных систем вам приходилось создавать?
увеличена производительность менеджера дополнений и системы управления паролями;

Ранее менеджер паролей юзал БД SQLite, а теперь юзает текстовый файл в формате JSON «logins.json».
Очень сомнительная переделка. Сама причина переделки тут: bugzilla.mozilla.org/show_bug.cgi?id=853549
Но снова криво переделали, т.к. JSON подразумевает экранирование символа "/", а Firefox этого не делает.
Неужели так трудно соблюдать стандарты?..
А вот тут thefaraon.mylivepage.ru/image/index/ автор явно какойто плеер выдаёт за свою 100% разработку. Хотя я так полагаю, что просто скин нарисовал и исправил копирайты.
Да не нужно даже сравнивать оригиналы. На картинке lurkmore.so/images/3/33/Testirovanie_antivirusov.jpg сразу видно, что фон более низкого качества чем текст. Картинка видимо в Paint'е правилась последователем Попова.
Использовал исходники UniATA для работы с HDD через I/O порты (под виндою). Вырезал только алгоритм чтения IDE_IDENTIFY в PIO режиме.
В коде есть куски, напоминающие «костыли». Но а как без них, коли костыли есть и в самих железках.
Вот то что ACHI реализивали — это действительно подвиг.
2

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity