Google fortsätter sitt arbete med att porta Android till Rust 

Rust-Android

Google arbetar redan med migreringen av olika Android-komponenter till Rust

Sedan flera månader tillbaka, Vi har delat med oss ​​av några av nyheterna här på bloggen höjdpunkter om det stöd och acceptans den har haft Rost i de olika projekten och utvecklingarna, varav många av dem är tungviktare, säg Linux, Windows och till och med Android.

Trots stor acceptans av de stora killarna är bytet till Rust inte lätt, eftersom även för att bli accepterat som ett andra programmeringsspråk i Linux-kärnan, det var tvungen att gå igenom en hel del saker för Linus Torvalds att prova. godkännande.

När det gäller Google har detta inte varit ett undantag och sedan flera månader tillbaka har Google introducerat Rust i många av sina projekt och Android är en av dem och där ett ganska kontrollerat migreringsskede har genomförts, eftersom som en del av dess ansträngningar att stärka säkerheten för plattformens kritiska programvarukomponenter, nu Google meddelade att det har slutfört migreringsarbetet av firmware "Android Virtualization Frameworks skyddade VM (pVM)" till Rust.

Denna firmware Den används för att organisera driften av virtuella maskiner som lanseras av pVM-hypervisorn från Android. Tidigare skrevs firmware i C och implementerades ovanpå U-Boot bootloader, i vars kod sårbarheter orsakade av minnesproblem tidigare hittades.

Hypervisor pVM tar kontroll i ett tidigt skede av uppstart y ger fullständig isolering av virtuell maskinminne från värdmiljön, förhindra åtkomst från värdsystemet till skyddade virtuella maskiner som behandlar känslig data. Den fasta programvaran pvmfm (Protected Virtual Machine Firmware) tar kontroll omedelbart efter uppstart av den virtuella maskinen, verifierar den genererade miljön och beslutar att avbryta uppstarten om integritetsproblem upptäcks eller genererar ett startcertifikat för gästsystemet om förtroendekedjan.

Omskrivningen av Rost gör det enklare och säkrare att följa Googles "tvåregel" för att hålla Android-systemkomponenter säkra. Enligt denna regel får all tillagd kod inte uppfylla mer än två av tre villkor: arbeta med ovaliderad indata, använd ett osäkert programmeringsspråk (C/C++) och kör med förhöjda privilegier. Denna regel innebär att kod för bearbetning av extern data måste reduceras till minsta privilegier (isolerade) eller skrivas på ett säkert programmeringsspråk. Enligt Googles statistik beror ungefär 70 % av alla identifierade farliga sårbarheter i Android på fel när man arbetar med minne.

Bland svårigheterna som uppstår i processen att utveckla komponenter på låg nivå såsom kontroller i språket Rust nämns behovet av att arbeta med pekare i osäkert läge, eftersom Rust skapas med användning av minne som allokerats i språket i åtanke. Rost.

Bland nackdelarna, Det är också värt att lyfta fram behov av förbättrad syntax för att komma åt strukturfält och arrayindex genom enkla pekare utan att skapa referenser, samt begränsningar för att skapa säkra länkar på osäkra operationer som kan orsaka odefinierat beteende och inte kan kontrolleras av kompilatorn.

Det är värt att nämna att den nya firmware har skrivits om i Rust ingår i Android 14 och universella bibliotek som skapas under firmwareutvecklingsprocessen paketeras som paket och porteras till Rust-gemenskapen. Den resulterande kodstorleken jämfört med den tidigare versionen av pVM-firmware som upptog 220 kB, den nya koden upptar 460 kB, men nya funktioner läggs till i den omskrivna versionen, tack vare vilken det var möjligt att bli av med några andra komponenter som användes under uppstart.

Som ett resultat visade sig den totala storleken på alla gamla och nya bagagerumskomponenter vara jämförbara. Det bör noteras att när storlek är viktigare än prestanda, kan resultat som är jämförbara med C-språket uppnås genom att aktivera ytterligare storleksoptimeringslägen i kompilatorn, förkasta onödiga beroenden och inte använda strängformaterare.

Slutligen om du är intresserad av att veta mer om detkan du kontrollera detaljerna i följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.