- Сборка ядра для Android-устройств на примере Solid Kernel для LG e975
- Подготовка
- Сборка ядра
- Тестирование
- С чего начать создание своего кастомного ядра на андроид?
- Создание кастомного ядра android
- Строим Android x86
- Установка окружения для сборки
- Загрузка дерева исходных кодов
- Загрузка файлов
- Сборка ядра
- Построение Android
- Настройка VirtualBox
- Эмулятор Jelly Bean
Сборка ядра для Android-устройств на примере Solid Kernel для LG e975
Подготовка
Что нам потребуется
- 64 битная система Linux (я использую Ubuntu 14.04)
- Рутованый телефон/планшет/иной девайс на Android’е с процессором QUALCOMM
Подготовка системы
Установим необходимые пакеты. Набирем в терминале:
Нажимаем Enter и пишем далее:
Качаем исходники
Идем на GitHub и скачиваем исходники (исходники для каждого девайса разные, поэтому ссылок давать не буду) архивом (в правой части экрана должна находиться кнопочка «Download ZIP»). Распаковываем архив в любое удобное место (у меня это папка /home/system-exe/Solid).
Качаем тулчейн. Переходим по ссылке, отмечаем галочкой нужный тулчейн (для меня это cortex-a15, зависит от ядер процессора) и нажимаем «скачать». Распаковываем скачанный архив в папку /home/%USERNAME%/Toolchain/Linaro-4.9.3 (вместо %USERNAME% подставляем имя учетки).
Выдираем файл конфигурации из девайса
Идем по пути /proc (на телефоне) и копируем файл config.gz на комп, распаковываем и получаем файл config, которые переименовываем по шаблону %устройство%_defconfig (у меня это e975_defconfig). Кладем получившийся файл по пути /home/%USERNAME%/Solid/arch/arm/configs
С подготовкой окончили.
Сборка ядра
Заходим в терминал и набираем команду:
(таким образом мы перешли в папку с нашими исходниками)
(у меня надо так: make e975_defconfig)
После завершения пишем:
(здесь правим нужные значения конфигурации. Тут все предельно просто, думаю разберетесь.)
После завершения начинаем сборку:
Параметр -j8 нужен только если у вас многоядерный процессор. Цифра 8 определяет количество ядер(потоков, в случае с Intel i3, i5, i7 процессорами). К примеру у меня — Intel i7, он четырехядерный, но поддерживает два потока на каждое ядро, поэтому 2 * 4 = 8.
В конце должна появиться надпись «zImage is ready».
Идем по пути /home/%USERNAME%/Solid/arch/arm/boot и видим там наше ядро — zImage.
Тестирование
Теперь нам осталось заставить работать этот самый zImage на нашем устройстве.
А вот теперь трижды подумайте надо ли вам это? Уверены ли вы в своих силах и в том, что правильно собрали ядро?
Подумали? Уверены? Точно уверены? Тогда продолжаем.
Извлекаем boot.img из нашего девайса. Набираем в терминале на телефоне:
Вместо… подставляем путь до папки by-name (у меня надо подставить msm_sdcc.1).
Переносим boot.img, который лежит на карте памяти, на комп. Распаковываем его (в интернете есть множество описаний распаковки и запаковки boot.img), меняем оригинальный zImage на наш и собираем boot.img.
Закидываем наш собранный образ на карту памяти под именем new_boot.img
В терминале набираем:
Вместо… подставляем путь до папки by-name (у меня надо подставить msm_sdcc.1).
Перезагружаем девайс. Если телефон загрузился, то все сделано правильно, если — нет, то читаем инструкцию внимательней и пробуем снова.
Для отката в случае неудачи используем наш оригинальный boot.img, который надо было оставить на карте памяти. Для отката в терминале набираем:
Вместо… подставляем путь до папки by-name (у меня надо подставить msm_sdcc.1).
Источник
С чего начать создание своего кастомного ядра на андроид?
Хочу попробовать собрать кастомное ядро для mi9 lite, ибо с ядрами там тухло. С чего начать, что почитать и т.д.? Все ссылки, которые я сам нашёл — старые. После подготовки машины идёт пункт «ищем исходники» и там ищут исходники для нексус устройств, которые легко найти. А что и где мне искать?
ищи исходники для mi9 lite в интернете
Хочу попробовать собрать кастомное ядро для mi9 lite, ибо с ядрами там тухло.
С поиска хоть какого-нибудь смысла в жизни начни, хобби там найди, например, на улицу выйди. Там глядишь и выяснится, что по телефону разговаривать надо, а не ядра собирать.
Девушку найди, сразу не до ядра станет.
Исходники ядра для твоего ми9, очевидно же.
Ну почему же? Как она помешает?
Так он же нашел — ядра собирать.
Ну так блин, есть же какие-то места, в которых обычно ищут. Алгоритмы поиска, сложнее, чем «kernel source mi 9 lite pyxis» в гугле.
Ну так из исходников надо же еще знать, как именно собрать.
Ну так из исходников надо же еще знать, как именно собрать.
Это следующая часть твоего квеста. Выполни сначала первую.
И вообще, как ты себе этот процесс представлял?
И зачем оно тебе вообще?
В чем твой детерминизм?
Ядро понятно где искать, на кернел.орг, ну а дальше все просто – накатываешь, патчишь, собираешь, тестируешь, собираешь, патчишь, тестируешь, накатываешь, собираешь…
Обычно отнимает время и внимание
Обычно всё что под gpl выкладывают на сайте производителя в разделе support.(но не все это делают)
В идеале алгоритм действий такой:
берешь ядро от производителя (по лицензии должен предоставить), сравниваешь с ядром точно той же версии с патчами Android, делаешь из этих отличий патч и адаптируешь его для свежайшего ядра с патчами Android (даже человеку не разбирающемуся в C должно быть видно куда вставлять изменения от производителя).
Только вот если ветка стухла и не обновляется, тут уже без навыков никак.
Это следующая часть твоего квеста. Выполни сначала первую.
вгуглускыр недавно клятвенно обещал что сольет в кернелл всё сильно андроид-зависимое. так что можно будет юзать ваниль напрямки… и придет в вселенную андроид щастье свежих ядер и обновляемых операционок.
но пока да, только вот так.
По состоянию на февраль 2018 года ядро Android имело около 32 000 дополнений и 1,5 тысячи удалённых фрагментов сравнительно с оригинальным Linux 4.14.0
это про размер андроид-патчика и вероятности допилинга грубым напильником нового ядра.
С чего начать создание своего кастомного ядра на андроид?
С осознания ненужности данной затеи и бессмысленности своего существования, если эта идея вообще пришла тебе в голову.
Так-то оно так, но через 20 лет Far на Линукс всё-таки портировали…
От чего он нормальным людям нужнее не стал.
Ну, это-то понятно. Я к тому, что при должных усилиях у ТС может получиться лет за 20. Нужнее его работа от этого не станет.
Запилить ванильное ядро для него и помочь проекту postmarketos
Источник
Создание кастомного ядра android
Этот материал не претендует на абсолютную истину, может быть, что-то можно сделать проще и быстрее. Автор как знает, так и делает. Кроме того он не является большим экспертом в области nix-систем. Всё, что написано ниже, найдено на просторах интернета, в большинстве своём на не русскоязычных форумах, систематизировано и изложено на родном для автора языке — русском.
Коллеги, не задавайте мне вопросы по данной теме в личку, уже несколько лет как я забросил Android и не интересуюсь развитием ядер, как впрочем и самого Android-a.
Сообщение отредактировал PaWill — 08.03.16, 14:54
Часть 1. Необходимые инструменты и исходники
Для компиляции ядра нам потребуется nix-подобная операционная система. Я использовал Ubuntu 10.04 LTS — Long-term support 32-bit, которую установил на виртуальную машину VMware Workstation. Где всё это добро скачать/купить, как установить мы здесь обсуждать не будем. Если вы это не смогли сделать самостоятельно или с помощью гугла, то читать эту статью для вас ещё рано (или уже поздно). 🙂
И так, у нас всё установлено и работает. Теперь проверим все ли необходимые компоненты присутствуют в системе, возможно какие то пакеты придётся доустановить.
Запускаем терминал: