[GUIDA] Compilazione ROM dai sorgenti
Questa guida, visto che siamo nella sezione One-X utilizzerà per la compilazione i sorgenti della IceColdJelly 4.2.1, la piu' semplice per cominciare visto che non necessita di modifiche a livello di configurazione.
Cosa serve:
Quote:
- - Un PC con almeno 4GB di ram e un bel po di spazio sull'HDD e un processore abbastanza potente ( io utilizzo un hp pavilion con Intel Core i3) ( i sorgenti occuperanno circa 25GB di spazio)
- - una distro Linux ( consigliata Ubuntu o Mint, SOLO 64 bit )
- - la configurazione dell'USB, dell'MTP e dell'Android SDK come spiegato qui: [GUIDA] Collegamento USB / MTP Ubuntu e impostazione Android SDK
Impostazioni iniziali:
- nei passaggi seguenti installeremo diversi binari che serviranno poi per la compilazione, quindi:
- - aprite il terminale e installate i seguenti pacchetti:
codice:
sudo apt–get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool
codice:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline6-dev gcc-4.4-multilib g++-4.4-multilib
- -create la directory nella cartella vostra cartella Home per la repo:
aprite il terminale e digitate:
codice:
mkdir //reponame//
sostituite //reponame// con il nome che volete ( ad esempio mkdir icjrepo)
- -installate il binario Repo ( ci serve per il download e il sync della repo )
codice:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
- - aprite il file .bashrc e aggiungete la riga seguente ( ci servira' per richiamarlo le volte successive senza dover inserire la path al binario repo) :
codice:
#repo tool
export PATH=${PATH}:~/bin
- -installate Java6 Oracle:
- -scaricate l'archivio .bin "Linux X64" da qui: Java SE Development Kit 6u26
- -rendete il file eseguibile:
codice:
chmod a+x [version]-linux-i586.bin
- -avviate il file nel terminale:
codice:
./[version]-linux-i586.bin
durante l'installazione vi chiederà se volete registrarvi sul sito Oracle, premete enter e si aprira' la schermata di registrazione. La registrazione NON E' obbligatoria quindi chiudete il browser e lasciate che continui ad estrarre i files
- -tutti i file verranno estratti in una cartella chiamata ad esempio jdk1.6.0_30 nella directory in sui avete scaricato il .Bin
- -ora rinominate la cartella come segue:
codice:
mv jdk1.6.0_30 java-6-oracle
- -ora dobbiamo copiare la cartella nella directory corretta, quindi:
codice:
sudo cp -r java-6-oracle /usr/lib/jvm
- -installate il selettore per JDK come segue:
codice:
wget http://webupd8.googlecode.com/files/update-java-0.5b
chmod +x update-java-0.5b
sudo ./update-java-0.5b
- -dalla finestra che vi comparirà, selezionate "java-6-oracle" e cliccate ok
- -installate altri pacchetti necessari ( se durante l'installazione vi dice che alcuni pacchetti non sono disponibili, semplicemente ridate il comando senza il pacchetto che causa l'errore)
codice:
sudo apt-get install git-core gnupg flex bison python rar original-awk gawk p7zip-full gperf libsdl1.2-dev libesd0-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool xsltproc
codice:
sudo apt-get install g++-multilib lib32z1-dev ia32-libs lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib
codice:
sudo apt-get install libc6-dev x11proto-core-dev libx11-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils
- -date poi il seguente comando
codice:
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
- - installate CCache:
codice:
sudo apt-get install ccache
- -create una cartella nella vostra home nominata ccache
- -editate il .bashrc per fare in modo che il sistema utilizzi ccache
codice:
sudo gedit .bashrc
- -aggiungete al termine del file le righe seguenti:
codice:
# CCache
export USE_CCACHE=1
export CCACHE_DIR=$HOME/ccache
export CCACHE_LOGFILE=$HOME/ccache/ccache.log
- -salvate e chiudete!
- -bene, la configurazione e' terminata!
Inizializzazione della Repo:
- - dal termiale spostatevi nella cartella che avete creato prima per la repo
ad esempio cd icjrepo
- - inizializzate la repo con:
codice:
repo init -u git://github.com/IceColdJelly42/platform_manifest.git -b jb-mr1
- - durante l'inizializzazione vi chiedera' username e email, lasciate inalterato il nome, non inserite l'email e confermate il tutto quando ve lo richiederà
- - ora sincronizzate la repo:
- - questo passaggio impiegherà diverse ore per completarsi poichè dovrà scaricare tutti i sorgenti ( circa 25GB)
- - una volta terminato compilatela con:
codice:
./vendor/aokp/build.sh
- - la prima compilazione impiegherà diverso tempo, mediamente 90 minuti, mentre le volte successive la compilazione dovrebbe assestarsi sull'ora circa ( ovviamente, piu' il vostro HW e' potente, meno ci vorrà per compilarla)
- - se tutto va bene al termine avrete una schermata come questa:
http://dl.dropbox.com/u/13475549/scr...s/complete.png
- - il vostro pacchetto lo troverete nella cartella della repo seguendo questo percorso:
codice:
reponame/out/target/product/endeavoru/aokp_endeavoru_unofficial_Feb-05-13.zip
- - Divertitevi! :D
- - NOTA BENE: per aggiornare la repo con gli ultimi sorgenti basterà ridare il comando
e questo si occuperà di aggiornare la repo scaricando solo i nuovi commits ed eliminando i vecchi, oppure quelli non piu' necessari
prima di rilanciare la compilazione pero' dovrete digitare:
in modo che tutti i vecchi file della vecchia compilazione vengano eliminati , dopo questo comando potrete ridare il comando di build, quindi:
codice:
./vendor/aokp/build.sh
Special Thanks to the IceColdJelly Team for the Original Guide: http://forum.xda-developers.com/showthread.php?t=2052610][ROM] [31JAN] [AOKP] IceColdJelly421 - 1.6 - JellyBean 4.2.1_r1