Сборка android на rootfs образе — различия между версиями
Taz mania (обсуждение | вклад) (Новая страница: «Категория:HOWTO =Предисловие= Данная статья написана для продвинутых пользователей и не…») |
Taz mania (обсуждение | вклад) м (→Скачивание исходников) |
||
(не показана одна промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
[[Категория:HOWTO]] | [[Категория:HOWTO]] | ||
=Предисловие= | =Предисловие= | ||
− | Данная статья написана для | + | Данная статья была написана для ознакомления со способом сборки прошивки в rootfs образе и не несет в себе пошаговую инструкцию по сборке Android. |
+ | |||
+ | В моем случае это Android 10 AOSP. | ||
Все действия выполнялись на ОС '''''Rosa Fresh LXQT 12.4''''' и в виртуальной среде исполнения '''''systemd-nspawn'''''. | Все действия выполнялись на ОС '''''Rosa Fresh LXQT 12.4''''' и в виртуальной среде исполнения '''''systemd-nspawn'''''. | ||
Строка 49: | Строка 51: | ||
source ~/.bashrc | source ~/.bashrc | ||
</pre> | </pre> | ||
+ | |||
+ | Переходим в папку с будущей прошивкой: | ||
+ | <pre> | ||
+ | cd /путь_где_будет_папка_с_исходниками | ||
+ | </pre> | ||
+ | |||
+ | Далее используем команды из repo: | ||
+ | * Скачиваем manifest (скачивание инструкции) | ||
+ | <pre>repo init --depth=1 -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r45</pre> | ||
+ | * Синхронизация (скачивание исходников) | ||
+ | <pre>repo sync -c -q --force-sync --no-tags --no-clone-bundle --optimized-fetch --prune</pre> | ||
==Сборка== | ==Сборка== | ||
− | Более подробно описано тут [[https://source.android.com/docs/setup/build/building?hl=ru Сборка Android | + | Более подробно описано тут [[https://source.android.com/docs/setup/build/building?hl=ru Сборка Android]] |
Рецепт для Android 10: | Рецепт для Android 10: |
Текущая версия на 19:33, 7 апреля 2023
Содержание
Предисловие
Данная статья была написана для ознакомления со способом сборки прошивки в rootfs образе и не несет в себе пошаговую инструкцию по сборке Android.
В моем случае это Android 10 AOSP.
Все действия выполнялись на ОС Rosa Fresh LXQT 12.4 и в виртуальной среде исполнения systemd-nspawn.
Подготовка образа rootfs
Необходимо:
- Скачать образ и почитать про него можно тут Образ rootfs
- Создать рабочую папку, куда будем распаковывать образ (создать от имени root):
sudo mkdir -p /путь_до_рабочей_папки
- Распаковать образ (также от имени root):
sudo tar -xvf /путь_до_архива_rootfs
- Войти в rootfs:
sudo systemd-nspawn --bind /путь_до_папки_c_исходниками:/путь_где_будет_папка_с_исходниками -D /путь_до_рабочей_папки
Подробнее про systemd-nspawn [Прочитать]
Установка зависимостей
Для корректной сборки нужно установить следующие пакеты внутрь среды systemd-nspawn:
sudo dnf install basesystem-build git unzip m4 lib64tinfo which openssl python2
Также необходимо сделать символьную ссылку на библиотеку "libncurses"
sudo ln -s /usr/lib/libncursesw.so.6 /usr/lib/libncurses.so.5
Скачивание исходников
Скачивание исходников android происходит с помощью repo, прочитать про него можно тут [Прочитать].
В официальных репозиториях этого пакета нет, поэтому ставим вручную:
mkdir -p ~/.bin || exit curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.scripts/bin/repo || exit chmod a+rx ~/.scripts/bin/repo || exit echo 'PATH="${HOME}/.bin:${PATH}"' >> ~/.bashrc || exit source ~/.bashrc
Переходим в папку с будущей прошивкой:
cd /путь_где_будет_папка_с_исходниками
Далее используем команды из repo:
- Скачиваем manifest (скачивание инструкции)
repo init --depth=1 -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r45
- Синхронизация (скачивание исходников)
repo sync -c -q --force-sync --no-tags --no-clone-bundle --optimized-fetch --prune
Сборка
Более подробно описано тут [Сборка Android]
Рецепт для Android 10:
cd /путь_где_будет_папка_с_исходниками source build/envsetup.sh lunch имя_сборки m all
Посмотреть справку по командам:
hmm