Этот материал не претендует на абсолютную истину, может быть, что-то можно сделать проще и быстрее. Автор как знает, так и делает. Кроме того он не является большим экспертом в области nix-систем. Всё, что написано ниже, найдено на просторах интернета, в большинстве своём на не русскоязычных форумах, систематизировано и изложено на родном для автора языке — русском.
Коллеги, не задавайте мне вопросы по данной теме в личку, уже несколько лет как я забросил Android и не интересуюсь развитием ядер, как впрочем и самого Android-a.
Сообщение отредактировал PaWill — 08.03.16, 14:54
Часть 1. Необходимые инструменты и исходники
Для компиляции ядра нам потребуется nix-подобная операционная система. Я использовал Ubuntu 10.04 LTS — Long-term support 32-bit, которую установил на виртуальную машину VMware Workstation. Где всё это добро скачать/купить, как установить мы здесь обсуждать не будем. Если вы это не смогли сделать самостоятельно или с помощью гугла, то читать эту статью для вас ещё рано (или уже поздно). 🙂 И так, у нас всё установлено и работает. Теперь проверим все ли необходимые компоненты присутствуют в системе, возможно какие то пакеты придётся доустановить. Запускаем терминал:
В терминале вводим следующую команду [1]:
Судя по последней строке у меня все пакеты на месте:
У вас, вероятней всего, не будет важного пакета — sun-java6-jdk on Ubuntu 10.04 (Lucid). Для его автоматической загрузки нужно в адреса репозитория добавить дополнительные ссылки. Введите в терминале:
После того как всё скачается и установится опять команда [1] пока не будет ошибок. Будем считать что с Ubuntu покончили.
Теперь нам потребуются собственно сами исходники ядра. Их можно найти на http://opensource.samsung.com/. В строке поиска вводим «I9000» и получаем:
Нас интересует JPX GT-I9000_OpenSource_Froyo_update2.zip (211 МБ), делаем как на скрине и жмём «Continue».
Ещё нам потребуется кросс-компилятор, которым будем собирать ядро: http://www.codesourcery.com/sgpp/lite/arm/. nux-gnu.tar.bz2 (80 МБ)
И последнее что потребуется — это initramfs.cpio. Я выдрал его из JS8. Как это сделать расскажу как-нибудь отдельно. JS8_initramfs.tar ( 2.64 МБ )
Пока всё, продолжение следует.
Сообщение отредактировал PaWill — 19.03.11, 19:38
Часть 2. Распаковка исходников
Всё что вы скачали будет находится в каталоге /home/имя_пользователя/Загрузки. У меня этот путь выглядит как:
Источник
Собираем ядро для android
Инструкции по сборке Android из исходников
Мануалы в помощь новичку и обсуждение для гуру! Описание | Старая шапка | Собираем ядро для MTK | Первая помощь | Редактирование системных ресурсов Android | Средство обработки прошивок
Что такое ADB и с чем его едят, читаем тут. Отследить новую версию ADB можно в репо от Google. ADB для Winodws — Скачать sha1:52b4816990d2d18a34645bbf20a31b38a7859d4c ADB для Linux — Скачать sha1:31078104e5927d823c28550c01275c437a87def7 ADB для MacOSx — Скачать sha1:1403fa0d1bb57ec31170d7905e8505e3b0ed05ee
Что такое маркет и с чем его едят, читайте в этой теме.
Android 4.1.*: microgapps скачать Android 4.2.*: microgapps Скачать Android 4.3.*: microgapps Скачать Android 4.4 : ART microgapps Скачать Android 4.4.1: ART microgapps Скачать Android 4.4.2: ART microgapps Скачать Android 5.0.2: ART microgapps Скачать Android 5.0.2: ART microgapps Скачать By Mansi Android 5.1.0: ART minigapps Скачать faq
microgapps — пакет Google Apps с самым основным, только Google Play и framework. Остальное можно установить из Google Play. minigapps — Пакет Google Apps с самым основным набором ПО от Google. ART — совместимы с ART режимом, появился в версиях Android 4.4 KitKat.
FlymeOS 5/6 от rocker123 Скачать Огромная коллекция на XDA 4.x-6.x Скачать OmniRom + Prebuilts 4.x-6.x От ctavropoholb Скачать Qualcomm MSM8974 и MSM8939 От acdev Скачать MIUI PatchRom miui5-7 От ctavropoholb Скачать CyanogenMod 10.1 — 13 4.х.х-6.х.х От ctavropoholb Скачать CyanogenMod 12.1 android-5.1.1_r18 От SteelBreaker Скачать Prebuilts AOSP 5.0.x От assusdan Скачать MIUI PatchRom KitKat v6 От vgdn1942 Скачать AOSP mirror repo От wladimir_tm Скачать AOSP, AOKP, CM, MIUI 4.4.4 От vaibhavpandeyvpz Скачать CyanogenMod 11 4.4.4 От Никита Pro Android Скачать CyanogenMod 10 4.1 От Scorpio92666 Скачать CyanogenMod 7.2.0 2.3.x От pryanya96 Скачать AOSPA ParanoidAndroid 4.4.4 От mrAlmid Скачать Ubuntu phablet 4.4.2_r1 От Каточимото Скачать repo snapshots cm-10.2 — android5.1 От wladimir_tm
После чего, качаем исходники командой repo sync
Источник
Собираем ядро для android
Инструкции по сборке Android из исходников
Мануалы в помощь новичку и обсуждение для гуру! Описание | Старая шапка | Собираем ядро для MTK | Первая помощь | Редактирование системных ресурсов Android | Средство обработки прошивок
Что такое ADB и с чем его едят, читаем тут. Отследить новую версию ADB можно в репо от Google. ADB для Winodws — Скачать sha1:52b4816990d2d18a34645bbf20a31b38a7859d4c ADB для Linux — Скачать sha1:31078104e5927d823c28550c01275c437a87def7 ADB для MacOSx — Скачать sha1:1403fa0d1bb57ec31170d7905e8505e3b0ed05ee
Что такое маркет и с чем его едят, читайте в этой теме.
Android 4.1.*: microgapps скачать Android 4.2.*: microgapps Скачать Android 4.3.*: microgapps Скачать Android 4.4 : ART microgapps Скачать Android 4.4.1: ART microgapps Скачать Android 4.4.2: ART microgapps Скачать Android 5.0.2: ART microgapps Скачать Android 5.0.2: ART microgapps Скачать By Mansi Android 5.1.0: ART minigapps Скачать faq
microgapps — пакет Google Apps с самым основным, только Google Play и framework. Остальное можно установить из Google Play. minigapps — Пакет Google Apps с самым основным набором ПО от Google. ART — совместимы с ART режимом, появился в версиях Android 4.4 KitKat.
FlymeOS 5/6 от rocker123 Скачать Огромная коллекция на XDA 4.x-6.x Скачать OmniRom + Prebuilts 4.x-6.x От ctavropoholb Скачать Qualcomm MSM8974 и MSM8939 От acdev Скачать MIUI PatchRom miui5-7 От ctavropoholb Скачать CyanogenMod 10.1 — 13 4.х.х-6.х.х От ctavropoholb Скачать CyanogenMod 12.1 android-5.1.1_r18 От SteelBreaker Скачать Prebuilts AOSP 5.0.x От assusdan Скачать MIUI PatchRom KitKat v6 От vgdn1942 Скачать AOSP mirror repo От wladimir_tm Скачать AOSP, AOKP, CM, MIUI 4.4.4 От vaibhavpandeyvpz Скачать CyanogenMod 11 4.4.4 От Никита Pro Android Скачать CyanogenMod 10 4.1 От Scorpio92666 Скачать CyanogenMod 7.2.0 2.3.x От pryanya96 Скачать AOSPA ParanoidAndroid 4.4.4 От mrAlmid Скачать Ubuntu phablet 4.4.2_r1 От Каточимото Скачать repo snapshots cm-10.2 — android5.1 От wladimir_tm
После чего, качаем исходники командой repo sync
Источник
Делаем свое кастомное ядро
Кастомные ядра — настоящее раздолье для юзера. С их помощью вы можете полностью настроить смарт под себя — что вам нужно? Невероятная скорость и плавность или максимальная экономия энергии? Конечно, на первых порах прошить ядро довольно сложно, хотя что там — даже поставить рекавери очень непростая задача для новоиспеченного андроид-юзера. Думаю, многие интересовались тем, как делают такие ядра, да и как вообще самому сделать нечто похожее? Если вы относитесь к этому числу — эта статья для вас!
Внимание! Статься содержит зубодробительное кол-во картинок и мозговзрывающий контент!
Если вы все-таки решились попробовать себя в шкуре ядродела, то наверняка будете озадачены кол-вом подобных инструкций. Многие из них написаны на английском, да и процесс компилирования ядра проходит с помощью Google NDK (в том числе инструкция на 4PDA). В моей же статье описано все о сборке и компилировании ядра с помощью довольно популярного тулчейна — Linaro 4.9.1. На самом деле уже давно как в свет вышел новый Linaro 4.9.2, но он довольно сырой(по крайней мере отвратительно работает на Nexus 5)
Все что нам потребуется для сборки ядра:
Исходники стокового ядра
Стоковый рамдиск
Любой Linux дистрибутив(рекомендую Ubuntu 14.04LTS)
Тулчейн(Linaro)
Желание и стремление к созданию ядра
Итак, первым делом нужно установить необходимые для сборки пакеты:
Чтобы получить необходимые пакеты прописываем следующие комманды(просто скопируйте весь список и вставьте в терминал с помощью комбинации Shift+Ins) —
Как видим, все необходимые пакеты установлены. Настройка ОС завершена — переходим к следующему пункту — скачивание исходников.
Исходники моего устройства находятся по адресу android.googlesource.com/kernel/msm
Здесь также находятся исходники для N4, N7 2013. Если у вас устройство линейки Nexus — смотрите таблицу выше. Если же у вас другое устройство — ищите исходники на соответствующих ресурсах производителя.
Чтобы получить исходники достаточно прописать комманду
После того как вы скачали исходники нужно взять необходимый бранч. Для этого заходим в папку с исходниками
Проверить список бранчей можно коммандой
Для моего устройства необходим бранч origin/android-msm-hammerhead-3.4-kitkat-mr2. Чтобы получить данный бранч пишем
После окончания проверки вы увидите папку с исходниками в той директории, в которой их скачали
Остался последний пункт и можно начинать разработку ядра! Необходимо скачать тулчейн. Получить его можно коммандой
После этого в вашей директории появится папка AK-linaro. Из этой папки достаем нужный тулчейн. Я использую Linaro 4.9.1-2014.07.20140718.CR83
Кидаем папку с тулчейном в домашнюю директорию и переименовываем в «linaro» для удобства
Итак, подготовка завершена, теперь переходим к самому процессу создания ядра. Ах да, чуть не забыл — нам потребуется рамдиск, достать его из стокового ядра можно с помощью Android IMAGE Kitchen, всю инфу и инструкции найдете по этой ссылке — forum.xda-developers.com/showthread.php?t=2073775
После того как достали рамдиск кидаем его в домашнюю директорию, опять же, так намного удобнее. Теперь нам потребуются специальные скрипты для того, чтобы скомпилировать ядро. Ссылка на скрипты — yadi.sk/d/vN0KCGF8bB9gV
Эти скрипты необходимо распаковать в папку с исходниками
Также вам понадобится конфиг, обычно название конфига совпадает с кодовым названием вашего устройства, например у меня это «hammerhead_defconfig»
Название конфига следует написать в 29 строку в файле «env_setup.sh»
Сам же конфиг находится по пути «arch/arm/configs»
Завершающим шагом является адаптация главного Makefile под Linaro. Для этого находим строчку
Теперь найдите эти строчки:
# Use the wrapper for the compiler. This wrapper scans for new # warnings and causes the build to stop upon encountering them. CC = $(srctree)/scripts/gcc-wrapper.py $(REAL_CC)
И удалите. Все готово для первой компиляции!
Открываем терминал, переходим к папке с исходниками и прописываем следующую комманду:
Начнется компиляция. На варнинги(Warning) не обращайте внимание! Главное, чтобы не было ошибок! Большинство ошибок подробно опысываются, т.е. решить их довольно легко, но если же вы словите ошибку после VMLINUX, то тут придется попотеть, так как в гугле вы вряд ли что-то найдете, придется сидеть на Гитхабе и искать что-то подобное у других энтузиастов-ядроделов
Если ядро скомпилировалось правильно и без ошибок, то вы увидите подобное окно
Если все в порядке, то советую забекапить текущие исходники, мало ли что может случиться. Собственно вы только что собрали свое первое ядро, пусть оно и отличается от стокового одним лишь использованием Linaro
Теперь я расскажу про патчи — это то, чем мы будет «тюнинговать» ядро. Для примера я приведу патч, благодаря которому вы можете разогнать свой MSM8974 — github.com/franciscofranco/hammerhead/commit/104890313a73dae0e7d7a13975801cc568d231ad
Этим патчем мы повышаем максимальный вольтаж и, соответственно, частоты до 3GHz. Этот способ предназначен ТОЛЬКО для устройств на базе чипа MSM8974(Snapdragon 800(801)) Чтобы пропатчить ядро достаточно привести свои файлы в такое-же состояние, что и в патче. Проще говоря — добавить/удалить/заменить строки. Обязательно удаляйте плюсики! Для тех кто не понял, про какие плюсы я говорю:
Как видим, в начале стоит + Это означает, что эту строку надо добавить в ваш файл. Сам + добавлять нельзя!
После применение данного патча(изменения своих исходников под данный комент) максимальная частота повысится с 2.3GHz до 3GHz. На разных чипах это реализовано по разному!
Теперь вновь запускаем компиляцию, дожидаемся ее окончания и получаем ядро. Оно лежит в папке «Out»
Не забывайте делать «./clean_kernel.sh» перед началом компиляции!
Теперь прошиваем ядро на устройство. Если оно запустится, то поздравляю — вы только что сделали свое первое, по настоящему кастомное ядро с разгоном!
Удачи вам и не стоит отчаиваться если что-то идет не так, нельзя создать суперядро за несколько дней — на это уходят недели, а то и месяцы.