Параграф 1: Помилки збірки (SELinux, нестача пакетів, ресурсів і тд)
Список частих помилок:
ccache
error: Failed to create directory /home/user/.ccache/tmp: Read -only file system
Фікс
- Створюємо директорію за шляхом /mnt/ccache командою:
sudo mkdir /mnt/ccache
- Монтуємо cache:
sudo mount --bind /home/username/.cache /mnt/ccache
WARNING
Замість "username" вписуєте свого юзера! І не помиліться в шляху, у вас він може бути злегка іншим.
- Після монтування прописуємо команду для стиснення нашого кешу (це опціонально, якщо ви хочете впихнути більше в дрібний обсяг як я, то пишемо):
ccache -o compression=true
- Робимо стандартний експорт тощо:
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
export CCACHE_DIR=/mnt/ccache
- Встановлюємо розмір нашого кешу:
ccache -M 15G -F 0
TIP
15G - Розмір кешу в ГБ
Таке рішення працює до першого перезавантаження.
Для повторного виправлення (після кожного ребуту), просто прописуєте команду монтування
sudo mount --bind /home/username/.cache /mnt/ccache
- Або додаємо наш ccache у fstab:
sudo nano /etc/fstab
І додаємо рядок:
/home/username/ccache /mnt/ccache none defaults,bind,users,noauto 0 0
- Після чого редагуємо файл профілю:
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
sudo apt-get install libncurses5
- Arch
yay ncurses5-compat-libs
Metalava
Симптоми: Збірка зупиняється з помилкою про брак ОЗП на етапі збірки Metalava, або надовго зависає
Android 10 (можливо застаріло)
- Заходимо в директорію build/soong:
cd build/soong
Відкриваємо на Lineage OS Gerrit потрібний нам коміт
Натискаємо кнопку "
DOWNLOAD
"Навпроти варіанту "
Cherry Pick
" натискаємо кнопку копіюванняКопіюємо в термінал і натискаємо Enter
Повертаємося в корінь вихідних кодів:
cd ../..
- Виконуємо всі підготовчі команди для збірки, але не запускаємо
- Заздалегідь і окремо збираємо по одному компоненту, який вимагає багато ОЗП:
mka api-stubs-docs && mka hiddenapi-lists-docs && mka system-api-stubs-docs && mka test-api-stubs-docs
- Запускаємо збірку прошивки
Android 11-13
Для нього все те саме, відмінність тільки в комітеті і які компоненти збираємо заздалегідь.
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/лінейдж/...