Cum să construiți LineageOS pentru un dispozitiv fără suport oficial? [închis] (Android, Roms Personalizate, Lineageos, Construiește)

daltonfury42 a intrebat.

Am un Mi 8 Lite (platina), pentru care nu există suport oficial LineageOS. Dar ROM-ul personalizat LineageOS pentru acest dispozitiv este disponibil pe XDA. La o cercetare suplimentară, pot vedea că fișierele furnizorului, arborele dispozitivului și codul sursă al kernelului sunt disponibile pentru dispozitivul meu:

  1. Kernel Source
  2. Arborele dispozitivului
  3. Fișiere furnizor

Cum construiesc un ROM LineageOS pentru dispozitivul meu fără suport oficial?

Comentarii

  • Bună ziua daltonfury42. Ne pare rău, dar întrebările legate de dezvoltare sunt în afara subiectului aici. Vă rugăm să vizitați centrul de ajutor pentru a cunoaște domeniul de aplicare al site-ului nostru. Nu știu dacă Stack Overflow preia astfel de întrebări. Având în vedere că ai depus deja eforturi pentru a-i ajuta pe alții, îți sugerez să iei în considerare XDA, Medium sau o altă platformă pentru a împărtăși această categorie de informații 🙂 –  > Por Firelord.
  • @Firelord Acest lucru nu are legătură cu dezvoltarea, sau cu scrierea de ROM-uri personalizate. Aceștia sunt pași pentru a „construi” un ROM prin descărcarea și compilarea codului sursă al acestuia. Dar dacă tot crezi că este o întrebare de dezvoltare, o voi muta pe stackoverflow. –  > Por daltonfury42.
  • Întrebările legate de construirea aplicațiilor sau a ROM-urilor nu sunt considerate ca făcând parte din domeniul de aplicare al acestui site, așa că ești liber să o duci acolo unde îți face plăcere. –  > Por Firelord.
  • @Firelord Poți să mă ajuți să mut asta pe stackoverflow? –  > Por daltonfury42.
  • @daltonfury42 Am întrebat un moderator pe Stack Overflow și mi-a răspuns că este prea larg pentru site-ul lor. Poate fi încercat meta sau camera lor de chat și să vedem dacă acest lucru poate fi transformat pentru a se potrivi în domeniul de aplicare al site-ului lor? –  > Por Firelord.
1 răspunsuri
daltonfury42

În primul rând, trebuie să configurați mediul de construcție. Ar trebui să rulați Ubuntu 18.04. LineageOS ghid de construcție pentru un dispozitiv aleatoriu poate fi folosit ca referință. Reproducerea pașilor aici:

Instalați pachetele de compilare:

sudo apt install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev adb fastboot

Creați directoarele:

mkdir -p ~/bin
mkdir -p ~/android/lineage

Instalează comanda repo:

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

Puneți directorul ~/bin în calea de execuție adăugând următoarele la ~/.profile dacă acesta lipsește:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Apoi, rulați source ~/.profile pentru a vă actualiza mediul. După aceea, inițializați depozitul de surse LineageOS și începeți descărcarea:

cd ~/android/lineage
repo init -u https://github.com/LineageOS/android.git -b lineage-16.0
repo sync

Descărcarea sursei LineageOS va dura ceva timp. După aceea ne vom abate de la ghidul oficial de compilare. Creați un fișier manifest local care să spună instrumentului repo de unde să preia sursa kernelului, arborele de dispozitive și fișierele furnizor. Fișierul corespunzător pentru platina poate fi descărcat de la adresa aici. Dacă construiți pentru un dispozitiv diferit, folosiți acest fișier manifest ca referință și editați-l în mod corespunzător. Salvați fișierul ca

.repo/local_manifests/platina.xml 

Reexecutați instrumentul repo pentru a le prelua:

repo sync

Inițializați mediul de construcție:

source build/envsetup.sh

Activați memoria cache pentru a accelera compilarea:

export USE_CCACHE=1

Ar trebui să adăugați linia de mai sus în fișierul dvs. .bashrc fișier. Apoi setați dimensiunea maximă a cache-ului:

ccache -M 50G

Configurați jack:

export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"

Editați device/xiaomi/platina/BoardConfig.mk și setați parametrul TARGET_KERNEL_CONFIG la platina_user_defconfig:

TARGET_KERNEL_SOURCE indică codul de kernel care trebuie utilizat în timpul compilării. TARGET_KERNEL_CONFIG specifică ce configurație trebuie utilizată. Dacă se caută în arch/arm64/configs/ în sursa kernelului, am setat valoarea la platina_user_defconfig

În cele din urmă, porniți compilarea:

lunch 16
mka bacon -j8

Acest lucru ar trebui să dureze câteva ore pentru a se finaliza. De obicei, eu o las să ruleze peste noapte. Aici este momentul în care lucrurile devin dificile. Este posibil ca compilarea să eșueze din cauza unor erori, caz în care va trebui să o remediați. După ce compilarea s-a finalizat, veți găsi fișierul zip, gata de a fi flashat:

Comentarii

  • Știți ce cheie de semnătură va fi folosită la construirea unei imagini LineageOS în acest mod? –  > Por Robert.