Linux-kjernen som alle Android-enheter er basert på mottar en stor oppdatering til versjon 5.0. Vi går gjennom endringene som er relevante for mobil.
Selv om vi vanligvis ikke dekker hva som skjer i hovedlinjen i Linux-kjernen, er det viktig for oss å holde styr på hva som skjer med hver ny kjerneutgivelse siden Google gir mandat til en minimum Linux-kjerneversjon krav med hver nye versjon av Android. Den nylige beslutningen om å utvide LTS-utgivelser fra 2 til 6 år vil spille en viktig rolle i å redusere fragmentering av sikkerhetsoppdateringer siden enhetsprodusenter vil måtte gjøre mindre arbeid med å tilbakeportere sikkerhetsoppdateringer. I tillegg integrerer hovedlinjekjernen ofte nye funksjoner som er relevante for mobile enheter.
For eksempel den første Slipp kandidatbygg for den neste LTS-versjonen av kjernen ble nylig utgitt—Linux kernel 5.0 RC1. Det er fortsatt en måned eller to igjen før stallutgivelsen, men vi kan allerede ta en titt på hva som kommer i den kommende utgivelsen. Jeg skal fremheve noen av oppdateringene som er relevante for mobile enheter, men jeg anbefaler at du ser over hele endringsloggen hvis du i det hele tatt er interessert i utvikling av åpen kildekode og Linux-kjernen.
ARM stor. LITTLE EAS-støtte
Energibevisst planlegging har vært en ting på Android-enheter helt siden utgivelsen av den originale Pixel. EAS er en av grunnene til at Google Pixel-enheter generelt er raskere enn konkurrentene. Støtte er allerede aktivert Qualcomms utgivelse av Snapdragon 845-kjernen, så enhver enhet med denne SoC (eller nyere) vil støtte EAS. Selv om Linux ikke har hatt oppstrømsstøtte for Energy Aware Scheduling, før nå. Oppstrømsstøtte skal teoretisk gjøre det enklere for silisium- og enhetsprodusenter å implementere teknologien i enhetene sine. For sluttbrukerne betyr imidlertid ikke oppstrømsstøtte så mye.
Adiantum støtte
Speck er en NSA (National Security Administration) utviklet krypteringsalgoritme som fungerer godt på lavend maskinvare. Google tiltenkt å legge til støtte for speck ettersom det tilbyr datakryptering-støtte for budsjettenheter med SoC-er som mangler maskinvareakselererte krypteringsutvidelser. Adopsjonen av Speck ble mye kritisert på grunn av dens bånd til NSA. Støtte for speck ble fjernet i Linux-kjernen 4.20, og erstatningen, Adiantum, fungerer like bra, om ikke bedre, på lavend maskinvare med EXT4/F2FS-filsystemene.
F2FS og EXT4 rettelser
Flash-vennlig filsystem, eller F2FS, er bredt brukt på Android-enheter. Google Pixel 3 og Pixel 3 XL offisielt støtter F2FS, for eksempel. Tilsynelatende sendte Jaegeuk Kim, den opprinnelige utvikleren av F2FS inn en sammenslåingsforespørsel om mange reparasjoner for filsystemet til Linux-depotet. Disse endringene tar seg av krypteringsproblemer og ledig tidsstyring, sammen med søppelopprettinger. Du kan se alle detaljene i denne pull-forespørselen. Totalt sett forbedrer å fikse F2FS stabiliteten og påliteligheten på Android-smarttelefonene som støtter det, eller vil støtte det.
Tilsvarende har det populære EXT4-filsystemet mottatt litt over et dusin patcher. EXT4 brukes på mange Android-enheter som de nyeste OnePlus-enhetene (inkludert OnePlus 5T, OnePlus 6 og OnePlus 6T).
Ny ARM-maskinvarestøtte
GNU/Linux-distribusjoner er uten tvil de beste operativsystemene å kjøre på ARM-basert maskinvare. De tilbyr pålitelig multi-tasking basert på åpen kildekode-modellen. ARM-prosessorer er spesielt designet for å utføre mange oppgaver samtidig. Det er derfor det er viktig for OS å holde tritt med maskinvaren. Som noen av dere vet, bruker flertallet av Android-smarttelefoner og -nettbrett brikkesett med ARM-arkitekturen. RISC-baserte brikker er perfekte for å kjøre hverdagslige oppgaver (som du gjør på smarttelefonen din. Linux-kjerne 5.0 legger til støtte for mye ny ARM-maskinvare. Her er noen av dem:
- Tegra X2
- Tegra Xavier
- Allwinner F1C100
- Qualcomm QCS404
- Allwinner T3
- NXP Layerscape LX2160
Bortsett fra den universelle kompatibilitetsstøtten for spesifikk ARM-maskinvare, har Linux-kjerne 5.0 også forbedret strømstyring.
BinderFS-støtte
Android bruker Binder til å utveksle argumenter mellom ulike prosesser i systemet. Applikasjoner, aktiviteter og prosesser bruker Binder for å starte og administrere prosesser. Sikkerhet på Android er sterkt basert på UID-tillatelser. Binder sjekker UID-ene levert av applikasjonene ved å bruke toveis IPC-anrop for å bekrefte at den har tilgang til en funksjon den ønsker å bruke. BinderFS er en oppdatert versjon av Binder, men den er mer spesialisert og kompatibel med systemet. Støtte for BinderFS vil ikke endre mye for en sluttbruker, men det vil løse noen implementeringsproblemer for utviklere i det lange løp. Her er relevant forpliktelse.
Energy Model Management Framework
Nok et tillegg er støtte for Energy Model Management Framework. Denne endringen er hovedsakelig for ARM- og kjerneutviklere. Den tilbyr et nytt lag med standardisert energibruksinformasjon fra forskjellige kilder, for eksempel enhetstreet eller driverne. Energiforbruk og rapportering håndteres forskjellig av både maskinvare og programvare. Energy Model Management Framework vil gi en standard API som kan brukes av en annen driver i kjernen for å få tilgang til informasjon om energiforbruk. Dette vil teoretisk sett gjøre det lettere for programvareingeniører og utviklere å få relevant informasjon fra maskinvaren. Du kan lese mer om dette rammeverket i denne forpliktelsen.
Støtte for ARM64-pekerautentisering
Alle relevante maskinvare- og programvareløsninger, spesielt på mobil, trenger sterke sikkerhetsprotokoller. Det er det Linux-kjerne 5.0 tilbyr med støtte for ARM64 Pointer Authentication. Siden de fleste smarttelefoner har brikkesett basert på ARM64, er det avgjørende at angripere ikke kan utnytte pekere, som brukes i Linux-kjernen for å få tilgang til minneadresser. Den nye autentiseringsprotokollen sammenligner pekere med hemmelige nøkler. Pekerautentisering vil forsøke å unngå returorientert programmering (ROP) og andre typer angrep.
Det er mange flere oppdateringer til Linux 5.0-kjernen som vi ikke dekket. De fleste av dem betyr egentlig ikke så mye for Android-enheter, så det er derfor vi måtte velge endringsloggen. Hvis du vil se hele endringsloggen, sjekk ut Phoronix sin dekning.
Takk til XDA Recognized Developer flar2 for hjelp med denne artikkelen.