januari 18, 2022

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

  1. een Android-telefoon met direct beschikbare Kernel-en Apparaatbron, al geworteld en met een aangepast herstel geïnstalleerd.
  2. 64 bit Linux-distributie (We geven de voorkeur aan Ubuntu).
  3. minstens 100 GB vrij op uw harde schijf.
  4. praktische kennis van Linux Terminalcommando ‘ s.
  5. 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.

Bron Ophalen

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?

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.