
Кастомные ядра — настоящее раздолье для юзера. С их помощью вы можете полностью настроить смарт под себя — что вам нужно? Невероятная скорость и плавность или максимальная экономия энергии? Конечно, на первых порах прошить ядро довольно сложно, хотя что там — даже поставить рекавери очень непростая задача для новоиспеченного андроид-юзера.
Думаю, многие интересовались тем, как делают такие ядра, да и как вообще самому сделать нечто похожее? Если вы относитесь к этому числу — эта статья для вас!
Telegram-канал создателя Трешбокса про технологии
Внимание! Статься содержит зубодробительное кол-во картинок и мозговзрывающий контент!
Если вы все-таки решились попробовать себя в шкуре ядродела, то наверняка будете озадачены кол-вом подобных инструкций. Многие из них написаны на английском, да и процесс компилирования ядра проходит с помощью Google NDK (в том числе инструкция на 4PDA). В моей же статье описано все о сборке и компилировании ядра с помощью довольно популярного тулчейна — Linaro 4.9.1. На самом деле уже давно как в свет вышел новый Linaro 4.9.2, но он довольно сырой(по крайней мере отвратительно работает на Nexus 5)
Как установть кастомное или вернуть стоковое ядро (kernel) ?
Все что нам потребуется для сборки ядра:
- Исходники стокового ядра
- Стоковый рамдиск
- Любой Linux дистрибутив(рекомендую Ubuntu 14.04LTS)
- Тулчейн(Linaro)
- Желание и стремление к созданию ядра
Итак, первым делом нужно установить необходимые для сборки пакеты:

Чтобы получить необходимые пакеты прописываем следующие комманды(просто скопируйте весь список и вставьте в терминал с помощью комбинации Shift+Ins) —
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.8-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libreadline-gplv2-dev gcc-multilib g++-multilib libc6-dev x11proto-core-dev libx11-dev gawk texinfo automake libtool cvs

Как видим, все необходимые пакеты установлены. Настройка ОС завершена — переходим к следующему пункту — скачивание исходников.
Исходники моего устройства находятся по адресу android.googlesource.com/kernel/msm

Здесь также находятся исходники для N4, N7 2013. Если у вас устройство линейки Nexus — смотрите таблицу выше. Если же у вас другое устройство — ищите исходники на соответствующих ресурсах производителя.
Установка TWRP Recovery на Xiaomi | Универсальный способ 2022
Чтобы получить исходники достаточно прописать комманду
git clone https://android.googlesource.com/kernel/msm
После того как вы скачали исходники нужно взять необходимый бранч. Для этого заходим в папку с исходниками

Проверить список бранчей можно коммандой
git branch -a

Для моего устройства необходим бранч origin/android-msm-hammerhead-3.4-kitkat-mr2. Чтобы получить данный бранч пишем
git checkout origin/android-msm-hammerhead-3.4-kitkat-mr2
Начнется проверка файлов

После окончания проверки вы увидите папку с исходниками в той директории, в которой их скачали

Остался последний пункт и можно начинать разработку ядра! Необходимо скачать тулчейн. Получить его можно коммандой
git clone https://github.com/anarkia1976/AK-linaro.git

После этого в вашей директории появится папка 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. Для этого находим строчку
REAL_CC = $(CROSS_COMPILE)gcc
CC = $(CROSS_COMPILE)gcc
Теперь найдите эти строчки:
# 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)
И удалите. Все готово для первой компиляции!
Открываем терминал, переходим к папке с исходниками и прописываем следующую комманду:
./build_kernel.sh

Начнется компиляция. На варнинги(Warning) не обращайте внимание! Главное, чтобы не было ошибок! Большинство ошибок подробно опысываются, т.е. решить их довольно легко, но если же вы словите ошибку после VMLINUX, то тут придется попотеть, так как в гугле вы вряд ли что-то найдете, придется сидеть на Гитхабе и искать что-то подобное у других энтузиастов-ядроделов
Если ядро скомпилировалось правильно и без ошибок, то вы увидите подобное окно

Если все в порядке, то советую забекапить текущие исходники, мало ли что может случиться. Собственно вы только что собрали свое первое ядро, пусть оно и отличается от стокового одним лишь использованием Linaro
Теперь я расскажу про патчи — это то, чем мы будет «тюнинговать» ядро. Для примера я приведу патч, благодаря которому вы можете разогнать свой MSM8974 — github.com/franciscofranco/hammerhead/commit/104890313a73dae0e7d7a13975801cc568d231ad
Этим патчем мы повышаем максимальный вольтаж и, соответственно, частоты до 3GHz. Этот способ предназначен ТОЛЬКО для устройств на базе чипа MSM8974(Snapdragon 800(801)) Чтобы пропатчить ядро достаточно привести свои файлы в такое-же состояние, что и в патче. Проще говоря — добавить/удалить/заменить строки. Обязательно удаляйте плюсики! Для тех кто не понял, про какие плюсы я говорю:
+ < 1, < 3014400, HFPLL, 1, 157 >, L2(21), 1100000, 957 >,
Как видим, в начале стоит + Это означает, что эту строку надо добавить в ваш файл. Сам + добавлять нельзя!
После применение данного патча(изменения своих исходников под данный комент) максимальная частота повысится с 2.3GHz до 3GHz. На разных чипах это реализовано по разному!
Теперь вновь запускаем компиляцию, дожидаемся ее окончания и получаем ядро. Оно лежит в папке «Out»

Не забывайте делать «./clean_kernel.sh» перед началом компиляции!
Теперь прошиваем ядро на устройство. Если оно запустится, то поздравляю — вы только что сделали свое первое, по настоящему кастомное ядро с разгоном!

Удачи вам и не стоит отчаиваться если что-то идет не так, нельзя создать суперядро за несколько дней — на это уходят недели, а то и месяцы.
Делитесь своим опытом в комментариях!
Источник: trashbox.ru
Обновление MIUI 10.3.1 выводит из строя смартфоны Xiaomi Mi 9 SE. Как решить проблему

На днях компания Xiaomi порадовала владельцев смартфонов Mi 9 SE очередным обновлением системы MIUI 10.3.1.0. Но радость некоторых из них оказалась недолгой.
Некоторые пользователи сообщают о серьезной проблеме, которая проявляется после установки этого обновления операционной системы.
Проблема заключаются в том, что смартфон не загружается после его установки. Перезагрузка смартфона также приводит к этой ошибке. Ошибки касаются обновления MIUI 10.3.1.0 для Xiaomi Mi 9 SE, которое поступает на смартфоны в Европе.

Как можно увидеть на фото выше, процесс загрузки операционной системы на смартфоне прерывается сообщением о том, что она было повреждена и единственное, что вам предлагают при этом — выключение устройства путем нажатия на кнопку питания.
Однако, как сообщает источник информации, существует решение проблемы, позволяющее откатить систему до предыдущей версии.
Для этого вам понадобится:
1. Наличие компьютера с программами ADB и Fastboot. Раньше они шли в составе Google SDK, но с недавних пор вы можете скачать её на свой компьютер отдельно.
Скачать ADB (вместе с Fastboot) от Google вы можете по следующим ссылкам:
2. Подключите ваш смартфон к компьютеру с помощью USB кабеля, перейдите на компьютере в папку с программами ADB и Fastboot, после чего запустите окно командной строки Windows. Для этого в проводнике введите в адресной строке cmd и нажмите «Enter».

3. Загрузите смартфон в режим fastboot, выключив его полностью и включив одновременно нажимая кнопку включения и кнопку уменьшения громкости, пока на экране не появится изображение кролика mi.

4. В окне командной строки, Power Shell или терминала выполните команду:
Если ранее вы все сделали правильно, то Fastboot сообщит вам о том, что телефон или планшет, подключен к ПК, а на экране мобильного устройства появится предложение разрешить отладку с этого компьютера. Разрешите её нажав на кнопку ОК.

5. В окне командной строки наберите команду

6. Дождитесь загрузки предыдущей (10.2.9.) версии MIUI.
Похожие материалы:
Источник: www.4tablet-pc.net
Сборка ядра в termux для kali nethunter [Часть 1]

И так, зачем же вам может понадобиться ядро для nethunter? Ну к примеру чтобы вы могли подключить адаптер для пентестинга WI-FI сетей, и использования hid атак. Но ведь чтобы собрать ядро нужен компьютер на основе linux, не так ли? Да все верно, но теперь можно собирать ядро даже в termux! И это все благодаря относительно новому uber toolchain.
Способ работает на arm64, и сборка также происходит для arm64. Также вам нужен root

Установка всех нужных компонентов:
сначала нужно поставить ubuntu в termux, так-как не все зависимости присутствуют в termux
apt update apt upgrade echo «deb [trusted=yes arch=all] https://yadominjinta.github.io/files/ termux extras» >> $PREFIX/etc/apt/sources.list pkg in atilo atilo pull ubuntu atilo run ubuntu apt update apt upgrade apt install git wget sudo unzip libncurses5-dev python make gcc g++ bc grep nano
Теперь мы должны установить uber toolchain качаем по этой ссылке:
apt install wget wget https://bitbucket.org/UBERTC/aarch64-linux-android-4.9/get/78e5a7be6044.zip
Теперь нам нужны исходники подходящие для вашего девайса, и прошивки. У меня девайс redmi note 6 pro с прошивкой AICP. Значит я ищу в google.com «xda redmi note 6 pro ROMs, Kernels, Recoveries,
открыв первую попавшуюся ссылку переходим на нее:

Теперь в поиске пишем свою прошивку, у меня как уже говорилось AICP. Далее пролистываем до sources, и видим kernel source:

Переходим по ссылке и врубаем режим «Версия для ПК» далее выбираем brench, у меня это pie, теперь мы удаляем из ссылки tree/ и вместо этого вписываем -b
Получилась ссылка вида:
https://github.com/Advertpavan/kernel_xiaomi_tulip/ -b pie
Теперь надо скопировать их:
git clone https://github.com/Advertpavan/kernel_xiaomi_tulip/ -b pie
Пока качаются наши исходники, мы распаковываем toolchain:
sudo unzip 78e5a7be6044.zip mv UBERTC-aarch64-linux-android-4.9-78e5a7be6044 toolchain
Сейчас нужно установить нужные переменные для компилятора:
export CROSS_COMPILE=/root/toolchain/bin/aarch64-linux-android- export ARCH=arm64 export SUBARCH=arm64
Все готово! Теперь можно переходить к самой сборке ядра.
Сначала мы должны перейти в директорию с исходным кодом ядра.
cd .. cd kernel_xiaomi_tulip
Теперь выбираем config для сборки ядра, он находится в «arch/arm64/configs/
конфигом обычно является code name вашего девайса, у меня это. tulip
У меня есть config с именем «tulip-perf_defconfig»
Мы выбираем его, и пишем:
sudo make tulip-perf_defconfig
У меня вышла вот такая ошибка

Ее легко можно исправить, просто убрав в net/Kconfig 93 строку
Теперь все работает!

Еще надо пропатчить ядро:
wget http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch patch -p1 < mac80211.compat08082009.wl_frag+ack_v1.patch
Сейчас нам нужно править config, для этого мы введем команду:
sudo make menuconfig
Конец первой части!
Спасибо за прочтение!

- Основной канал — https://t.me/under_public
- Приватный канал — https://t.me/joinchat/AAAAAEmM-bkL9Pv7KLyL7w
- Termux, please — 100% termux
- ИБ News — самые свежие и интересные новости Информационной Безопасности.
- Чат — https://t.me/UnderChats
- Наш форум: https://darksploit.su/
- TG-канал форума:https://t.me/darksploit0x41
Также вы можете присылать ваши статьи в бота (оформляйте в телеграфе), я их просмотрю, если всё ОК — опубликую статью на канале с указанием автора.
Источник: te.legra.ph
