ianuarie 18, 2022

DIY: compilați Android ROM din Codul sursă

Android este cel mai utilizat sistem de operare mobil din lume. Și cea mai bună parte, este complet open-source, ceea ce în termeni laici, înseamnă că codul sursă, programul real este disponibil în mod deschis pentru ca toată lumea să descarce, să personalizeze și să-și construiască propriile ROM-uri.

există o mulțime de distribuții personalizate Android disponibile acolo, cele mai populare fiind CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Smooth, MIUI, Xylon, Ice Cold Jelly etc.

pentru ghidul de astăzi, vom compila CyanogenMod 10.2, cel mai popular ROM aftermarket Android. Procedura este de 99% aceeași pentru toate ROM-urile personalizate de acolo, astfel încât acest ghid poate fi folosit ca referință pentru a compila și alte ROM-uri.

pre-rechizite

  1. un telefon Android cu nucleu ușor disponibile și sursa de dispozitiv, deja înrădăcinate și cu o recuperare personalizat instalat.
  2. distribuție Linux pe 64 de biți (preferăm Ubuntu).
  3. cel puțin 100 GB gratuit pe Hard Disk.
  4. cunoașterea de lucru a comenzilor terminale Linux.
  5. conexiune la internet destul de rapidă.

notă: sistemul de operare Linux pe 64 de biți este o necesitate și trebuie să fie o instalare nativă, nu o mașină virtuală.

Configurați Mașina De Construcție

1. Instalați sistemul de operare Linux la alegere: versiunea pe 64 de biți, conform instrucțiunilor oficiale. (Ghidul va presupune că rulăm Ubuntu 13.04). Păstrați o partiție de cel puțin 100 GB cu partiție Swap de 16 GB.

2. Instalați următoarea listă de pachete: Deschideți aplicația Terminal și tastați

sudo apt-get install<numele pachetului>

apăsați enter și vă va solicita parola.

Lista de pachete

git-core
gnupg
flex
bison
python
rar
original-awk
gawk
p7zip-full
gperf
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
squashfs-tools
build-essential
zip
curl
libncurses5-dev
zlib1g-dev
pngcrush
schedtool
libc6-dev
x11proto-core-dev
libx11-dev
libg11-mesa-dev
mingw32
tofrodos
python-markdown
libxml2-utils
g++-multilib
lib32z1-dev
ia32-libs
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g++-multilib
xsltproc

3. Install Java JDK 1.6 for Linux 64-bit: File name should be jdk-6u##-linux-x64.bin, ## are version numbers. Move the downloaded package to your home directory. Deschideți aplicația Terminal și executați următorul set de comenzi:

sudo apt-get purge openjdk – \ * icedtea – \ * icedtea6-\*
sudo mkdir-p /opt/java/64/
sudo cp jdk-6u##-linux-x64.bin / opt / java / 64
sudo su –
cd / opt / java / 64
chmod a + X jdk-6u# # – linux-x64.Coș
./ jdk-6U# # – linux-x64.bin
ieșire

acum, trebuie să adăugăm calea JDK la .bashrc

sudo gedit ~/.bashrc

adăugați aceste linii în finalul fișierului text

# Java Path
export JAVA_HOME = / opt / java / 64 / jdk1.6. 0_##
export PATH= $ PATH:$JAVA_CASA / cos

4. Instalați Android SDK: deschideți Terminal App

cd ~
mkdir android &&cd android
mkdir sdk

Descărcați Android SDK de la http://developer.android.com/sdk/index.html. Extrageți conținutul pachetului la ~/android/sdk trebuie să adăugăm calea Android SDK la .bashrc

sudo gedit ~/.bashrc

adăugați aceste linii la sfârșitul fișierului text:

# Android SDK Path
export PATH= $ PATH:~ / android / sdk
export PATH = $ PATH:~ / android / sdk / platform-tools
export PATH= $ PATH:~ / android / sdk / tools

acum, Instalați Android SDK Tools tastând

android

5. Configurați-vă contul github și remote repo: puteți sări peste acest pas dacă CyanogenMod acceptă oficial telefonul. Mergi la github.com, și fă-ți un cont pentru tine. Pentru acest ghid, consider numele dvs. de utilizator ca ‘utilizator’.

vizitați github.com/CyanogenMod/android’, apăsați furculiță. Manifestul de la distanță va fi bifurcat și Disponibil în repo-ul dvs. personal.

acum, du-te la ‘github.com/user/android’. deschideți fișierul implicit.xml, apăsați Editare. Găsiți această linie:

<calea proiectului = „android” name= „CyanogenMod / android” />

și înlocuiți acest lucru cu

<calea proiectului= „android” nume= „utilizator / android” />

am în vedere sursa kernel-ului dispozitivului, sursa dispozitivului și libs furnizor pentru Android 4.3 să fie la

github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor

presupun că ramura va fi numită ‘jb4.3’. Puteți găsi numele exact în repo real. Apoi, la sfârșitul fișierului, adăugați aceste linii, modificându-le în funcție de codul sursă al dispozitivului.

<calea proiectului= „kernel / your_company/your_device” name= „user2/kernel_source” remote=” github „revision=” jb4.3″ />
<calea proiectului= „dispozitiv / your_company/your_device” name= „user2 / device_source” remote=” github „revision=” jb4.3″ />
<project path=” device/your_company/your_device-common”name=” user2/device-common_source”remote=” github”revision =” jb4.3″ />
<calea proiectului= „vendor / your_company” name=” user2/vendor ” remote=” github „revision=” jb4.3″ />

comite modificările. Manifestul de la distanță este gata pentru a fi implementat.

6. Instalați comanda Repo: deschideți terminalul și tastați

cd ~
mkdir ~/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+X ~/bin/repo

trebuie să adăugăm calea Repo la .bashrc

sudo gedit ~/.bashrc

adăugați această linie la sfârșitul fișierului text

export PATH= $ PATH:~ / bin

7. Adu codul sursă ROM: Deschideți terminalul și tastați

mkdir ~/android/cm
cd ~ / android / cm

dacă aveți nevoie de Pasul 5, tastați

repo init-u git://github.com / user / android.git –B cm-10.2

dacă dispozitivul dvs. acceptă oficial CyanogenMod 10.2, tastați

repo init-u git://github.com/CyanogenMod/android.git –B cm-10.2

acum rula

repo sync –j16

du-te apuca de o cafea, sau o masă, o să ia o lungă perioadă de timp. Codul sursă are o dimensiune de peste 10 GB, deci va dura ceva timp.

Sursa De Preluare

8. Configurarea chestii specifice dispozitivului: dacă dispozitivul acceptă CyanogenMod 10.2 Oficial, apoi deschideți Terminal și tastați

cd ~/android/cm
. build/envsetup.sh && mic dejun <device_codename>

va dura ceva timp, sursa dispozitivului are o dimensiune de aproximativ 3 GB. Apoi, trebuie să aveți CM10.2 oficial instalat pe telefon, conectați-l la PC în modul de depanare USB și executați următoarele comenzi:

ADB root
cd ~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh

dacă dispozitivul dvs. nu acceptă oficial CyanogenMod 10.2, atunci nu aveți nimic de făcut în acest pas, sursele vă așteaptă deja.

9. Descărcați lucruri pre-construite și configurați Toolchain: deschideți terminalul și tastați

cd ~/android/cm/vendor/cm
SH ./ get-prebuilts

acum, trebuie să adăugăm calea Toolchain la ./ bashrc

cd ~/android/cm
sudo gedit ~/.bashrc

adăugați aceste linii la sfârșitul fișierului text

# Android Toolchain
export ARCH=arm
export CCOMPILE= $ CROSS_COMPILE
export CROSS_COMPILE=arm-eabi –
export PATH = $ PATH:~ / android / cm / preconstruit / linux-x86 / toolchain / arm-eabi-4.4.3 / bin

10. Construiește-ți ROM – ul: deci, totul este în regulă și gata. E timpul să construim ROM-ul. Deschideți terminalul și tastați

cd ~/android/cm
. build/envsetup.sh
brunch <device_codename>

e timpul să tragem un pui de somn. Va dura un miliard de ani pentru a construi ROM-ul pe un computer mediu. Ei bine, asta a fost o exagerare, dar pe PC-ul meu de acasă (Core i5 2nd gen cu 8GB RAM), este nevoie de peste 3 ore pentru a construi de la zero. Sperăm că nu vor exista erori, iar construcția se va finaliza bine. Veți primi pachetul de ieșire în

~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip

este timpul să instalați ROM-ul nou compilat pe telefon. Descărcați pachetul Google Apps de la ” www.goo.im / gapps ” pentru versiunea Android corespunzătoare. Pune ambele aceste pachete în telefon, și flash-le în modul de recuperare. Voila, propriul ROM compilat rulează acum dispozitivul.

Ei bine, așa că ați învățat cum să compilați un ROM. Și acum ce facem?

actualizați ROM –ul sursă

pentru a prelua noi actualizări ale codului sursă la codul sursă descărcat local, deschideți terminalul și tastați

cd ~/android/cm
repo sync-j16

pentru a construi ROM-ul, după actualizarea codului sursă, deschideți terminalul și tastați

cd ~/Android/cm
asigurați installclean
găsi ./ out / – nume ‘ construi.prop | / xargs rm
găsi ./ out/ – nume ‘ cm_ <dispozitivul dvs.> -target_files-ing.*.zip ‘ / xargs rm
. build/envsetup.sh
brunch < dispozitivul tau>

deoarece nu re-construiți de la zero, ci re-construiți așa cum este, va dura mult mai puțin timp, doar aproximativ 15-30 de minute în majoritatea cazurilor. Ar trebui să sincronizați sursa locală în fiecare săptămână sau cam asa ceva, pentru a menține sursa locală proaspătă.

curățați directorul de lucru

pentru a curăța directorul de lucru complet (citiți: returnați folderul sursă la starea stocului), deschideți terminalul și tastați următoarele comenzi.

cd ~/android/cm
face installclean
face clobber

țineți minte, că după rularea acestor comenzi, toate datele de ieșire vor fi eliminate, astfel încât următoarea construi va dura 3-4 ore din nou, ca totul este re-construit de la zero. Dacă partiția dvs. de Hard Disk este mică, spuneți în jur de 100 GB, ar trebui să vă curățați directorul de lucru aproximativ o dată la fiecare 4 versiuni, altfel veți rămâne fără spațiu pe Hard Disk.

accelerarea construi dvs. de CCACHE

construirea unui ROM ia o mulțime de timp. Dar timpul poate fi redus cu aproximativ 30-45% prin utilizarea CCACHE. CCACHE standuri pentru compilator cache, se cache de ieșire de compilare de la dumneavoastră construiește mai devreme, astfel încât să poată fi reutilizate în construiește mai târziu.

rețineți că CCACHE are nevoie de mult spațiu pe Hard Disk pentru stocarea în cache a conținutului, deci este recomandat dacă și numai dacă partiția dvs. de Hard Disk este undeva în vecinătatea a 200 GB sau mai mare. Pentru a configura CCACHE, deschideți terminalul și tastați:

cd ~/android/cm
export USE_CCACHE=1
export CACHE_DIR=~/.ccache
prebuilts/misc/linux-x86/ccache/ccache –M 50G

puteți modifica alocarea maximă a dimensiunii la CCACHE de la 50 GB la orice doriți, dar trebuie utilizat un minim de aproximativ 30 GB pentru rezultate bune.

preluare comiteri de la alte ROM-uri

puteți alege caracteristicile din alte ROM-uri codul sursă. Spuneți, de exemplu, Vreau să aleg caracteristica A, cu ID-ul de comitere „12345” din depozit „github.com/user/reporepo”.

navigați la pachetul din codul sursă local și rulați-le în Terminal.

cd ~ / < path_to_reporepo_packages>
git fetch https://github.com/user/reporepo
git cherry-pick 12345

link-uri de cod sursă de celebre distribuții ROM personalizate Android

CyanogenMod – https://github.com/CyanogenMod
SlimROM – https://github.com/SlimRoms
ParanoidAndroid – https://github.com/ParanoidAndroid
AOKP – https://github.com/AOKP
LiquidSmooth – https://github.com/liquidsmooth
Xylon ROM –
jeleu rece ca gheața– https://github.com/IceColdJelly

Deci, acolo te duci baieti, un ghid simplu, simplu pentru a compila aproape orice ROM bazat pe Android AOSP în 10 pași simpli. În timp ce ghidul meu se concentrează pe CyanogenMod, puteți compila aproape fiecare ROM AOSP acolo, modificând doar legăturile depozitului. Sau, puteți alege doar caracteristici, să le angajeze, modifica chestii și de a crea propriul ROM personalizat, poate partaja ROM-ul on-line prea?

Lasă un răspuns

Adresa ta de email nu va fi publicată.