• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Создание ядра для Samsung, часть 1

NokZKH

Переводчик
Забанен
Регистрация
09.02.2019
Сообщения
99
Реакции
121
Пожалуйста, обратите внимание, что пользователь заблокирован
image2.png


Компилируем собственное ядро 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 в качестве целевой архитектуры, вот мой вывод:

image3.png

Варианты конфигурации

После того, как вы выбрали целевую конфигурацию, проверьте, сколько ядер у вашего телефона (см. Документацию устройства), а затем выполните следующее:

Код:
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
.

image1.png

Это было не слишком сложно, верно? : D

Специально для xss.pro
Переводчик статьи - https://xss.pro/members/177895/
Источник: https://medium.com/@alex91ar/debugging-the-samsung-android-kernel-part-1-ab2a9b87c162
 
Последнее редактирование:
привет, я использую переводчик. Можно ли использовать этот же процесс для установки дистрибутива Linux (в частности, arch Linux, но Debian тоже будет в порядке) на мобильное устройство Samsung?
 
The Original poster is banned, he will not answer....
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх