Сборка android на rootfs образе — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Новая страница: «Категория:HOWTO =Предисловие= Данная статья написана для продвинутых пользователей и не…»)
 
м (Скачивание исходников)
 
(не показана одна промежуточная версия этого же участника)
Строка 1: Строка 1:
 
[[Категория:HOWTO]]
 
[[Категория:HOWTO]]
 
=Предисловие=
 
=Предисловие=
Данная статья написана для продвинутых пользователей и не несет в себе пошаговую инструкцию по сборке Android 10.
+
Данная статья была написана для ознакомления со способом сборки прошивки в 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-kernels?hl=ru Сборка ядра]]
+
Более подробно описано тут [[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 [Прочитать]

Idea.png
Примечание
Все дальнейшие действия выполняются внутри виртуальной среды

Установка зависимостей

Для корректной сборки нужно установить следующие пакеты внутрь среды 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