Att bygga din egen version av Android kan verka som en uppgift reserverad för mycket erfarna utvecklare, men sanningen är att med rätt förberedelse och lite tålamod kan vem som helst med grundläggande kunskaper komma igång med att skapa en anpassad ROM. Oavsett om du försöker finjustera systemfunktioner, förlänga en enhets livslängd eller helt enkelt för den tekniska utmaningen, är det en mycket givande och lärorik upplevelse att bygga Android.
I den här detaljerade guiden kommer vi att förklara hela processen från grunden.från hur du förbereder din utvecklingsmiljö till stegen för att kompilera operativsystemet på en specifik enhet. Vi kommer att använda de bästa tillgängliga källorna för detta ämne: officiell dokumentation från Android Open Source Project (AOSP), personliga erfarenheter publicerade på GitHub av expertanvändare och verktyg som gör processen enklare.
Vad behöver du innan du börjar bygga din egen version av Android?
Innan du börjar är det nödvändigt att vara tydlig med att kompilering av Android Det är inte något som kan göras på fem minuter. Det kräver god förberedelse och några viktiga verktyg. Naturligtvis, om du är organiserad och följer stegen korrekt, kommer resultatet att vara värt det.
- En dator med 64-bitars Linux, helst med minst 16 GB RAM och gott om ledigt diskutrymme (mer än 100 GB för att vara på den säkra sidan).
- Java (JDK), i den version som rekommenderas för den Android-version du ska kompilera. Äldre versioner som Android 8.0 kräver en specifik version av Java för att fungera korrekt.
- Verktyg som Git, ccache och Python kommer också att vara nödvändigt under processens gång.
- Android SDK och plattformsverktyg, såsom ADB (Android Debug Bridge), som du kan installera från din distributions arkiv eller ladda ner från den officiella webbplatsen.
Initial miljökonfiguration när du bygger din Android-version

När du har ditt system klart är det första steget att konfigurera din byggmiljö. För att göra detta föreslår AOSP att man använder ett skript som heter envsetup.sh. Det här skriptet importerar flera användbara kommandon och förbereder miljön för att arbeta med Android-kod.
Kör följande kommando från rotkatalogen för källkoden du laddade ner:
source build/envsetup.sh
Detta steg måste göras på varje ny terminal du öppnar., eftersom skriptet konfigurerar kritiska variabler som kommer att vara nödvändiga under hela processen.
Välj byggmålet
Innan du kompilerar något måste du berätta för systemet vilken enhet du kompilerar för. Detta kallas för att välja ”mål”. För att göra detta, använd kommandot lunch, följt av en sträng som anger produkten, konfigurationen och byggvarianten.
Exempel på typisk användning av lunch:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Detta väljer en emulerad enhet med x86_64-arkitektur, idealisk för initial testning.
Valfritt kan du använda:
echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"
Detta visar vilka inställningar du för närvarande har valt för att säkerställa att de är korrekta.
Kompileringsvarianter: user, userdebug och eng
Den del av lunch-kommandot som definierar varianten kan ha tre värden:
- användare: Produktionsorienterad variant, utan root-åtkomst eller felsökningsverktyg.
- användarfelsökning: Liknar den föregående men med felsökningsverktyg aktiverade. Idealisk för utvecklare.
- eng: Variant för intern utveckling. Snabbare att kompilera och mindre optimerad.
Ladda ner källkod
Androids källkod är enorm. Den laddas ner med ett verktyg som heter repo. Till exempel, för att ladda ner LineageOS 17.1-koden skulle du köra:
repo init -u https://github.com/LineageOS/android.git -b lineage-17.1
repo sync
Det här steget kan ta timmar, beroende på din internetanslutning. Den kan också krascha ibland, så om den gör det är det bara att köra om den. repo sync tills det är över.
Installera proprietära blobbar
För att kompilera en ROM för en specifik enhet behöver du proprietära blobbar om tillverkaren inte släpper all kod. Dessa blobbar är binärfiler som innehåller maskinvaruspecifika funktioner.
En populär källa till blobbar är databasen för Mupparna på GitHub. Du kan ladda ner dem manuellt med:
mkdir -p vendor/motorola
cd vendor
git clone https://github.com/TheMuppets/proprietary_vendor_motorola motorola
Initiera miljön för enheten
När blobarna har laddats ner, kör igen:
breakfast evert
var vränga skulle vara enhetens interna namn (i det här fallet Moto G6 Plus).
Optimera processen med ccache
För att minska kompileringstiden i framtiden kan du aktivera ccache:
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
ccache -M 50G
ccache -o compression=true
Kompilera Android
Med allt klart är det dags att kompilera. Kör kommandot:
brunch evert
Detta startar kompileringsprocessen. Det kan ta flera timmar beroende på din hårdvara.. Det rekommenderas att ha minst 16 GB RAM.
Utdata från kompileringen finns vanligtvis i:
out/target/product/evert/
Där ser du .zip-filen med ROM-skivan redo att installeras på din enhet.
Valfria verktyg: ScriBt
Ett intressant alternativ för dem som vill underlätta processen är att använda ScriBt, ett verktyg som automatiserar delar av utveckling av anpassade ROM.
ScriBt tillåter:
- Skapa och synkronisera arkiv
- Installera automatiskt nödvändiga beroenden som Java och ADB
- Skapa en mer guidad arbetsmiljö för nya utvecklare
ScriBt kräver dock vissa förkunskaper och källkoden för enheten. Men om du uppfyller kraven, kan spara dig många timmar.
Sammanställning för trådroutrar på Android
Ett annat specifikt fall som tas upp i den officiella dokumentationen är att bygga en trådbaserad border router. För att göra detta måste du konfigurera din egen HAL (Hardware Abstraction Layer) och ha tillgång till källkoden för Thread-nätverkets chip.
På enheter som Cuttlefish (Android-emulator) kan du redan testa dessa funktioner med simuleringar och verktyg som ot-cli-ftd y ot-ctl, vilket gör att du kan styra radion virtuellt.
Den beskriver också hur man anpassar en APEX-modul för att fungera med riktiga Thread-radioapparater med hjälp av UART, SPI eller sockets. Den här delen är mer avancerad och kräver att XML-filer, behörigheter och systeminitialiseringsskript modifieras.
Testning och certifiering
När du har en kompilerad ROM kan du verifiera dess funktionalitet med anpassade tester och officiella kompatibilitetstester:
- VTS: Kontrollera HAL:s funktion.
- CTS: Kontrollerar att API:erna respekterar Android-systemregler.
- integration: Funktionstestning av hela systemet.
Du kan också använda appen TrådnätverkDemoApp att utföra visuella tester i en grafisk miljö.
Kompilera din egen Android-version Det är en utmanande men mycket berikande process. Från att konfigurera din miljö, välja din målhårdvara och ladda ner din källkod, till att anpassa specifika konfigurationer eller använda verktyg som ScriBt eller ccache, är varje steg viktigt.
Även om det kräver tid, disciplin och att man följer många tekniska steg, kan du med god vägledning uppnå överraskande resultat även om du inte är expert. Och det bästa: du får en ROM som är skräddarsydd exakt efter din smak och dina behov. Dela den här guiden så att fler användare vet hur man kompilerar sin egen version av Android..
