Пожалуйста, обратите внимание, что пользователь заблокирован
Компилируем собственное ядро Samsung на Android
Многие специалисты по безопасности и системные администраторы знакомы с процессом, который компилирует ядро Linux, а затем устанавливает его на наш любимый дистрибутив. Это может быть сделано для разных целей: усиление безопасности, настройка функций и многое другое...
Тем не менее, когда речь идет о ядрах Android (которые в обычно основаны на ядре Linux), особенно для моделей, которые не принадлежат Google, вы начинаете понимать, что не все так просто, и это нельзя так просто сделать, даже следуя интерактивному пошаговому руководству.
Сегодня и в моей следующей серии Medium я постараюсь сделать все возможное, чтобы изменить мнение людей. Сегодня я расскажу о такой штуке, как Infosec, и сделаю ее доступной для всех, кто заинтересован в этом.
Небольшой отказ от ответственности: это руководство относится к Samsung S7 (SM-G930F), однако его можно применять к другим моделям Samsung без каких-либо изменений.
Подготовка окружающей среды
Скачайте Ubuntu x64.iso . Я особенно люблю Xubuntu, так как я предпочитаю красивый внешний вид, однако любая другая система тоже допустима. На данный момент Xubuntu 18.04 (Bionic Beaver) является последней версией, которую вы можете скачать по этой ссылке .
Создайте виртуальную машину Xubuntu 18, используя предпочитаемый вами гипервизор. Убедитесь, что он имеет по крайней мере:
● 4 ГБ ОЗУ
● 40 ГБ дискового пространства
● 2 ядра процессора
Это ускорит процесс компиляции ядра и гарантирует, что у вас не кончится место на диске при компиляции ядра.
Как только ваша виртуальная машина будет запущена, войдите как root и выполните:
Код:
apt-get -y update
apt-get -y upgrade
apt-get -y dist-upgrade
apt-get -y install git ccache automake lzop bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 g++-multilib python-networkx libxml2-utils bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev squashfs-tools pngcrush schedtool dpkg-dev liblz4-tool make optipng heimdall-flash adb
Теперь нам нужно загрузить исходный код Kernel и кросс-компилятор Android, что позволит нам создавать код AARCH64 из обычной виртуальной машины x86.
Перейдите в папку, в которую вы хотите загрузить исходный код, и выполните:
git clone [URL]https://github.com/djb77/samsung-kernel.git[/URL] — branch G93XX-ALL Убедитесь, что репозиторий относится к телефону, который вы хотите прошить.
Затем, в той же папке, в которой находится папка с исходным кодом, выполните:
git clone[URL='https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9'] https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9[/URL]На данный момент у нас должно быть все необходимое для компиляции ядра.
Сборка ядра
Во-первых, нам нужно установить несколько переменных среды. Перейдите в папку, содержащую кросс-компилятор Android , предположительно, он называется aarch64-linux-android-4.9, и выполните следующее:
Код:
export CROSS_COMPILE=$(pwd)/bin/aarch64-linux-android-
export ARCH=arm64
export SUBARCH=arm64
export ANDROID_MAJOR_VERSION=o
Несколько важных предостережений относительно этих переменных сред:
● В редком случае, когда архитектура вашего устройства не arm64, измените переменные «ARCH» и «SUBARCH» соответственно. Вы можете увидеть список опций в папке «arch» в исходном коде ядра.
● Убедитесь, что папка, на которую указывает переменная «CROSS_COMPILE» (после добавления версии), действительно существует. В противном случае процесс не удастся.
● Переменная «ANDROID_MAJOR_VERSION» установлена в «o», потому что мы компилируем Android Oreo (8.x). Это изменится со временем, поэтому убедитесь, что он настроен соответствующим образом.
Затем нам нужно выбрать нашу целевую конфигурацию: перечислите содержимое папки « arch / <arch> / configs » и выберите ту, которая соответствует вашему устройству. В моем случае это «exynos8890-herolte_defconfig», я использую arm64 в качестве целевой архитектуры, вот мой вывод:
Варианты конфигурации
После того, как вы выбрали целевую конфигурацию, проверьте, сколько ядер у вашего телефона (см. Документацию устройства), а затем выполните следующее:
Код:
make clean
make mrproper
make exynos8890-herolte_defconfig
make -j(number of cores)
Не забудьте заменить « exynos8890-herolte_defconfig » на ваш файл defconfig (defconfig file).
Процесс не должен занимать много времени (от 5 до 10 минут), и после компиляции ваше ядро должно находиться в папке arch / <arch> / boot с именами Image и Image.gz
.
Это было не слишком сложно, верно? : D
Специально для xss.pro
Переводчик статьи - https://xss.pro/members/177895/
Источник: https://medium.com/@alex91ar/debugging-the-samsung-android-kernel-part-1-ab2a9b87c162
Последнее редактирование: