På Android er intern lagring delt inn i partisjoner, det vil si logiske blokker som inneholder programvarebilder (IMG) med svært spesifikke funksjoner. Det handler ikke bare om «plass til bildene dine»: : en betydelig del er reservert for å starte opp systemet og få maskinvaren til å fungere som den skal.
Den moderne Android-arkitekturen (som Treble) skiller den generiske systemkoden til den produsentavhengige koden i tre store grupper: systempartisjoner (f.eks. system, boot, init_boot), leverandørpartisjoner (som for eksempel vendor, vendor_boot, odm) og ikke-oppdaterbare partisjoner (userdata, cache, metadata). Denne separasjonen koordineres gjennom et stabilt grensesnitt kalt VINTF som lar deg oppdatere systemet uten å berøre den maskinvarespesifikke koden.
Hva er egentlig oppstart, system og leverandør til for?
De tre hovedpersonene i denne veiledningen er hjertet i systemet: definer hvordan Android starter opp, hvor rammeverket befinner seg y hvor maskinvarebinærfilene er lagret. Forstå dens funksjoner forhindrer feil ved flashing og gir deg kriterier ved oppdatering.
Oppstartspartisjon
Skillevegg boot inneholder oppstartsavbildningen med kjernenI Android 11 GKI (generisk kjernebilde), som standardiserer kjernen og fortrenger vendor_boot Leverandørspesifikk informasjon og RAM-disk. I Android 12 kan du fortsatt finne den generiske RAM-disken. boot, men siden Android 13 flyttes den generiske RAM-disken til init_bootDenne utviklingen gjør kjernen mer generisk og innkapsler maskinvareavhengig kode der det er nødvendig.
Viktig for blinking: hvis du sletter boot uten å blinke et gyldig bilde, enheten vil ikke starte oppOg hvis du bruker GKI, husk at boot og system_dlkm må oppdateres sammen på grunn av de trange kvartalene.
Systempartisjon
system huser selve operativsystemetAndroid-rammeverk, systemapper og vanlige biblioteker. Siden Android 10-11 er det supplert av system_ext (proprietære ressurser og moduler som utvider det vanlige bildet) og med product (produktspesifikke moduler). Det finnes et sett med koblingsregler: VNDK (Vendor Native Development Kit), installert på system, som de kan lenke til product y vendor uten å berøre andre biblioteker system. Denne separasjonen opprettholder HELP stabil og tillater i noen tilfeller oppdatering product separat hvis alle grensesnittene er stabile.
Vær obs på «viskesystemet»: slett system fjerner operativsystemet. Telefonen kan starte opp i oppstartslasteren eller gjenopprettingsprogrammet, men vil ikke starte Android helt til du flasher en gyldig ROM.
Leverandørpartisjon
vendor inneholder binærfiler, HAL-er og maskinvarespesifikke biblioteker som ikke er generiske nok for AOSP: SoC-drivere, daemoner, leverandørkjernemoduler (hvis de ikke er outsourcet til vendor_dlkm) og brettrelaterte tilpasninger. Med Treble, System- og leverandørutveksling kun gjennom VINTF, noe som reduserer kompatibilitetsbrudd i systemoppdateringer.
Nøkkelutvidelser: vendor_dlkm tillater oppdater leverandørens kjernemoduler uten å berøre partisjonen vendor. For hans del, odm y odm_dlkm Lagre tilpasninger fra originale designprodusenter (ODM) for å støtte flere SKU-er med ett enkelt bilde. vendor.
Andre relevante partisjoner du vil se på Android
I tillegg til hovedpersonene finnes det en god håndfull partisjoner som fullfører puslespillet.Å kjenne dem vil avklare meldinger fra gjenoppretting, OTA og blinkende verktøy.
- Av systemet:
init_boot(generisk ramdisk siden Android 13),system_ext(strekker segsystem),system_dlkm(GKI-moduler),product(produktmoduler),pvmfw(fastvare for beskyttet virtuell maskin),generic_bootloader(generisk lader). - Fra leverandøren:
vendor_boot(leverandørens oppstartskode og leverandørens ramdisker),recovery(gjenopprettingsbilde, som i A/B kan gå som ramdisk iboot/init_boot),misc(brukes av restitusjon, den er vanligvis veldig liten),vbmeta(Metadata for bekreftet oppstart),vendor,vendor_dlkm,odm,odm_dlkm,radio(radioens firmware hvis aktuelt). - Kan ikke oppgraderes:
cache(midlertidig; i A/B er det noen ganger unødvendig),userdata(apper og brukerdata),metadata(metadatakrypteringsnøkkel hvis brukt; slettes ved tilbakestilling til fabrikkinnstillinger).
Enheter med sømløse oppdateringer (A/B)De har to spor (A og B) for boot, system, vendor y radio, noe som muliggjør sømløs OTA. Bilder legges til det inaktive sporet og slås på ved omstart.
Oppdater regler og avhengigheter mellom partisjoner
Oppdatering med konsistente sett unngår kompatibilitetsbruddDet anbefales å oppdatere alle systempartisjoner samtidig og alle leverandørpartisjoner separat, slik at grensesnittene mellom avbildningene forblir stabile.
Uunngåelige avhengigheter: oppdaterer alltid sammen boot y system_dlkm, så vel som init_boot, system, system_ext y product. Hvis alle grensesnitt mellom product og resten av systemet de har Stabil ABI, product kan oppdateres uavhengig.
Verifisert oppstart og vbmeta: partisjonen vbmeta inkluderer bekreftet oppstartsinformasjon som sikrer integriteten til alle signerte partisjonerHvis noe ikke passer, kan det hende at enheten nekter å laste inn bildet.
Dynamiske partisjoner: Mer fleksibilitet i OTA
Siden Android 11 støtter mange enheter dynamiske partisjoner., et system for partisjonering av brukerplass som lar partisjoner opprettes, endres i størrelse eller ødelegges under en OTA uten å måtte flashe hele tabellen på nytt. Dette gjør oppdateringer raskere og forbedrer plassutnyttelsen.
Praktisk fordel: : produsenten kan justere størrelsene på system/product/vendor etter hvert som programvaren utvikler seg, uten destruktive endringer i partisjoneringsskjemaet.