Linuxkärnan är en extremt viktig del av programvaran i nästan alla Android-enheter. I det här avsnittet beskrivs Linuxkärnans utveckling och utgivningsmodeller (nedan), stabila och LTS-kärnor (inklusive varför alla Android-enheter bör använda stabila utgåvor i stället för att välja ut patchar), kärnkonfiguration och härdning, krav på gränssnitt och modulära kärnor (som infördes i Android O), kärnbuggning och nätverkstestning samt SquashFS.
Linuxkärnans utveckling
Linuxkärnan är det största samarbetsprojektet för mjukvara som någonsin har funnits. Under 2016 bidrog över 4 000 olika utvecklare från över 450 olika företag till projektet och det fanns sex utgåvor som var och en innehöll mellan 12 000 och 16 000 olika ändringar. I slutet av 2016 var Linuxkärnan drygt 56 000 filer, bestående av 22 miljoner rader kod, byggskripter och dokumentation (kärnans version 4.9). (Fullständig statistik över Linuxutvecklingen finns påhttps://kernelnewbies.org/DevelopmentStatistics.)
Alla Linuxkärnan innehåller kod för alla olika chiparkitekturer och maskinvarudrivrutiner som den stöder, men ett enskilt system kör bara en bråkdel av kodbasen. En genomsnittlig bärbar dator använder cirka 2 miljoner rader kärnkod från 5 000 filer för att fungera korrekt, medan Pixel-telefonen använder 3,2 miljoner rader kärnkod från 6 000 filer (på grund av den ökade komplexiteten hos en SoC).
Linuxkärnans utgåvor
Linuxkärnan använder en utgåvemodell som skiljer sig väsentligt från vanliga AOSP-utgåvor. I samband med att 2.6-kärnan släpptes i december 2003 övergick kärnutvecklarna från den tidigare modellen med en separat gren för utveckling och en gren för stabila kärnor till en modell med enbart stabila grenar. I denna modell kom en ny utgåva varannan till var tredje månad, och den utgåvan förklarades stabil och rekommenderades för alla användare att köra. Denna förändring av utvecklingsmodellen berodde på den mycket långa utgivningscykeln före 2.6-kärnan (nästan tre år) och på att det var svårt att upprätthålla två olika grenar av kodbasen samtidigt.
Numreringen av kärnutgåvorna började med 2.6.x, där x var ett ökande nummer som ändrades för varje utgåva (numrets värde har ingen betydelse, annat än att det är nyare än den föregående kärnutgåvan). Kärnversionen har sedan dess flyttats till 4.x, vilket motsvarar två större versionsändringar.Dessa versionsnummer väljs av de ansvariga endast för att undvika förvirring bland användarna som orsakas av högre mindre versionsnummer.