2016-04-27

Interactive Bootloader


Доработка стандартного загрузчика от Qualcomm (lk) может обеспечить функцию загрузки Android прошивки с SD-карты, а также может обеспечить функцию раннего перевода устройства в 9006 режим, используя специальное сочетание кнопок. Кроме этого можно добавить ещё много разных фич в загрузчик.

Большинство производителей китайфонов нисколько не заботятся о доработке ПО, которое они получают от Qualcomm. С одной стороны это даже хорошо, т.к. в этом случае обычно не используется блокировка загрузчика и не используется уникальная подпись образов. Но с другой стороны использование "сырых" исходников с CAF-репозитория означает отсутствие довольно полезных функций в загрузчике.

Стандартный qualcomm загрузчик занимается лишь отображением логотипа на экране, обеспечением режима fastboot и загрузкой образов с eMMC чипа. Вот только при переходе eMMC чипа в режим readonly (такое бывает от старения) аппарат становится фактически "кирпичём". Помимо режима readonly eMMC чип может полностью выйти из строя, о чем обычно информирует PBL, переводя аппарат в режим 9008. Но перед переводом в 9008 режим главный загрузчик (PBL) обычно пробует произвести загрузку с SD-карты. Т.е. получается так, что в нормальной ситуации затруднительна установка полноценной прошивки на SD-карту, а в случае readonly eMMC получается "полукирпич".

Ради избавления от вышеперечисленных ограничений стандартного загрузчика было решено сделать свой вариант этого самого appsboot.mbn. Основную часть разработки взял на себя S-trace. Так же S-trace взялся за тестирование самопального загрузчика. Я же написал только графическую составляющую нововведений и исправил крайне грубые реализации некоторых вещей, которые присущи LittleKernel от Qualcomm.

Приведу список всех фич, которые мы добавили в загрузчик:

  1. добавлено распознавание кнопок FUNC и POWER
  2. доработан модуль fbcon и добавлен растровый шрифт 52x27, что позволило выводить произвольный текст на экран
  3. отображение текущего состояния устройства (fastboot, normal boot, recovery boot, 9008, 9006)
  4. возможность перезагрузки в спец режим 9008/9006
  5. возможность выбора устройства для загрузки (либо eMMC, либо SDCard)
  6. на экране главного меню был добавлен 30-секундный таймер, по истечении которого начинается normal boot
  7. добавлено несколько тестов скорости линейного чтения обоих носителей


Попутно было внесено множество внутренних изменений, не влияющих на внешнее поведение загрузчика, но исправляющих баги и прочие "приколы" в коде LK.

Исходный код кастомного загрузчика IBL: http://github.com/jsr-d10/

Для наглядности приведу несколько скриншотов:



1 комментарий:

  1. Caesars Entertainment in Atlantic City: Gambling problem with the
    What are the casino resorts? Casino resorts are 충청북도 출장샵 not casinos. Casino resort 제주도 출장샵 resort 광명 출장마사지 gambling problem with the casino resorts. 익산 출장안마 Casino resort gambling problem with the 제천 출장마사지 casino resorts.

    ОтветитьУдалить