DIY: Käännä Android ROM lähdekoodista
Android on maailman käytetyin mobiilikäyttöjärjestelmä. Ja mikä parasta, se on täysin avoimen lähdekoodin, mikä maallikon termein tarkoittaa, että lähdekoodi, varsinainen ohjelma on avoimesti kaikkien saatavilla ladata, muokata ja rakentaa omia Rom.
on olemassa paljon mukautettuja Android-jakeluja, joista suosittuja ovat CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Smooth, MIUI, Xylon, Ice Cold Jelly jne.
tämän päivän oppaaseen kokoamme CyanogenMod 10.2: n, joka on suosituin Androidin jälkimarkkinarom. Menettely on 99% sama kaikille custom ROM siellä, joten tämä opas voidaan käyttää viitteenä kääntää muita rom Too.
ennakkoedellytykset
- Android-puhelin, jossa on helposti saatavilla ydin ja Laitelähde, jo juurtunut ja mukautettu palautuslaite asennettu.
- 64-bittinen Linux-jakelu (suosimme Ubuntua).
- Vähintään 100 Gt ilmaiseksi kiintolevyllä.
- Työosaaminen Linux-Päätekomennoista.
- kohtuullisen nopea internet-yhteys.
Point to note: 64-bittinen Linux-käyttöjärjestelmä on must, ja sen täytyy olla natiivi-asennus, ei virtuaalikone.
Set Up Your Build Machine
1. Asenna valitsemasi Linux-käyttöjärjestelmä: 64-bittinen versio virallisten ohjeiden mukaan. (Opas olettaa, että käytämme Ubuntu 13.04: ää). Pidä osio vähintään 100GB kanssa 16gb Swap osio.
2. Asenna seuraava pakettiluettelo: Avaa Terminaalisovellus ja kirjoita
sudo apt-get install <package-name>
paina enter ja se kysyy salasanasi.
pakkausluettelo
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. Avaa Terminal-sovellus ja suorita seuraavat komennot:
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.bin
./ JDK-6U## – linux-x64.bin
exit
Now, we must add JDK Path to .bashrc
sudo gedit ~/.bashrc
lisää nämä rivit tekstitiedoston loppuun
# Java Path
export JAVA_HOME = / opt / java / 64 / jdk1. 6. 0_# #
export PATH = $PATH:$ JAVA_KOTI / Roskakori
4. Asenna Android SDK: Open Terminal App
cd ~
mkdir android &&cd android
mkdir sdk
Lataa Android SDK http://developer.android.com/sdk/index.html. Pura paketin sisältö ~ / android / sdk meidän täytyy lisätä Android SDK polku .bashrc
sudo gedit ~/.bashrc
lisää nämä rivit tekstitiedoston loppuun:
# Android SDK Path
export PATH = $PATH:~ / android / sdk
export PATH = $PATH:~ / android / sdk/platform-tools
export PATH = $PATH:~ / android / sdk / tools
now, install Android SDK Tools by typing
android
5. Määritä GitHub-tili ja Remote repo: voit ohittaa tämän vaiheen, jos CyanogenMod tukee puhelintasi virallisesti. Siirry github.com ja tee itsellesi tili. Tämän oppaan, olen harkitsee käyttäjätunnuksesi ”käyttäjä”.
käynti ”github.com/CyanogenMod/android’, paina haarukkaa. Etäluettelo haarautuu, ja se on saatavilla henkilökohtaisessa repossasi.
now, go to ”github.com/user/android’. avaa tiedoston oletusarvo.XML, paina Edit. Etsi tämä rivi:
<project path= ”android” name= ”CyanogenMod / android” />
ja korvaa tämä
<project path= ”android” name= ”käyttäjä / android” />
harkitsen laitteesi ytimen lähdettä, laitteen lähdettä ja toimittajan libs Android 4.3: lle olevan
github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor
lähden siitä, että haaran nimeksi tulee ”jb4.3”. Tarkka nimi löytyy varsinaisesta reposta. Sitten, lopussa tiedoston, lisää nämä rivit, muokkaamalla niitä mukaan laitteen lähdekoodin.
<project path= ”kernel/your_company / your_device” name= ”user2 / kernel_source” remote= ”github” revision= ”jb4.3” />
<project path= ”device/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″ />
<project path= ”vendor/your_company” name= ”user2 / vendor” remote= ”github” revision= ”jb4.3” />
toimita muutokset arkistoon. Etäluettelosi on valmiina käyttöön.
6. Install Repo Command: Open Terminal and type
cd ~
mkdir ~/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo >~/bin/repo
chmod a+x ~/bin/repo
on lisättävä Repopolku .bashrc
sudo gedit ~/.bashrc
Lisää tämä rivi tekstitiedoston loppuun
export PATH=$PATH:~ / bin
7. Nouda ROM-lähdekoodi: Avaa pääte ja kirjoita
mkdir ~ / android / cm
cd ~ / android / cm
jos tarvitset vaiheen 5, Kirjoita
repo init-u git:/ / github. com / user / android. git –B cm-10.2
jos laitteesi tukee CyanogenMod 10.2: ta virallisesti, Kirjoita
repo init –u githttps://github.com/CyanogenMod/android.git –B cm-10.2
nyt juokse
repo sync –j16
mene kahville tai syömään, siinä menee kauan. Lähdekoodi on kooltaan reilusti yli 10 Gt, joten se vie aikaa.
8. Määritä laitekohtaiset jutut: jos laite tukee CyanogenMod 10.2: ta virallisesti, avaa pääte ja kirjoita
cd ~/android/cm
. build/envsetup.sh & & aamiainen < laite_koodinimi>
se kestää jonkin aikaa, laitteen lähde on noin 3GB kooltaan. Sitten, sinun täytyy olla virallinen CM10.2 asennettu puhelimeen, liitä se tietokoneeseen USB-testaus tilassa, ja suorita seuraavat komennot:
adb juuri
cd ~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh
jos laitteesi ei tue CyanogenMod 10.2: ta virallisesti, sinulla ei ole mitään tekemistä tässä vaiheessa, lähteet odottavat jo sinua.
9. Lataa valmiiksi kootut jutut ja aseta Työkaluketju: avaa pääte ja kirjoita
cd ~ / android/cm/vendor / cm
Sh ./ get-prebuilds
nyt, meidän täytyy lisätä Toolchain polku ./bashrc
cd ~ / android / cm
sudo gedit ~/.bashrc
lisää nämä rivit tekstitiedoston loppuun
# Android Toolchain
export ARCH=arm
export CCOMPILE=$CROSS_COMPILE
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:~/android/cm/prebuild/linux-x86/toolchain/arm-eabi-4.4.3 / bin
10. Rakenna ROM: niin, kaikki on kunnossa ja valmis. On aika rakentaa ROM. Avoin Pääte ja tyyppi
cd ~ / android / cm
. build/envsetup.sh
Brunssi < device_codename>
aika ottaa nokoset. Kestää ziljoona vuotta rakentaa ROM keskimääräinen tietokone. No, se oli liioittelua, mutta minun kotitietokone (Core i5 2nd gen 8GB RAM), se kestää yli 3 tuntia rakentaa tyhjästä. Toivottavasti virheitä ei tule, ja rakennus valmistuu hienosti. Saat lähtö paketti sisään
~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip
on aika asentaa vastakääntynyt ROM puhelimeen. Lataa Google Apps-paketti kohdasta ” www.Goo.im/gapps ” asianmukaiselle Android-versiolle. Laita molemmat paketit puhelimeen, ja flash ne palautustilassa. Voila, oma käännetty ROM on nyt käynnissä laitteen.
No, niin opittiin kokoamaan ROM. Mitä nyt?
Päivitä lähdekoodisi
hakeaksesi uusia lähdekoodipäivityksiä paikallisesti ladattuun lähdekoodiisi, avoimeen päätelaitteeseen, ja kirjoita
cd ~/android/cm
repo sync –j16
rakentaaksesi ROM-versiosi, kun olet päivittänyt lähdekoodin, avoimen päätelaitteen ja tyypin
cd ~/Android/cm
make installclean
find ./ out / – name ’build.prop ’ | xargs rm
etsi ./ out/ – name ” cm_< your_device> – target_files-eng.*.zip ’ | xargs rm
. build/envsetup.sh
Brunssi < your_device>
koska et rakenna uudelleen tyhjästä, vaan rakennat uudelleen sellaisenaan, se vie huomattavasti vähemmän aikaa, vain noin 15-30 minuuttia useimmissa tapauksissa. Paikallista lähdettä kannattaa synkronoida noin viikon välein, jotta paikallinen lähde pysyy tuoreena.
Puhdista Työhakemistosi
puhdistaaksesi työhakemistosi kokonaan (Lue: palauta lähdekansio varastotilaan), avaa pääte ja kirjoita seuraavat komennot.
cd ~/android/cm
make installclean
make clobber
pidä mielessä, että näiden komentojen suorittamisen jälkeen kaikki tulostustietosi poistetaan, joten seuraava rakentaminen kestää 3-4 tuntia uudelleen, koska kaikki rakennetaan uudelleen tyhjästä. Jos kiintolevyosio on pieni, sanoa noin 100GB, sinun pitäisi puhdistaa työhakemisto noin kerran 4 rakentaa, tai muuten, sinun loppuu kiintolevytilaa.
Speed up your build by CCACHE
ROM-levyn rakentaminen vie paljon aikaa. CCACHEN avulla aikaa voi kuitenkin lyhentää noin 30-45 prosenttia. CCACHE on lyhenne sanoista compiler cache, se kätkee aikaisemman käännöstuloksen, jotta sitä voidaan käyttää uudelleen myöhemmissä rakennuksissa.
huomaa, että CCACHE tarvitsee paljon tilaa kiintolevylläsi sisällön välimuistiin tallentamiseen, joten se on suositeltavaa, jos ja vain jos Kiintolevyosiosi on jossain 200 Gt: n tai korkeamman läheisyydessä. CCACHEN määrittäminen, avaa pääte ja kirjoita:
cd ~/android/cm
export USE_CCACHE=1
export CACHE_DIR=~/.ccache
prebuilds / misc/linux-x86/ccache / ccache –M 50g
voit muuttaa CCACHEN maksimikokojaon 50 Gt: stä miksi haluat, mutta noin 30 Gt: n minimiä tulisi käyttää hyviin tuloksiin.
nouda toimituksia muista Rom-versioista
voit cherry-pick-ominaisuuksia muista Rom-lähdekoodeista. Esimerkiksi haluan valita ominaisuuden a, toimitustunnuksella ”12345” arkistosta ”github.com/user/reporepo”.
navigoit pakettiin paikallisessa lähdekoodissa ja suoritat nämä päätteessä.
cd ~ / <path_to_reporepo_pakkaukset>
git nouto https://github.com/user/reporepo
git cherry-pick 12345
Source Code Links of Famous Android Custom ROM Distributions
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 –
Ice Cold Jelly– https://github.com/IceColdJelly
niin, siellä menee kaverit, yksinkertainen, yksinkertainen opas kääntää lähes kaikki Android AOSP perustuu ROM 10 yksinkertaisia ohjeita. Vaikka oppaani keskittyy CyanogenMod, voit kääntää lähes kaikki AOSP ROM siellä, vain muokkaamalla arkiston linkkejä. Tai, voit vain valita ominaisuuksia, sitouttaa ne, muokata juttuja ja luoda oman henkilökohtaisen ROM, ehkä jakaa ROM verkossa liian?