Skip to content

Параграф 1: Ошибки сборки (SELinux, нехватка пакетов, ресурсов и тд)

Cписок частых ошибок:

  1. ccache

  2. libncurses5

  3. metalava

  4. UnicodeDecodeError

ccache

error: Failed to create directory /home/user/.ccache/tmp: Read -only file system

Фикс

  1. Создаём папку по пути /mnt/ccache командой:
bash
sudo mkdir /mnt/ccache
  1. Монтируем cache:
bash
sudo mount --bind /home/username/.cache /mnt/ccache

WARNING

Вместо "username" вписываете своего юзера! И не ошибитесь в пути, у вас он может быть слегка другим.

  1. После монтирования прописываем команду для сжатия нашего кэша (это опционально, если вы хотите впихнуть больше в мелкий объём как я, то пишем):
bash
ccache -o compression=true
  1. Делаем стандартный экспорт и т.д.:
bash
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
export CCACHE_DIR=/mnt/ccache
  1. Устанавливаем размер нашего кэша:
bash
ccache -M 15G -F 0

TIP

15G - Размер кэша в ГБ

Такое решение работает до первой перезагрузки.

Для повторного исправления (после каждого ребута), просто прописываете команду монтирования

bash
sudo mount --bind /home/username/.cache /mnt/ccache
  1. Либо добавляем наш ccache в fstab:
bash
sudo nano /etc/fstab

И добавляем строку:

/home/username/ccache /mnt/ccache none defaults,bind,users,noauto 0 0
  1. После чего редактируем файл профиля:
bash
nano ~/.profile

Добавив строку:

mount /mnt/ccache

libncurses5

error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

Фикс:

  • Ubuntu
bash
sudo apt-get install libncurses5
  • Arch
bash
yay ncurses5-compat-libs

Metalava

Симптомы Сборка останавливается с ошибкой об нехватке ОЗУ на этапе сборки Metalava, либо надолго зависает

Android 10 (возможно устарело)

  1. Заходим в папку build/soong:
bash
cd build/soong
  1. Открываем на Lineage OS Gerrit нужный нам коммит

  2. Нажимаем кнопку "DOWNLOAD" LineageOSGerritDownload

  3. Напротив варианта "Cherry Pick" нажимаем кнопку копирования LineageOSGerritCherryPick

  4. Копируем в терминал и нажимаем Enter

  5. Возвращаемся в корень исходников:

bash
cd ../..
  1. Выполняем все подготовительные команды для сборки, но не запускаем
  2. Заранее и отдельно собираем по одному компоненту, который требует много ОЗУ:
bash
mka api-stubs-docs && mka hiddenapi-lists-docs && mka system-api-stubs-docs && mka test-api-stubs-docs
  1. Запускаем сборку прошивки

Android 11-13

Для него все тоже самое, отличие только в коммите и какие компоненты собираем заранее.

bash
mka api-stubs-docs && mka module-lib-api-stubs-docs && mka system-api-stubs-docs && mka test-api-stubs-docs

UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0

Фикс:

Убрать кириллические буквы в пути. Не должно быть по типу /home/coolgirl/линейдж/...