LINUX.ORG.RU

Ошибка при компиляции ядра Android

 kernel nethunter


0

1

Хочу поставить kali nethunter на xiaomi redmi 5a,ядра с поддержкой nethunter нет,поставил прошивку aex nougat, а ядро решил сам сделать.По всевозможным мануалам с гитхаба,скачал исходник ядра пропатчил этой командой

wget http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch

patch -p1 < mac80211.compat08082009.wl_frag+ack_v1.patch

Использую ubuntu 18.04 LTS defconfig в исходниках ядра на мой телефон отсутсвует,решил использовать msmcortex-perf_defconfig.После установки тулчейна и патча прописываю make msmcortex-perf_defconfig , иногда вылезает какие то проблемы с TOUCHSCREEN, а другой раз писало просто warning что то там TOUCHSCREEN(фотку прикрепил).Пропиываю make menu config , делаю как в мануале с гитхаба https://github.com/offensive-security/kali-nethunter/wiki/Modifying-the-Kernel , сохраняю, потом пишу make , идет долгий процесс и ошибка 1 и 2. Что они означают? https://pp.userapi.com/c852024/v852024720/146305/bs1fE9dMho4.jpg



Последнее исправление: debil228 (всего исправлений: 2)

Заголовочный файл отсутствует.

xpahos ★★★★★
()

Смотри выше «No such file or directory ...».

infomeh ★★
()

Сделай find . -name rndis_ipa_trace.h по каталогу исходного кода ядра.

Если этот файл имеется, то скорее всего просто в Makefile’ах неправильно заданы пути до заголовочных файлов.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)

Во первых до того как ты сделал patch -p1 < неразборчиво надо было сперва попробовать patch -p1 --dry-run < неразборчиво.

defconfig в исходниках ядра на мой телефон отсутсвует

Такого не бывает. Ты что то не договариваешь.

init_6 ★★★★★
()
Ответ на: комментарий от debil228

вот фотка

Страница скрыта
Страница доступна только авторизованным пользователям.

Неуважение какое-то вижу я.

anonymous
()
Ответ на: комментарий от debil228

Просто.

Его нужно отредактировать. Как правило, там всё очевидно — где-то должна быть строка с указанием где искать инклюды. Т.е. -Iпуть. Искать в строке вызова gcc.

Ещё один момент — терзают меня смутные сомненья что исходники ядра для тела там явно не те. Как правило, ядро от вендора оборудования собирается без напрягов. Конечно, если окружение выстроено правильно. Но тут уже ошибиться... сложно.

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
Ответ на: Просто. от Moisha_Liberman

Ну я нашел только на гитхабе когда искал исходник ядра, https://github.com/MiCode/Xiaomi_Kernel_OpenSource

там нашел Redmi 5a https://github.com/MiCode/Xiaomi_Kernel_OpenSource/tree/riva-n-oss

Где еще можно поискать исходник ядра?На xda смотрел ядра, там нет ссылок на исходник.

debil228
() автор топика
Ответ на: комментарий от debil228

Хммм...

Тогда странно. В указанных исходниках файл, на отсутствие которого ругается gcc, есть. Вот он — https://github.com/MiCode/Xiaomi_Kernel_OpenSource/blob/riva-n-oss/drivers/ne...

Пробы ради просто сделайте симлинки или просто скопируйте для теста в каталог, где его не может найти gcc. И запустите компиляцию заново. Если начнётся ругань на другие ненайденные файлы, а этот проскочит, то тогда правьте пути (-I параметр в makefile). Ну либо среда кросскомпилятора как-то криво сконфигурирована. У меня в аналогичных случаях, как правило, всё нормально работает. Но у меня и не убунту и не в виртуалке.

Moisha_Liberman ★★
()
Ответ на: Хммм... от Moisha_Liberman

Он, как я понял, ругается еще и на отсутствие rndis_ipa.0 , прописал find . -name rndis_ipa.0 нечего не выдало

debil228
() автор топика
Ответ на: комментарий от debil228

Боюсь...

Тут я уже ни чем не помогу. Это надо собирать прошивку именно для этого тельца, а у меня, к сожалению, не будет на наступающей неделе времени для этого.

Тут, скорее, не тулчейн старый. Скорее, он встал как-то «не так», либо хочет чтобы ему прописали через environment variables какие-то пути дополнительно. Надо смотреть хаутушки как люди собирают в таком случае данную прошивку.

Если устроит, то на следующей неделе, точнее, получается, что через неделю, я могу попробовать глянуть что там не так (правда, у меня Gentoo). Не ранее.

Moisha_Liberman ★★
()
Ответ на: Боюсь... от Moisha_Liberman

Короче нашел другой исходник, где есть defconfig на мой телефон.Все скомпилировал, я только хз правильно ли собрал, типо там появилось 2 файла Image.gz и Image.gz-dtb и кое как по мануалам собрал его в image-new.img Как правильно их надо переделать в img файл?Короче я прошил то что у меня вышло, осталось проверить на работоспособность.

У меня 2 вопроса осталось, если есть время конечно) Как правильно и какой файл из этих двух Image.gz и Image.gz-dtb переделать в img файл для прошивки ядра?

И как написать патч для поддержки HID атак?Есть в гитхабе https://github.com/pelya/android-keyboard-gadget но он не поддерживает мой телефон, и там написано что тогда вам придется самому его собирать, как это сделать? Может литературу какую посоветуете почитать?

debil228
() автор топика
Ответ на: комментарий от debil228

Ну вот... Так-то лучше. =)

Говорю же — с сырцами тут чего-то не то было.

Хорошо что собралось.

Как правильно и какой файл из этих двух Image.gz и Image.gz-dtb переделать в img файл для прошивки ядра?

dtb это описание борды (платы Вашего девайса). Он формируется (компилируется) из файлов dts. В них прописаны адреса и прочая инфа об устройствах на плате (или в телефоне). Это некая такая «карта устройств». В результирующем образе этот файл должен быть перед общим img-файлом (который Image.gz), который должен содержать общую прошивку. Т.е., по логике сперва прогружаться должен кусок с dtb, потом общий образ.

Мне сложно сказать вот так, навскидку, надо смотреть по какому howto делали. В общем и целом, у Вас должен получиться некий «полный образ», куда dtb включены первыми, а общая прошивка второй. Обе прошивки это некие такие партиции (разделы файловой системы Вашего мобильника). Результирующая прошивка — их объединение.

Про dtb — https://source.android.com/devices/architecture/dto/partitions

И как написать патч для поддержки HID атак?Есть в гитхабе https://github.com/pelya/android-keyboard-gadget но он не поддерживает мой телефон, и там написано что тогда вам придется самому его собирать, как это сделать?

Насколько я понял, Вам нужно создать патч для Вашего девайса. Как пример посмотрите здесь — https://github.com/pelya/android-keyboard-gadget/tree/master/patches

Причём, надо учитывать версию ядра, если по-хорошему. Пример по шагам, не знаю насколько корректный, но вот — https://github.com/pelya/android-keyboard-gadget/blob/master/HTCM7_patch_steps и вот — https://github.com/pelya/android-keyboard-gadget/blob/master/CONTRIBUTING_AND...

Дальше Вы должны пропатчить этим патчем ядро своего девайса. Патч должен быть подготовлен согласно (например) вот этого документа — https://github.com/pelya/android-keyboard-gadget/blob/master/patches/existing...

В патч, который через fastboot ставится на тело, должен быть включён remote-client, который есть в дереве исходников. После патча через fastboot он появится на экране тела. Должен появиться, во всяком случае.

Компиляция ядра — https://github.com/pelya/android-keyboard-gadget/blob/master/README.md#compil...

Может литературу какую посоветуете почитать?

А вот тут я вообще х.з. просто потому, что до определённого предела ведроид это «просто Линукс». А после определённого предела это прикладная часть, которая крайне специфична. Java там, NDK, вот это вот всё. И сказать что в данном случае я затрудняюсь. Посмотрите на сайте гуглей про разработку под ведро андроида. Ну и вообще гуглить надо, т.к. задачка весьма специфичная.

Ну вот, как-то так, если чисто навскидку и неприцельно. Чтобы прицельно, надо садиться и в деталях разбираться для данного решения. Может, кто что ещё подскажет?

UPD. Забыл написать. Вы патчите по сути, dtb своего девайса. У Вас должен получиться некий /dev/hid<номер>. А это и ядро и таблица устройств. Дальше уже работает всё через этот псевдо-девайс.

Ну вот, как-то вот так примерно. Извините что не смог раскопать тему глубже.

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
6 февраля 2020 г.
Ответ на: комментарий от debil228

Во-первых это исходники от Redmi 5 (rosy), а во-вторых тулчейн лучше брать гугловский и тот на котором собиралось сток ядро, не гнаться за последними релизами от линаро…

anonymous
()
Ответ на: комментарий от debil228

))) патчить надо ядро!!! перед сборкой…ссылка по которой Вы указываете поддерживает-не-поддерживает это уже готовые(собраные)ядра под некоторые модели на определённом андроиде…Вам надо там порыться в сырцах и искать патч под версию ядра…

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.