DIY: Kompilacja Android ROM z kodu źródłowego

Szybki i prosty przewodnik 10 krok do kompilacji AOSP ROM dla urządzeń z systemem Android, od konfigurowania urządzenia do personalizacji ROM.

A+ A-

Android to najbardziej powszechnie stosowany system operacyjny komórkowego na świecie. A najlepsze jest to całkowicie open source, które pod względem laika oznacza, że ​​kod źródłowy, rzeczywisty program dostępny jest otwarty dla wszystkich, aby pobrać, dostosowywanie i budować własne ROM.

Skompilować Androida ROM

Istnieje wiele niestandardowych Android rozkładów dostępnych tam, z popularnym z nich jest CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Gładkie, MIUI, Xylon, Ice Cold Jelly etc.

Na dzisiejszym poradniku będziemy kompilować CyanogenMod 10.2, najpopularniejszy Android aftermarket ROM. Postępuje się w 99% identyczna dla wszystkich niestandardowych ROM tam, więc ten przewodnik może być używany jako odniesienie do tworzenia innych ROM też.

Warunki wstępne

  1. Android Telefon z łatwo dostępnego źródła jądra i urządzeń, już zakorzeniony iz odzysku niestandardowych zainstalowany.
  2. 64-bitowy Linux Distribution (Wolimy Ubuntu).
  3. Przynajmniej 100GB wolnego na dysku twardym.
  4. Praktyczna znajomość systemu Linux Terminal poleceń.
  5. Racjonalnie szybki dostęp do internetu.

Wskaż Uwaga: 64-bitowy system operacyjny Linux jest obowiązkowa i musi być native instalacji, a nie maszyny wirtualnej.

Set Up Your build machine

1. Zainstaluj system operacyjny Linux do wyboru: 64 bitowa, zgodnie z oficjalnymi zaleceniami. (Przewodnik zakłada, że ​​jesteśmy z Ubuntu 13.04). Przechowywać partycję z co najmniej 100 GB z 16 GB partycji swap.

2. Zainstaluj następującą listę pakietów: Otwórz aplikację Terminal i wpisz "sudo apt-get install ', Naciśnij enter i poprosi Cię o podanie hasła.

Lista pakietów

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. Zainstaluj Java JDK 1.6 dla Linux 64-bit: Nazwa pliku powinna być jdk-6U ## - linux-x64.bin, ## są numery wersji. Przenieś pobrany pakiet do swojego katalogu domowego. Otwórz Terminal aplikację i uruchom następujący zestaw poleceń:

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

Teraz musimy dodać ścieżkę JDK do .bashrc

sudo gedit ~/.bashrc

Dodaj te linie na zakończenie pliku tekstowego

# Java Path
export JAVA_HOME=/opt/java/64/jdk1.6.0_##
export PATH=$PATH:$JAVA_HOME/bin

4. Instalacja Android SDK: Otwórz terminal aplikacji

cd ~
mkdir android && cd android
mkdir sdk

Pobierz Android SDK http://developer.android.com/sdk/index.html . Rozpakuj zawartość opakowania do ~ / Android / SDK Musimy dodać ścieżkę Android SDK do .bashrc

sudo gedit ~/.bashrc

Dodaj te linie do zakończenia pliku tekstowego:

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

Teraz należy zainstalować Android SDK Tools wpisując

android

5. Skonfiguruj konto GitHub i zdalnego repo: Możesz pominąć ten krok, jeśli telefon obsługuje CyanogenMod oficjalnie. Idź do github.com i zrobić konto dla siebie. W tym przewodniku Zastanawiam swój login jako 'user'.

Odwiedź github.com/CyanogenMod/android ', naciśnij Fork. Pilot manifest zostaną rozwidlone, a dostępne w osobistej repo.

Teraz przejdź do 'github.com/user/android~~pobj ". Otwórz default.xml pliku, naciśnij przycisk Edytuj. Znajdź tę linię:

<project path="android" name="CyanogenMod/android" />

I zastąpić to z

<project path="android" name="user/android" />

Zastanawiam źródłowe jądra źródłowe urządzenie i dostawców bibliotekami Twojego urządzenia dla Androida 4.3, aby mieć

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

Jestem zakładając oddział być nazwany "jb4.3". Można znaleźć dokładną nazwę w rzeczywistej repo. Następnie, na końcu pliku dodaj te linie, modyfikując je w zależności od kodu źródłowego urządzenia.

<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" />

Swoje zmiany. Pilot manifestu jest gotowy zostać wykorzystane.

6. Zainstaluj Repo polecenie: Otwórz terminal i wpisz

cd ~
mkdir ~/bin
curl  > ~/bin/repo
chmod a+x ~/bin/repo

Trzeba dodać ścieżkę Repo do .bashrc

sudo gedit ~/.bashrc

Dodaj tę linię na końcu pliku tekstowego

export PATH=$PATH:~/bin

7. Pobierz kod źródłowy ROM: Otwórz terminal i wpisz

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

Jeśli potrzebne Krok 5, a następnie wpisz

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

Jeśli urządzenie obsługuje CyanogenMod 10.2 oficjalnie, a następnie wpisz

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

teraz uruchom

repo sync –j16

Idź na kawę lub posiłek, to będzie trwać długo. Kod źródłowy jest dobrze ponad 10GB wielkości, więc to zajmie trochę czasu.

Pobieranie Źródło

8. Skonfiguruj urządzenie Specific Stuff: Jeśli urządzenie obsługuje CyanogenMod 10.2 oficjalnie, a następnie otwórz terminal i wpisz

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

To zajmie trochę czasu, źródło urządzenia wynosi około 3 GB w rozmiarze. Następnie trzeba mieć oficjalne CM10.2 zainstalowana w telefonie, należy podłączyć go do komputera w trybie debugowania USB i uruchom następujące polecenia:

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

Jeśli urządzenie nie obsługuje CyanogenMod 10.2 oficjalnie, to nie ma nic wspólnego w tym kroku, źródła są już czeka na ciebie.

9. Pobierz Montowane Rzeczy i skonfigurować Toolchain: Otwórz terminal i wpisz

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

Teraz musimy dodać ścieżkę toolchain do ./bashrc

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

Dodaj te linie na końcu pliku tekstowego

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

10. Zbuduj swój ROM: Tak, wszystko jest w porządku i gotowe. Nadszedł czas, aby zbudować ROM. Otwórz terminal i wpisz

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

Czas iść się zdrzemnąć. To zajmie lata zillion zbudować ROM na przeciętnym komputerze. Dobrze, że to przesada, ale na moim domowym komputerze (Core i5 2-cie gen z 8GB pamięci RAM), trwa ponad 3 godziny, aby zbudować od podstaw. Miejmy nadzieję, że nie będzie żadnych błędów, a budowa zakończy się dobrze. Otrzymasz pakiet wyjściowy w

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

Nadszedł czas, aby zainstalować nowo skompilowane ROM w telefonie. Pobierz pakiet Google Apps z "www.goo.im/gapps~~pobj" dla odpowiedniej wersji Androida. Umieść oba te pakiety w telefonie, a migać je w trybie awaryjnym. Voila, własną skompilowany ROM teraz pracuje urządzenie.

Dobrze, więc nauczył się skompilować ROM. I co teraz?

Zaktualizuj Twoje źródło ROM

Aby pobrać nowe aktualizacje kodu źródłowego swojej lokalnie pobrać kod źródłowy, otwórz terminal i wpisz

cd ~/android/cm
repo sync –j16

Aby zbudować swój ROM, po aktualizacji kodu źródłowego, otwórz terminal i wpisz

cd ~/android/cm
make installclean
find ./out/ -name ‘build.prop’ | xargsrm
find ./out/ -name ‘cm_<your_device>-target_files-eng.*.zip’ | xargsrm
. build/envsetup.sh
brunch <your_device>

Ponieważ nie są ponownie budowanie od podstaw, ale ponownie budynku, jak to jest, to zajmie znacznie mniej czasu, tylko około 15-30 minut, w większości przypadków. Należy zsynchronizować lokalnego źródła co tydzień lub tak, aby utrzymać się z lokalnym nowego źródła.

Oczyścić katalogu roboczym

Aby wyczyścić katalog roboczy całkowicie (czytaj: przywrócić folder źródłowy do stanu akcji), Otwórz terminal i wpisz następujące polecenia.

cd ~/android/cm
make installclean
make clobber

Należy pamiętać, że po uruchomieniu tych poleceń, wszystkie dane wyjściowe zostaną usunięte, więc kolejna kompilacja zajmie 3-4 godziny znowu, jak wszystko jest przebudowany od podstaw. Jeśli partycja dysku twardego jest mała, powiedzmy około 100GB, należy oczyścić swój katalog roboczy mniej więcej raz 4 buduje, albo będziesz zabraknie miejsca na dysku twardym.

Przyspieszenie zbudowany przez CCache

Budowanie ROM zajmuje dużo czasu. Ale czas można zmniejszyć o około 30-45% przy użyciu CCache. CCache oznacza kompilatora pamięci podręcznej, buforuje wyjście kompilacji z wcześniejszej buduje, tak, że mogą być ponownie wykorzystane w późniejszych buduje.

Zauważ, że CCache potrzebuje dużo miejsca na dysku twardym do buforowania zawartości, więc jest zalecane tylko wtedy, gdy partycja dysku twardego jest gdzieś w okolicach 200 GB lub większej. Aby skonfigurować CCache, otwórz terminal i wpisz:

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

Można zmienić rozmiar maksymalny przydział do CCache od 50GB do tego, co chcesz, ale minimum około 30GB powinny być wykorzystywane do dobrych wyników.

Fetch popełnia z innych ROM

Można możliwości wiśniowego wybrać z innym kodem źródłowym ROM. Powiedz na przykład, chcę odebrać wyposażone, z popełnienia identyfikator "12345" z repozytorium "github.com/user/reporepo~~pobj".

Nawigować do pakietu w kodzie źródłowym lokalnej i uruchomić je w terminalu.

cd ~/<path_to_reporepo_packages>
git fetch 
git cherry-pick 12345

Kod źródłowy Linki sławnych Android niestandardowych ROM Dystrybucje

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

Tak więc, nie idziesz facetów, prosty, prosty przewodnik do kompilacji praktycznie każdy Android AOSP oparciu ROM w 10 prostych krokach. Chociaż mój przewodnik skupia się na CyanogenMod, można skompilować prawie każdy AOSP ROM tam, po prostu modyfikowanie repozytorium linków. Albo można po prostu wybrać funkcje, zatwierdzić je, modyfikować rzeczy i stworzyć swoją własną indywidualną ROM, może udostępnić ROM zbyt online?