De Linux-kernel waar alle Android-apparaten op zijn gebaseerd, krijgt een grote update naar versie 5.0. We overlopen de veranderingen die relevant zijn voor mobiel.
Hoewel we doorgaans niet ingaan op wat er gebeurt in het hoofddomein van de Linux-kernel, is het belangrijk voor ons om bij te houden wat er gebeurt bij elke nieuwe kernelrelease, aangezien Google een minimale Linux-kernelversie vereiste bij elke nieuwe release van Android. Het recente besluit om LTS-releases verlengen van 2 naar 6 jaar zullen een belangrijke rol spelen bij het terugdringen van de fragmentatie van beveiligingspatches, omdat fabrikanten van apparaten minder werk zullen hoeven te doen bij het backporteren van beveiligingspatches. Bovendien integreert de hoofdkernel vaak nieuwe functies die relevant zijn voor mobiele apparaten.
Bijvoorbeeld de eerste Release Candidate-build want de volgende LTS-versie van de kernel is onlangs uitgebracht: Linux-kernel 5.0 RC1. Het duurt nog een maand of twee voordat de stabiele release plaatsvindt, maar we kunnen al een voorproefje nemen van wat er in de komende release gaat gebeuren. Ik zal enkele van de updates belichten die relevant zijn voor mobiele apparaten, maar ik raad je aan de volledige changelog te bekijken als je überhaupt geïnteresseerd bent in open source-ontwikkeling en de Linux-kernel.
ARM groot. LITTLE EAS-ondersteuning
Energiebewust plannen is een ding op Android-apparaten sinds de release van de originele Pixel. EAS is een van de redenen waarom Google Pixel-apparaten over het algemeen sneller zijn dan hun concurrenten. Ondersteuning is al ingeschakeld bij de release van Qualcomm van de Snapdragon 845-kernel, dus elk apparaat met deze SoC (of nieuwer) ondersteunt EAS. Hoewel Linux tot nu toe geen upstream-ondersteuning van Energy Aware Scheduling heeft gehad. Upstream-ondersteuning zou het theoretisch gemakkelijker moeten maken voor fabrikanten van silicium en apparaten om de technologie in hun apparaten te implementeren. Voor de eindgebruikers betekent upstream-ondersteuning echter niet echt veel.
Adiantum-ondersteuning
Speck is een door de NSA (National Security Administration) ontwikkeld versleutelingsalgoritme dat goed werkt op low-end hardware. Googlen bedoeld om ondersteuning voor speck toe te voegen, omdat het ondersteuning biedt voor gegevensversleuteling voor budgetapparaten met SoC's zonder hardwareversnelde versleutelingsextensies. De adoptie van Speck kreeg veel kritiek vanwege de banden met de NSA. Ondersteuning voor speck is verwijderd in Linux-kernel 4.20, en de vervanger ervan, Adiantum, presteert net zo goed, zo niet beter, op low-end hardware met de EXT4/F2FS-bestandssystemen.
F2FS- en EXT4-oplossingen
Flash-vriendelijk bestandssysteem, of F2FS, is veel gebruikt op Android-apparaten. De Google Pixel 3 en Pixel 3 XL officieel ondersteuning voor F2FS, Bijvoorbeeld. Blijkbaar heeft Jaegeuk Kim, de oorspronkelijke ontwikkelaar van F2FS, een samenvoegverzoek voor veel reparaties voor het bestandssysteem naar de Linux-repository gestuurd. Deze wijzigingen zorgen voor problemen met de versleuteling en het beheer van de inactieve tijd, naast oplossingen voor het ophalen van afval. Je kunt alle details zien in dit pull-verzoek. Over het geheel genomen verbetert het repareren van F2FS de stabiliteit en betrouwbaarheid op de Android-smartphones die dit ondersteunen of zullen ondersteunen.
Op dezelfde manier heeft het populaire EXT4-bestandssysteem iets meer dan een dozijn patches ontvangen. EXT4 wordt gebruikt op veel Android-apparaten, zoals de nieuwste OnePlus-apparaten (inclusief de OnePlus 5T, OnePlus 6 en OnePlus 6T).
Nieuwe ARM-hardwareondersteuning
GNU/Linux-distributies zijn misschien wel de beste besturingssystemen om op ARM-gebaseerde hardware te draaien. Ze bieden betrouwbare multitasking op basis van het open source-model. ARM-processors zijn speciaal ontworpen om veel taken tegelijk uit te voeren. Daarom is het belangrijk dat het besturingssysteem gelijke tred houdt met de hardware. Zoals sommigen van jullie weten, gebruiken de meeste Android-smartphones en -tablets chipsets met de ARM-architectuur. Op RISC gebaseerde chips zijn perfect voor het uitvoeren van alledaagse taken (die u op uw smartphone doet). Linux kernel 5.0 voegt ondersteuning toe voor veel nieuwe ARM-hardware. Hier zijn er een aantal:
- Tegra X2
- Tegra Xavier
- Allwinner F1C100
- QualcommQCS404
- Allwinner T3
- NXP Layerscape LX2160
Naast de universele compatibiliteitsondersteuning voor specifieke ARM-hardware, heeft Linux kernel 5.0 ook verbeterd energiebeheer.
BinderFS-ondersteuning
Android gebruikt Binder om argumenten tussen verschillende processen in het systeem uit te wisselen. Applicaties, activiteiten en processen gebruiken Binder voor het starten en beheren van processen. Beveiliging op Android is sterk gebaseerd op UID-machtigingen. Binder controleert de UID's die door de applicaties worden geleverd met behulp van tweerichtings-IPC-oproepen om te bevestigen dat het toegang heeft tot een functie die het wil gebruiken. BinderFS is een bijgewerkte versie van Binder, maar is meer gespecialiseerd en compatibel met het systeem. Ondersteuning voor BinderFS zal voor een eindgebruiker niet veel veranderen, maar het zal op de lange termijn wel enkele implementatieproblemen voor ontwikkelaars oplossen. Hier is de relevante toezegging.
Kader voor energiemodelbeheer
Nog een andere toevoeging is ondersteuning voor het Energy Model Management Framework. Deze wijziging is voornamelijk bedoeld voor ARM- en kernelontwikkelaars. Het biedt een nieuwe laag gestandaardiseerde informatie over energieverbruik uit verschillende bronnen, zoals de apparaatstructuur of de stuurprogramma's. Het energieverbruik en de rapportage worden zowel door de hardware als door de software verschillend afgehandeld. Energy Model Management Framework zal een standaard API bieden die door een andere driver in de kernel kan worden gebruikt om toegang te krijgen tot informatie over energieverbruik. Dit zal het in theorie gemakkelijker maken voor software-ingenieurs en ontwikkelaars om de relevante informatie uit de hardware te halen. U kunt meer lezen over dit raamwerk in deze verbintenis.
Ondersteuning voor ARM64 Pointer-authenticatie
Alle relevante hardware- en softwareoplossingen, vooral op mobiele apparaten, hebben sterke beveiligingsprotocollen nodig. Dat is wat Linux kernel 5.0 biedt met de ondersteuning van ARM64 Pointer Authenticatie. Omdat de meeste smartphones chipsets hebben die zijn gebaseerd op ARM64, is het van cruciaal belang dat aanvallers geen misbruik kunnen maken van pointers, die in de Linux-kernel worden gebruikt om toegang te krijgen tot geheugenadressen. Het nieuwe authenticatieprotocol vergelijkt pointers met geheime sleutels. Pointer Authenticatie zal proberen Return Oriented Programming (ROP) en andere soorten aanvallen te voorkomen.
Er zijn nog veel meer updates voor de Linux 5.0-kernel die we niet hebben besproken. De meeste betekenen niet echt veel voor Android-apparaten, dus daarom moesten we de changelog kiezen. Als je de volledige 'changelog' wilt zien, ga dan naar van Phoronix Dekking.
Met dank aan XDA erkende ontwikkelaar flauw2 voor hulp bij dit artikel.