Недавно изучаю компиляцию ядра Android. Искал информацию в интернете (слишком много устаревшего контента, поисковые системы ничего не делают -_-!!) пока изучал самостоятельно, и наконец сдал компиляцию. запись здесь.
Зачем начинать с 1, а не с 0? Это потому, что вам нужно самостоятельно подготовить следующие среды:
- Windows 11
- WSL 2
- Docker
Готовы, приступим!
Откройте командную строку:
оставьте достаточно места на жестком диске
20G! Затем скопируйте и вставьте следующую команду:
1mkdir android-kernel && fsutil file setCaseSensitiveInfo android-kernel enable && docker run -it --name android-kernel -v /e/android-kernel:/root ubuntu:18.04 /bin/bash
Обратите внимание, что /e выше следует заменить вашим собственным рабочим каталогом и продолжить ввод после выполнения команды:
1sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list && apt update && apt install apt-utils libterm-readkey-perl dialog locales ca-certificates apt-transport-https -y && dpkg-reconfigure locales
Появится интерфейс настройки языка:
нажмите +, чтобы войти [ ] en_US.UTF-8 UTF-8, затем нажмите, чтобы Spaceвыбрать, нажмите, Enterзатем снова, чтобы выбрать en_US.UTF-8 UTF-8, и, наконец, нажмите Enter«Подтвердить».
Следующая строка команды warningиспользуется для устранения запроса при установке пакета. Люди, не страдающие обсессивно-компульсивным расстройством, могут его пропустить:
1rm /etc/dpkg/dpkg.cfg.d/excludes && apt update && dpkg -l | grep ^ii | cut -d' ' -f3 | xargs apt install -y --reinstall && apt install -y man && rm -r /var/lib/apt/lists/*
Затем установите необходимые пакеты для компиляции:
1apt update && apt install git gpg python build-essential flex bison zip libxml2-utils xsltproc curl zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib lib32z1-dev libssl-dev -y
Настройте gitинформацию пользователя и замените ее самостоятельно yourusername youremail:
1git config --global user.name 'yourusername' && git config --global user.email 'youremail'
Затем:
1mkdir bin && PATH=~/bin:$PATH && curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > bin/repo && chmod +x bin/repo && export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' && repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/kernel/manifest -b android-4.19-stable && repo sync -c -j8
Дождитесь его завершения и android-4.19-stableзамените на нужную вам версию.
Общую версию можно найти в общих ядрах Android .
1BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh -j8
Просто дождитесь завершения компиляции, и все готово.