DIY: compileer Android ROM van broncode
Android is het meest gebruikte mobiele besturingssysteem ter wereld. En het beste deel, het is volledig open-source, wat in lekentaal betekent dat de broncode, het eigenlijke programma open beschikbaar is voor iedereen om te downloaden, aan te passen en hun eigen ROM ‘ s te bouwen.
er zijn veel aangepaste Android-distributies beschikbaar, met de populaire zijn CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Smooth, MIUI, Xylon, Ice Cold Jelly, enz.
voor de today ‘ s guide zullen we CyanogenMod 10.2 compileren, de meest populaire Android aftermarket ROM. De procedure is 99% hetzelfde voor alle aangepaste ROM ’s die er zijn, dus deze gids kan worden gebruikt als een referentie om andere ROM’ s te compileren.
vereisten
- een Android-telefoon met direct beschikbare Kernel-en Apparaatbron, al geworteld en met een aangepast herstel geïnstalleerd.
- 64 bit Linux-distributie (We geven de voorkeur aan Ubuntu).
- minstens 100 GB vrij op uw harde schijf.
- praktische kennis van Linux Terminalcommando ‘ s.
- redelijk snelle internetverbinding.
opmerking: 64 bit Linux OS is een must, en het moet een native installatie zijn, geen virtuele Machine.
Uw Bouwmachine Instellen
1. Installeer het Linux OS van uw keuze: 64 bit versie, volgens de officiële instructies. (De gids zal aannemen dat we Ubuntu 13.04 draaien). Houd een partitie van ten minste 100GB met 16GB Swap partitie.
2. Installeer de volgende lijst met pakketten: Open Terminal app, en typ
sudo apt-get install <package-name>
druk op enter en het zal u vragen om uw wachtwoord.
pakketlijst
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. Open Terminal app en voer de volgende set opdrachten:
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
nu moeten we JDK pad toevoegen aan .bashrc
sudo gedit ~/.bashrc
voeg deze regels toe aan het einde van het tekstbestand
# Java Path
export JAVA_HOME= / opt / java / 64 / jdk1. 6. 0_ # #
export PATH = $PATH:$JAVA_HOME / bin
4. Installeer Android SDK: Open Terminal App
cd ~
mkdir android && cd android
mkdir sdk
Download Android SDK van http://developer.android.com/sdk/index.html. Pak de inhoud van het pakket naar ~/android/sdk We moeten toevoegen Android SDK pad naar .bashrc
sudo gedit ~/.bashrc
voeg deze regels toe aan het einde van het tekstbestand:
# Android SDK Path
export PATH = $PATH:~/android / sdk
export PATH=$PATH:~/android/sdk / platform-tools
export PATH = $PATH:~/android/SDK / tools
installeer nu Android SDK Tools door
android te typen
5. Het opzetten van uw GitHub account en remote repo: u kunt deze stap overslaan als CyanogenMod ondersteunt uw telefoon officieel. Ga naar github.com en maak een rekening voor jezelf. Voor deze gids, Ik overweeg uw gebruikersnaam als ‘gebruiker’.
bezoek “github.com/CyanogenMod/android”, druk op Vork. De remote manifest zal worden gevorkt, en beschikbaar zijn in uw persoonlijke repo.
nu, ga naar ‘github.com/user/android’. Open het bestand standaard.xml, druk op Bewerken. Zoek deze regel:
<project path=”android” name=”CyanogenMod/android” />
En vervang dit met
<project path=”android” name=”gebruiker/android” />
ik ben het overwegen van uw apparaat kernel source, apparaat bron en leverancier libs voor Android 4.3 worden op
github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor
ik ben in de veronderstelling dat de branche met de naam ‘jb4.3’. U kunt de exacte naam vinden in de werkelijke repo. Vervolgens, aan het einde van het bestand, voeg deze regels, ze te wijzigen op basis van de broncode van uw apparaat.
<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/apparaat-common_source” remote=”github” revision=”jb4.3″ />
<project path= “vendor / your_company” name= “user2 / vendor” remote = “github” revision= “jb4.3” />
uw wijzigingen vastleggen. Jullie remote manifest is klaar om ingezet te worden.
6. Installeer Repo opdracht: Open Terminal en typ
cd ~
mkdir ~ / bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~ / bin / repo
chmod a+x ~ / bin / repo
waaraan Repo-pad moet worden toegevoegd .bashrc
sudo gedit ~/.bashrc
voeg deze regel toe aan het einde van het tekstbestand
export PATH = $PATH:~ / bin
7. Haal de ROM-broncode op: Open Terminal en type
mkdir ~/android/cm
cd ~/android/cm
Als u Stap 5, en daarna type je
archief-init –u git://github.com/user/android.git –b cm-10.2
Als uw apparaat ondersteunt CyanogenMod 10.2 officieel, en daarna type je
archief-init –u git://github.com/CyanogenMod/android.git –b cm-10.2
Nu voer
repo sync –j16
Ga pak een kopje koffie of een maaltijd, het zal een lange tijd duren. De broncode is ruim 10 GB groot, dus het zal behoorlijk wat tijd in beslag nemen.
8. Stel de apparaatspecifieke spullen in: als uw apparaat officieel CyanogenMod 10.2 ondersteunt, open dan Terminal en typ
cd ~ / android / cm
. build/envsetup.sh && ontbijt <device_codename>
het zal enige tijd duren, de bron van het apparaat is ongeveer 3GB in grootte. Dan, je nodig hebt om officiële CM10. 2 geïnstalleerd op uw telefoon, sluit deze aan op uw PC in USB Debugging mode, en voer de volgende opdrachten:
ADB root
cd ~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh
als uw apparaat CyanogenMod 10.2 officieel niet ondersteunt, dan hebt u niets te doen in deze stap, de bronnen wachten al op u.
9. Download vooraf gebouwde spullen en stel Toolchain in: Open Terminal en typ
cd ~ / android / cm / vendor / cm
sh ./ get-prebuilts
nu moeten we het pad van de Gereedschapsketting toevoegen./bashrc
cd ~/android /cm
sudo gedit~/.bashrc
voeg deze regels toe aan het einde van het tekstbestand
# 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. Bouw je ROM: dus, alles is in orde en klaar. Het is tijd om de ROM te bouwen. Open Terminal en typ
cd ~ / android / cm
. build/envsetup.sh
brunch <device_codename>
tijd om een dutje te doen. Het zal een zillion jaar duren om de ROM op een gemiddelde computer te bouwen. Nou, dat was een overdrijving, maar op mijn thuis PC (Core i5 2nd gen met 8GB RAM), het duurt meer dan 3 uur om te bouwen vanaf nul. Hopelijk zullen er geen fouten, en de bouw zal voltooien prima. U krijgt het uitvoerpakket binnen
~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip
het is tijd om uw nieuw gecompileerde ROM op uw telefoon te installeren. Download het Google Apps-pakket van ” www.smurrie.im/ gapps ” voor de juiste Android-versie. Zet beide pakketten in uw telefoon, en flash ze in recovery mode. Voila, uw eigen gecompileerde ROM is nu het uitvoeren van uw apparaat.
goed, dus je hebt geleerd hoe je een ROM compileert. Dus, wat nu?
Update uw broncode
om nieuwe broncode –updates op te halen voor uw lokaal gedownloade broncode, open Terminal, en typ
cd ~/android/cm
repo sync-j16
om uw ROM te bouwen, open terminal na het updaten van de broncode, en typ
cd ~/android/cm
make installclean
find ./ out / – name ‘ build.prop ‘ / xargs rm
find ./ out / – name ‘ cm_<uw_apparaat> – target_files-eng.*.zip ‘ / xargs rm
. build/envsetup.sh
brunch <uw apparaat>
aangezien u niet opnieuw bouwen vanaf nul, maar opnieuw bouwen zoals het is, zal het aanzienlijk minder tijd in beslag nemen, slechts ongeveer 15-30 minuten in de meeste gevallen. Je moet je lokale bron elke week of zo synchroniseren, om je lokale bron vers te houden.
maak uw werkmap schoon
om uw werkmap volledig schoon te maken (lezen: retourneer uw bronmap naar voorraadvoorwaarde), Open Terminal en typ de volgende commando ‘ s.
cd ~ / android / cm
make installclean
make clobber
Houd er rekening mee dat na het uitvoeren van deze commando ‘ s al uw uitvoergegevens zullen worden verwijderd, zodat de volgende build weer 3-4 uur zal duren, omdat Alles opnieuw wordt opgebouwd. Als uw harde schijf partitie is klein, laten we zeggen rond 100 GB, moet u uw werk directory ongeveer een keer elke 4 bouwt, of anders, zal u opraken van de ruimte op de harde schijf.
sneller bouwen door CCACHE
het bouwen van een ROM kost veel tijd. Maar de tijd kan worden gekort met ongeveer 30-45% door het gebruik van CCACHE. CCACHE staat voor compiler cache, het caches de compilatie-uitvoer van uw eerdere builds, zodat het kan worden hergebruikt in latere builds.
merk op dat CCACHE veel ruimte op uw harde schijf nodig heeft voor het cachen van de inhoud, dus het wordt aanbevolen als en alleen als uw harde schijfpartitie ergens in de buurt van 200GB of hoger ligt. Om CCACHE in te stellen, opent u Terminal en typt u:
cd ~/android/cm
export USE_CCACHE=1
export CACHE_DIR=~/.ccache
prebuilts/misc/linux-x86/ccache / ccache –M 50G
u kunt de maximale grootte van CCACHE wijzigen van 50 GB naar wat u wilt, maar een minimum van ongeveer 30 GB moet worden gebruikt voor goede resultaten.
Fetch Commits van andere ROMs
je kunt functies uit andere ROMs broncode cherry-pick. Bijvoorbeeld, Ik wil Feature a kiezen, met commit ID “12345” uit de repository “github.com/user/reporepo”.
u navigeert naar het pakket in uw lokale broncode en voert deze uit in Terminal.
cd ~/<path_to_reporepo_packages>
git fetch https://github.com/user/reporepo
git cherry-pick 12345
Bron-Code Links van de Beroemde Android Custom ROM Distributies
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 –
ijskoude Gelei– https://github.com/IceColdJelly
Dus, daar ga je jongens, een eenvoudige, overzichtelijke gids voor het compileren van vrijwel elke Android AOSP op basis van ROM in 10 eenvoudige stappen. Terwijl mijn gids zich richt op CyanogenMod, kunt u vrijwel elke AOSP ROM die er zijn compileren, door gewoon het wijzigen van de repository links. Of je kunt gewoon functies kiezen, committen, dingen aanpassen en je eigen gepersonaliseerde ROM maken, misschien ook je ROM online delen?