Kategoriat
Lab-blogi

Lineage 17.1 kääntäminen

Tässä on tarkoitus käydä läpi kuinka Lineage 17.1 käännetään Oneplus 6:lle (enchilada). Lineage lienee yksi suosituimmista custom romeista ja omissa testeissäni myös todennut sen olevan vakain. Pääpiirteittäin homma menee näin; mitä enemmän kaikkia ominaisuuksia romiin on tungettu mukaan, sitä epävakaampi se on. (esim Havoc)
Lineage taas tarjoaa kohtalaisesti ominaisuuksia ja vakaan käyttöympäristön päivittäiseen käyttöön. Kerneliksi suosittelen Radioactive kerneliä tai Illusion kerneliä Lineagen stock kernelin sijasta, molemmat voi kääntää romin mukana inline. Radioactiven kanssa tarvitset lisäksi Cross compiler toolchainin.

Edellisessä AOSiP postauksessa kerroin alussa muutamia perusjuttuja, joten kannattaa lukea se ensin ellei prosessi ole tuttu.

Jos käytät kotihakemistoa:
mkdir -p ~/bin

mkdir -p ~/android/lineage


Itse käytän toista levyä jonka olen mountannut /bhdd
mkdir -p /bhdd/android/lineage


curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

chmod a+x ~/bin/repo

cd ~/android/lineage (hakemisto jonka aiemmin loit, vähintään 200GB vapaata tilaa)

Nyt ladataan yli 30GB dataa
repo init -u git://github.com/LineageOS/android.git -b lineage-17.1

repo sync

Kun repo sync on valmis, on aika lisätä pakolliset sekä mahdolliset oma valintaiset kustomoinnit.

Vendor ja common

Lisätään laitteen tarvitsema proprietary vendor tree ensin
Luo tiedosto roomservice.xml ja hakemisto local_manifests polkuun /lineage/.repo/local_manifests/ jos näitä ei ole valmiina
eli polku näyttää tältä kun kaikki on kunnossa
“/lineage/.repo/local_manifests/roomservice.xml”
Huomaa että piste hakemiston/tiedoston edessä tarkoittaa piilotettua tiedostoa/hakemistoa.
Avaa tiedosto haluamallasi koodieditorilla (esim. Visual Studio Code) ja lisää sinne seuraavat rivit ja tallenna.
Kiinnitä huomiota kerneliin, mikäli haluat jonkin muun kuin Illusion kernelin.

<?xml version=”1.0″ encoding=”UTF-8″?>
<manifest>
<project path=”device/oneplus/enchilada” remote=”github” name=”LineageOS/android_device_oneplus_enchilada=”lineage-17.1″ /> <project path=”device/oneplus/sdm845-common” remote=”github” name=”LineageOS/android_device_oneplus_sdm845-common” revision=”lineage-17.1″/>
<project path=”kernel/oneplus/sdm845″ remote=”github” name=”AOSiP-Devices/kernel_oneplus_sdm845″ revision=”ten” />
<project path=”vendor/oneplus” remote=”github” name=”TheMuppets/proprietary_vendor_oneplus” revision=”lineage-17.1″ />
</manifest>

Tässä vielä oma device tree, joka sisältää omia muokkauksiani mm OnePlusCamera sekä joitakin paketteja poistettu. Voit halutessasi kokeilla sitäkin ja forkata sen Githubista itsellesi.

<?xml version=”1.0″ encoding=”UTF-8″?>
<manifest>
<project path=”device/oneplus/enchilada” remote=”github” name=”AgentOrange007/android_device_oneplus_enchilada” revision=”lineage-17.1″ /> <project path=”device/oneplus/sdm845-common” remote=”github” name=”LineageOS/android_device_oneplus_sdm845-common” revision=”lineage-17.1″/>
<project path=”kernel/oneplus/sdm845″ remote=”github” name=”AOSiP-Devices/kernel_oneplus_sdm845″ revision=”ten” />
<project path=”vendor/oneplus” remote=”github” name=”AgentOrange007/proprietary_vendor_oneplus” revision=”lineage-17.1″ />
</manifest>

Tämän vaiheen jälkeen voisimme periaatteessa siirtyä kääntäämään romia, mutta tehdään vielä pari pientä muutosta SystemUI:n sillä Lineage ei mahdollista QuickSettings painikkeiden lisäämistä user interfasesta, ainakaan Oneplus 6:lla ja itselleni se 3×3 ei vaan sovi joten “puukotamme” hieman koodia:

Avaa haluamallasi koodieditorilla tiedosto
/lineage/frameworks/base/packages/SystemUI/res/values/config.xml
ja etsi sieltä seuraavat rivit
<integer name=”quick_settings_num_columns”>3</integer>
<integer name=”quick_settings_max_rows”>3</integer>

Numeroiden tilalle voit muuttaa haluamasi asetuksen eli sarakkeet ja rivit, itselläni on 5 ja 6.

Jos haluat operaattorin nimen jatkuvasti vasempaan ylänurkkaan näkymään, muuta arvo false –> true
<bool name=”config_showOperatorNameInStatusBar”>true</bool>

Suosittelen käymään tiedoston asetukset huolella läpi, sieltä löytyy mm. ilmoituksiin liittyviä asetuksia jotka voivat sinulle olla hyödyllisiä. Ja toki aina kun lähtee muokkaamaan niin varmuuskopiot tiedostoista ennen muokkausta ja max muutama muutos kerralla ja sitten kääntää ja katsoo toimiiko asetukset niin voi ottaa ne “omaan tuotantoon” 🙂 Minun version tiedostosta löydät githubista ja voit ottaa muutokset suoraan sieltä halutessasi, WatchDogs bootanimaation saat suoraan täältä Lineagen perusanimaation tilalle kun käännät romia.

Käännetään

Nyt on muutokset tehty ja valmiina kääntämään Lineagen manuaalin mukaisesti mennään eli
source build/envsetup.sh
breakfast enchilada
(aiemmin lisätty vendor repo pitäisi latautua nyt)
croot
brunch enchilada


Mikäli sait errorin, kannattaa katsoa googlella virheilmoitusta. Yleensä sillä selviää paljon. Muussa tapauksessa seuraavaksi romi tulee flashata käyttäen custom recoveryä eli twrp:tä
cd $OUT (ja kopioi johonkin muuhun paikkaan käännetty rom)
välillä hyvä ennen seuraava prosessia ajaa
make clean lineage/android hakemistossa (ei poista konffeja)

Suosittelen Githubiin omia repoja devicelle, commonille, vendorille ja frameworkille niin saat omat työsi helposti talteen mikäli teet muutoksia. Toki jos haluat vain kääntää Lineagen sen omista repoista, ei Githubin käyttö ole pakollista.