ABONAMENTE VIDEO REDACȚIA
RO
EN
×
▼ LISTĂ EDIȚII ▼
Numărul 113
Abonament PDF

Android Automotive OS. Din telefoanele mobile în mașinile noastre

Oszkar Nemeth
Digital Tech Developer Specialist @ Accenture
PROGRAMARE

În acest articol, pe lângă scurta prezentare a sistemului de operare Android Automotive, aș vrea să prezint cititorilor cadrul istoric care a dus la apariția și dezvoltarea acestui tip de sisteme, cât și direcția în care se îndreaptă ele. Aș vrea să fac acest lucru din perspectiva unui inginer de SW embedded care are oportunitatea să lucreze în această ramură nouă a industriei Automotive.

O mica istorie a sistemelor IVI

Sistemele multimedia au fost prezente în mașinile noastre încă din anii 1930, când Motorola a introdus primul aparat de radio AM incorporabil în autovehicule. Evoluția a continuat în deceniile următoare prin introducerea platanelor și a casetofoanelor între anii 50 și80, urmând ca în 1981, Toyota să instaleze primul sistem de navigație numit NAVICOM. Anii ’90 au adus cu ei CD playerele pentru ca în anii 2000 să apară sistemele propriu-zise IVI (In-Vehicle Infotainment) cu ecrane tactile, care, pe lângă control multimedia gestionau și funcții de navigație și de aer condiționat. La finalul deceniului au apărut opțiunile de conectivitate prin Bluetooth si USB iar Ford a lansat primul sistem prin comanda vocală. După 2010, producătorii au început să integreze o diversitate de aplicații, conectivitate prin rețele WiFi, iar numărul și dimensiunea ecranelor, respectiv calitatea imaginii au cunoscut o creștere semnificativă. Mașinile lansate în ultimii ani adeseori incorporează ecrane de dimensiuni mari (toate modele Tesla), dispozitive multimedia destinate pasagerilor (Mercedes-Benz S Klasse, Porsche Taycan), display-uri panoramice (diverse modele Mercedes Benz, BMW iX) sau chiar oglinzi digitale (Honda E).

Cine s-ar fi gândit acum câțiva ani că sistemul de operare Android, lansat în anul 2007 și conceput pentru dispozitive cu ecrane tactile, precum telefoane și tablete, va ajunge relativ rapid în alte dispozitive precum televizoare, ceasuri, console de jocuri sau aparate de fotografiat? După circa zece ani de la lansare, Android pornește pentru cucerirea industriei Automotive, ajungând să controleze sistemele IVI.

Android Automotive a fost dezvoltat de către Google și Intel în colaborare cu Volvo și Audi, ajungând în 2020 în modelul Polestar 2, brandul de mașini electrice de performanță, parte a Volvo. Producătorul Suedez nu s-a oprit aici, urmând anul acesta lansarea modelului XC40 și anunțarea modelelor XC60 și V90 care vor fi puse în circulație în 2022. Tot anul viitor va fi scos pe piață și Hummer EV al producătorului american General Motors. Mulți alți producători renumiți, printre care Ford, Stellantis sau Renault-Nissan au confirmat lansări de mașini, încorporând sisteme IVI bazate pe Android Automotive.

Sistemul infotainment în Polestar 2 bazat pe Android Automotive

Chiar în momentul scrierii acestui articol, Honda a anunțat trecerea la sistemul Android Automotive OS pentru modelele sale noi care urmează să fie lansate în a doua parte a anului viitor. O descoperire și mai interesantă este faptul că nu este prima oară când producătorul Japonez integrează sisteme de operare Android în mașinile sale. Chiar se pot considera pionierii acestei direcții, lansând în 2014 modele echipate cu sistemul de infotainment numit Honda Connect, în perioada când Android Auto a fost proaspăt anunțat de către Open Automotive Alliance (formată din producătorii de mașini precum Audi, General Motors, Hyundai, Honda, producătorul de microprocesoare NVIDIA și, bineînțeles, Google). Honda Connect se baza pe versiune mai veche de Android, Ice Cream Sandwich 4.0.4, lansat cu doi ani în urmă, deși creierul sistemului IVI era cel mai nou cip NVIDIA Tegra din acea vreme.

Sistemul infotainment Honda Connect bazat pe Android Ice Cream Sandwich

Producătorul oferea și suita proprie de aplicații, precum cea de navigație în colaborare cu Garmin, care, din păcate, au compatibilitate deficitară cu edițiile noi de Android. Pe lângă opțiuni diverse de conectivitate (USB, HDMI, MirrorLink, Bluetooth) și posibilități de personalizare (teme și fundaluri la alegere), Honda a ținut să afirme că sistemul lor este totuși, specializat pentru Automotive.

Sistemul infotainment în GMC Hummer EV bazat pe Android Automotive

Android Automotive OS vs. Android Auto

Pentru a preveni o posibilă confuzie în rândul cititorilor, este oportun să clarificăm de la început diferența între sistemele IVI pe Android Automotive OS (AAOS) și bine-cunoscuta funcționalitate Android Auto, competitorul Apple CarPlay. Android Automotive este un sistem de operare de sine stătător, varianta sistemului Android de la Google, care rulează pe sistemul de infotainment al unei mașini. În contrast cu acesta, Android Auto este o aplicație de telefoane mobile, menit să transpună anumite funcționalități și aplicații ale telefoanelor Android pe ecranul principal de pe bordul mașinii. Pe lângă funcționalitățile multimedia sau navigație, comune în ambele sisteme, Android Automotive extinde controlul și la unele funcționalități specifice mașinilor, cum ar fi controlul aerului condiționat sau diferite setări ale subsistemelor.

Sistemul infotainment în BMW iX bazat pe Android Auto

O excepție face sistemul BMW iX, modelul electric al producătorului german, care a integrat funcția de navigare prin Google Maps în instrument cluster și desfășoară funcții precum încărcare a acumulatorilor, respectiv parcare asistată.

Android Automotive OS și Android Open Source Project

Și totuși ce este Android Automotive? În esența sa este Android: nu reprezintă o ramificație a acestuia și nici nu este dezvoltat în paralel, are același codebase și este stocat în același repository ca varianta pentru telefoane mobile, tablete sau televizoare. Acest proiect imens se numește Android Open Source Project (AOSP) și, cum îi spune și numele, este accesibil tuturor dezvoltatorilor care doresc să contribuie.

Codul sursă și uneltele de build se pot descărca din repository-urile Google. Cei care doresc doar să consulte codul sursă o pot face pe mai multe site-uri precum Android Code Search. Codul în sine necesită un spațiu de stocare de circa 250GB și încă 150GB pentru build. În cazul în care dorim să lucrăm la mai multe ediții sau ramuri, cerințele de stocare se multiplică. Nici celelalte cerințe de hardware nu sunt mai blânde: cantitatea minimă de RAM fiind 16GB, recomandat 64GB, procesor de generație nouă cu cât mai multe core-uri și spațiu de stocare peste 1TB, preferabil un SSD NVMe pentru viteze de scriere și citire ridicate. Ca referință, pe un sistem cu 6 core-uri și cu 32GB RAM cu NVMe SSD timpul de build este între 3-4 ore. Din fericire, buildul se face incremental, iar în cazul unei schimbări mici, acesta se poate executa în câteva zeci de minute.

Folosirea unui calculator specializat cu resurse adecvate este absolut necesară. Față de dezvoltarea aplicațiilor pentru Android, la platforma AOSP se poate lucra exclusiv sub sistemul de operare Linux, recomandat de Google este Ubuntu 20.04. Folosirea mașinilor virtuale este momentan exclus, nu numai pentru limitarea performanțelor resurselor hardware, dar și din cauza că virtualizarea neadecvată poate crea probleme în diferite faze ale dezvoltării. Un exemplu bun este rularea emulatorului Android, care fără setări avansate, nici nu pornește pe o mașină virtuală. Chiar dacă pornește, performanța în ceea ce privește user experience va fi mult sub limita acceptabilă. La fel se întâmplă și la rularea emulatorului sub Windows 10. Îmbunătățiri au fost făcute pentru noile calculatoare Apple MacBook cu procesoare M1 bazate pe ARM, Android OS însăși fiind optimizat pentru procesoare ARM ca și cele de la Qualcomm.

Alte unelte de software folosite din suita Google sunt Android Studio, Android SDK din care face parte și Emulatorul și Android Debug Bridge. SDK-ul trebuie să fie în concordanță cu versiunea de Android la care lucrăm.

Android Automotive are însă o problemă mare de rezolvat: trebuie să ofere un nivel de abstractizare consistentă a propriilor interfețe cu o varietate mare de topologii de conexiuni specifice autoturismelor. Protocoalele de comunicare prin care unitățile de control sunt interconectate între ele, respectiv cu sistemul de infotainment variază mult între producători, dar și între modelele diferite al aceluiași brand. Câteva exemple care trebuie menționate sunt: bine-cunoscutul CAN (Controller Are Network), MOST (Media Oriented Systems Transport) și protocoalele bazate pe Ethernet și TCP/IP, precum BroadR-Reach sau SOME/IP. Pentru a oferi suport funcționalităților sistemelor de infotainment (IVI) Android Automotive OS extinde sistemul de baza Android cu funcții și tehnologii specifice mașinilor.

Ca soluție, Google a introdus în arhitectura Android următoarele componente specifice Automotive:

Implementarea sistemelor IVI pe platforma de Android aduce beneficii atât producătorilor / dezvoltatorilor, cât și utilizatorilor finali:

Sub numele de Google Automotive Services (GAS) Google oferă o colecție de aplicații și servicii care pot fi licențiate și integrate de către producătorii de mașini în sistemele lor IVI.

Securitatea și siguranța sistemului Android

Aplicațiile multimedia sau de climatizare au un impact redus asupra securității și siguranței vehiculelor. Dar rămân cele de conecti­vitate sau diagnoză care pot avea implicare în securitatea datelor, sau sistemele de asistență rutieră care pot influența greșit conducatorul. Un simplu parametru precum indicatorul de viteză al mașinii, poate crea probleme dacă nu este gestionat corespunzător. Și pentru că în sistemele electronice de Automotive siguranța și securitatea sunt cruciale, iar sistemul de operare Android nu este consacrat Automotive, trebuie să folosim mecanisme software și de proces cu care limităm aceste riscuri. Un astfel de mecanism este rularea sistemului Android într-un mediu izolat pe unitatea de control IVI, într-un așa zis container. Prin interfețele acestui container majoritatea semnalelor sunt puse la dispoziția Android-ului în mod read-only și doar anumite semnale de control sunt accesibile în modul read-write.

Pentru a spori însăși securitatea sistemului de operare Android, kernelul de Linux, care stă la baza sistemului, folosește arhitectura securizată pe nume SELinux (Security-Enhanced Linux), care permite administratorilor un control mai bun la resursele sistemului. Se folosesc reguli și politici de securitate care stabilesc dreptul de acces al proceselor și aplicațiilor la diverse resurse precum un fișier sau interfețele. Prin protecția SELinux doar componentele de sistem pot avea acces la proprietățile autovehiculului, iar majoritatea aplicațiilor trebuie să treacă prin mecanisme de control implementate în Car Service. De exemplu, doar aplicațiile de sistem pot avea control asupra sistemului de aer condiționat.

Contribuția echipei Accenture la Android Automotive

Chiar dacă Google și platforma Android Automotive OS facilitează dezvoltarea sistemelor IV, cu tot mai multe companii Tier 1 și start-upuri oferind soluții integrate, un program de dezvoltare care re-imaginează și construiește sistemul de infotainment din temelii are o sarcină imensă, implicând colaborarea pe plan global a numeroaselor echipe, din domenii diverse de Automotive: Embedded SW Engineering, precum și non-Automotive: Android Platform and Application Development.

Este inevitabil ca după Polestar, Volvo și General Motors și ceilalți producători importanți de mașini din Europa și Asia să se alăture trendului și să revoluționeze sistemele lor clasice de IVI, reconstruindu-le pe baze de Android Automotive OS. La o astfel de inițiativă participă și echipa Accenture, implicând colegi din România respectiv Germania, care colaborează cu o multitudine de echipe internaționale, cu scopul de a construi un întreg ecosistem, platformă și aplicații pentru unul dintre producătorii majori Automotive OEM.

Rolul echipei noastre este dezvoltarea, personalizarea și menținerea platformei de baza AOSP după conceptul și cerințele clientului, lucrând continuu, de exemplu la extinderea proprietăților vehiculului în partea de VHAL. Pe lângă buna funcționare a sistemului de operare, mai oferim suport și unelte echipelor de dezvoltare, fie ele din partea OEM-ului sau Tier 1 sau 3rd Parties. Una dintre principalele unelte pe care livrăm proiectului este Emulatorul de Android. În momentul actual, înainte ca produsul final să fie anunțat public, emulatorul se folosește doar intern, urmând ca în viitor să fie puse la dispoziția dezvoltatorilor de aplicații 3rd party, la fel cum au procedat cei de la Volvo - Polestar publicând emulatoare pentru modelele Polestar 2 si XC 40 Recharge. Alte unelte însă, precum interfețe grafice de calibrare sau diagnostic, nu vor fi publice și vor rămâne disponibile doar inginerilor de dezvoltare, neregăsindu-se în produsul final.

Android Automotive OS oferă dezvoltatorilor o colecție generică de interfețe, semnale, date de la senzori și proprietăți VHAL, dar pentru că mașinile diferă mult între ele de la un producător la altul, precum și între modelele aceluiași producător, este nevoie de adaptarea și interfațarea corespunzătoare a semnalelor înainte să fie puse la dispoziția aplicațiilor. Această sarcină revine în cea mai mare parte tot echipei noastre de dezvoltare și trebuie îndeplinită conform principiilor „Least Privilege” (PoLP), întrucât din motive de securitate nu toate datele trebuie să fie împărțite între aplicații.

Un alt aspect important la care lucrează echipa noastră este performanța sistemului de operare atât pe dispozitivul fizic de control (ECU-ul de infotainment), cât și în emulatorul care trebuie să ruleze pe diverse calculatoare, servere și sisteme de operare în mediu virtual sau nativ. Iar performanța sistemului de bază va afecta atât performanța aplicațiilor, cât și experiența finala a utilizatorului.

Modificările aduse de noi și celelalte echipe de dezvoltare sunt făcute într-o zonă destinată customizărilor unde vendorii își integrează codul. Însă sunt situații în care este necesară modificarea codului din platforma de bază, de exemplu pentru a înlătura un defect (bug). Atunci trebuie să intrăm în contact cu înșiși dezvoltatorii de la Google, prin intermediul unui Purity Ticket pentru ca acea modificare importantă să ajungă în code-base, trecând, bineînțeles, prin procedura meticuloasă de aprobare a Google. În anumite situații, când nu este suficient timp pentru a trece prin procedura Google, se apelează la soluții de work-around, care au dezavantajul că vor trebui menținute și reaplicate de la o versiune de Android la alta, până când devin acceptate și integrate în AOSP.

Ce ne rezervă viitorul, pe pragul revoluției industrie Automotive?

Participarea la un astfel de program de dezvoltare prezintă provocări din punctul de vedere al unui inginer de sisteme Embedded clasice, pentru că un astfel de sistem IVI diferă foarte mult de sistemele consacrate bazate pe unitățile electronice de control, cu arhitecturi și procesoare specifice. Sistemele noi sunt mult mai performante, iar arhitectura lor este mult mai aproape de calculatoarele și telefoanele noastre. Asta nu înseamnă însă că sistemele clasice dispar, ele rămân necesare, deoarece oferă siguranță și securitate prin construcția lor robustă și operarea în timp real.

Dar pentru o experiență multimedia îmbunătățită și un user experience imersiv este necesară adaptarea soluțiilor noi de hardware și software. Acest trend a devenit mai accentuat odată cu răspândirea mașinilor electrice, timp în care a început și un fenomen de re-concepere a autovehiculelor mult peste scopul lor de transportare pasagerilor din A în B. Un exemplu în acest sens, fiind Tesla, pionierul incontestabil al acestei mișcări.

Byton interior concept from CES 2018

În acest “moment” istoric al tehnologiei transportului, Android Automotive, ca și alte sisteme de IVI, precum MBUX din Mercedes-Benz EQS, sau conceptul VISION-S de la SONY, se află într-un proces de evoluție și maturizare continuă. Nu ar fi de mirare dacă în viitorul apropiat gigantul Apple să-și arate colții, lansând propriul sistem de infotainment, și de ce nu, o mașină fizică, creând un ecosistem complet asemănător calculatoarelor și telefoanelor Apple.

În aceste condiții, nu avem de ales decât să ne dezvoltăm și să creștem împreună cu schimbările industriei Automotive și totodată să ajutăm clienții noștri în procesul de transformare, prin experiența și dedicația noastră profesională, conform principiilor și valorilor Accenture - Industry X.

Surse

  1. What is Android Automotive?  The Android Open-Source Project

  2. Android Auto in the new BMW iX

  3. The Evolution of Car Infotainment Systems

  4. 1930: The First Motorola Brand Car Radio

  5. Building an infotainment system, powered by Android Automotive OS

  6. GMC HUMMER EV powered by Android Automotive OS with Google built-in

  7. Honda’s in-car Connect system does Android its own way

  8. What is SELinux?

Surse photo (în ordinea apariției):

  1. Polestar 2’s Android Automotive infotainment system is motoring innovation of the year - Alphabet

  2. Honda Connect - Honda Trading

  3. Hummer’s new electric SUV can drive diagonally, with 300 miles of range and a $110,000 price tag - The Verge

  4. The first ever BMW iX (11/2020) - BMW Group press release

  5. Byton Concept reveal | Digital Trends

VIDEO: NUMĂRULUI 113

Sponsori

  • Accenture
  • Bosch
  • ntt data
  • Betfair
  • FlowTraders
  • MHP
  • Connatix
  • BoatyardX
  • metro.digital
  • Colors in projects

Oszkar Nemeth a mai scris