En udvikler på vores forum har formået at bringe fuld Project Treble-kompatibilitet til Xiaomi Redmi Note 4, og han har bevist det ved at starte en generisk Android 8.1 Oreo. Dette åbner døren for meget lettere fremtidig tilpasset ROM-udvikling og vil være enormt gavnlig, når Android P kommer omkring.
Hvis du har fulgt XDA-portalen, vil du vide, hvor begejstrede vi er for Googles Project Treble. I en nøddeskal, Projekt Diskant er måske den mest markante ændring på lavt niveau til Android Framework i årevis. Det involverer at adskille leverandørens Hardware Abstraction Layers (HAL'er) fra Android Framework til en ny leverandørpartition og have HAL'er kommunikerer med Android Framework gennem en ny leverandørgrænseflade via det, der kaldes HAL Interface Definition Language (HIDL). At gøre dette vil teoretisk fremskynde fremtidige softwareopdateringer, da enhedsproducenter, også kendt som OEM'er, ikke længere vil have at vente på, at leverandører som Qualcomm opgraderer deres binære filer, før de kan begynde at arbejde på den næste version af Android (som f.eks. Android P).
Alle Android-enheder, der starter med Android 8.0 Oreo SKAL være Project Treble-kompatible (hvilket betyder, at de skal bestå Vendor Test Suite [VTS]), men det kræves ikke, at enheder, der opgraderer til Android Oreo. (Du kan kontrollere, om din enhed er diskantkompatibel ved følge vores guide her.) Mens Google har været arbejder med nogle OEM'er for at sikre diskantkompatibilitet på nogle enheder, enhedsproducenter som f.eks OnePlus, Nokia, og Samsung har udrullet Oreo-opdateringer uden diskantkompatibilitet.
Dette er især en skuffelse blandt medlemmer af vores fællesskab på grund af det potentiale, som diskantkompatibilitet bringer til tilpasset ROM-udvikling. Efter at have teoretiseret hvordan det kan være til gavn for brugerdefinerede ROM-fællesskabet, var jeg personligt i stand til boot en generisk AOSP Android 8.0 Oreo build (kaldet et generisk systembillede [GSI] af Google) på min Huawei Mate 9. Det her åbnede sluserne for ROM-udvikling centreret omkring GSI'en og andre enheder som f.eks Huawei Mate 10, Honor 8 Pro og Honor 9 blandt andre er i stand til at køre stabile builds af AOSP Android Oreo som daglige drivere. Jeg kører personligt en såkaldt "Treble ROM" på min egen Huawei Mate 10 Pro, og takket være projekter som f.eks. Xposed Framework med GravityBox modul, Underlag for temaer, og min egen rammeoverlejring, der er ikke ret mange funktioner, jeg mangler.
Så med alle de fordele, som Treble ser ud til at give til brugerdefineret ROM-udvikling, har brugere spekuleret på, om det er muligt at "portere" Treble-kompatibilitet. Dette er en udfordring for udviklere, da det betyder, at de først skal finde plads til at bruge som en midlertidig leverandørpartition (på enheder, der ikke allerede gør det har en) og flyt derefter alle HAL'erne ud af systempartitionen til denne nye leverandørpartition, og opret derefter leverandørgrænsefladen selv i HIDL. Som altid var udviklere af XDA-fællesskabet op til udfordringen, og XDA Senior Member abhishek987 har netop annonceret at han var i stand til at gennemføre alt ovenstående og dermed bringe fuld Project Treble-kompatibilitet til Xiaomi Redmi Note 4 (mido).
Project Treble på Xiaomi Redmi Note 4
Hvordan gjorde han det? Han brugte "custom"-partitionen på enheden til sin midlertidige leverandørpartition. Custom-partitionen rummer normalt en masse enhedsspecifikke ting fra MIUI, så det er i det væsentlige spildt plads på en AOSP-build. Ved at bruge den ca. 830 MB ubrugte partition flyttede han leverandørens HAL'er fra system til kunde uden at skulle ompartitionere - hvilket var en begrundelse, som OEM'er som Nokia og OnePlus brugte i deres udtalelser om, hvorfor de ikke ville bringe Treble-kompatibilitet til deres enheder.
Fuld Project Diskant-kompatibilitet på Xiaomi Redmi Note 4
Efter noget hårdt arbejde med at få leverandørgrænsefladen til at fungere, var han i stand til at starte XDA Senior Member op phhusson's Android 8.1 Oreo GSI uden stor indsats. (Bemærk: phhusson fortalte mig, at abhishek987 var nødt til at ændre tingene rundt for at det kunne fungere på grund af mangel på en "versionerede VNDK." At forklare det i detaljer ville kræve endnu en artikel om Treble, som jeg arbejder med på!)
Hvis du vil installere denne LineageOS 15.1 ROM på din Snapdragon Redmi Note 4, så vil du grundigt læs abhishek987's annonceringsindlæg, da det indeholder vigtig information om de nye blinkende instruktioner.
Installer LineageOS 15.1 med fuld projektdiskantstøtte på Xiaomi Redmi Note 4 (Snapdragon)
Konklusion
Dette er uden tvivl en stor milepæl i diskant-relateret tilpasset ROM-udvikling. Når udvikleren sender sine enhedstræer, kan andre brugerdefinerede ROM-udviklere re-basere deres ROM på dette arbejde – hvilket betyder, at du vil se mere end bare LineageOS, der er fuldt diskantkompatibelt på Redmi Note 4. Og nu hvor dette er blevet bevist muligt, er vi sikre på at se flere udviklere forsøge dette på andre enheder. Faktisk har jeg allerede set XDA Senior Recognized Developer kodeværkxforsøg på at bringe fuld diskantkompatibilitet på OnePlus 5/5T.
Hvad det betyder fremover, har Redmi Note 4-brugere meget at være begejstrede for. Takket være Treble-understøttelse skulle Redmi Note 4 have meget, meget nemmere ved at få Android P op at køre, når kildekoden er gjort tilgængelig. Treble formodes at gøre det, så en enhed med for eksempel Android 8.1-leverandøren er i stand til at køre et Android P-system oveni, men da Android P endnu ikke er tilgængelig, kan vi ikke selv teste den påstand. Men når Android P kommer omkring, vil vi være sikre på at prøve det af og potentielt tage det næste store skridt i tilpasset ROM-udvikling.
Hvis du er interesseret i alt om Project Treble, så følg venligst XDA-portalen gennem vores Project Treble tag eller ved at bruge XDA Labs-appen. Overvej også at abonnere på vores diskantaktiverede enhedsudviklingsforum for flere nyheder som denne.
Tilmeld dig vores diskantaktiverede enhedsudviklingsforum
Tak til XDA-medlemmer Shreesha. Murthy, MyNameIsRage, feherneoh og AbhishikH for at sende os et tip!