En utvecklare på vårt forum har lyckats ge full Project Treble-kompatibilitet till Xiaomi Redmi Note 4, och han har bevisat det genom att starta upp en generisk Android 8.1 Oreo. Detta öppnar upp dörren för mycket enklare framtida anpassad ROM-utveckling, och kommer att vara enormt fördelaktigt när Android P kommer runt.
Om du har följt XDA-portalen kommer du att veta hur glada vi är över Googles Project Treble. I ett nötskal, Projekt Treble är kanske den mest betydande förändringen på låg nivå av Android Framework på flera år. Det innebär att separera leverantörens Hardware Abstraction Layers (HALs) från Android Framework till en ny leverantörspartition och ha HAL: er kommunicerar med Android Framework genom ett nytt leverantörsgränssnitt via det som kallas HAL Interface Definition Language (HIDL). Att göra detta kommer teoretiskt att påskynda framtida programuppdateringar eftersom enhetstillverkare, även kända som OEM, inte längre kommer att ha att vänta på att leverantörer som Qualcomm ska uppgradera sina binärfiler innan de kan börja arbeta med nästa version av Android (som
Alla Android-enheter som startar med Android 8.0 Oreo MÅSTE vara Project Treble-kompatibla (vilket innebär att de måste klara Vendor Test Suite [VTS]), men enheter som uppgraderar till Android Oreo behöver inte vara det. (Du kan kontrollera om din enhet är diskantkompatibel av följer vår guide här.) Medan Google har varit arbetar med vissa OEM: er för att säkerställa diskantkompatibilitet på vissa enheter, enhetstillverkare som t.ex OnePlus, Nokia, och Samsung har rullat ut Oreo-uppdateringar utan diskantkompatibilitet.
Detta är särskilt en besvikelse bland medlemmar i vår community på grund av den potential som diskantkompatibilitet ger för anpassad ROM-utveckling. Efter att ha teoretiserat hur det kan gynna den anpassade ROM-gemenskapen, kunde jag personligen starta en generisk AOSP Android 8.0 Oreo build (kallas en generisk systembild [GSI] av Google) på min Huawei Mate 9. Detta öppnade upp portarna för ROM-utveckling centrerad kring GSI och andra enheter som t.ex Huawei Mate 10, Honor 8 Pro och Honor 9 bland annat kan köra stabila versioner av AOSP Android Oreo som dagliga drivrutiner. Jag kör personligen en så kallad "Treble ROM" på min egen Huawei Mate 10 Pro, och tack vare projekt som Xposed Framework med GravityBox-modul, Underlag för teman, och mitt eget ramöverlägg, det är inte särskilt många funktioner som jag saknar.
Så med alla fördelar som Treble tycks ge för anpassad ROM-utveckling, har användare undrat om det är möjligt att "porta" diskantkompatibilitet. Detta är en utmaning för utvecklare eftersom det innebär att de först måste hitta utrymme att använda som en tillfällig leverantörspartition (på enheter som inte redan har en) och flytta sedan ut alla HAL: er från systempartitionen till den här nya leverantörspartitionen och skapar sedan leverantörsgränssnittet själva i HIDL. Som alltid var utvecklare av XDA-communityt klara av utmaningen, och XDA Senior Member abhishek987 har precis meddelat att han kunde framgångsrikt åstadkomma allt ovanstående och på så sätt få full Project Treble-kompatibilitet med Xiaomi Redmi Note 4 (mido).
Project Treble på Xiaomi Redmi Note 4
Hur gjorde han det? Han använde den "anpassade" partitionen på enheten för sin tillfälliga leverantörspartition. Den anpassade partitionen innehåller normalt en hel del enhetsspecifika saker från MIUI, så det är i princip slöseri med utrymme på en AOSP-build. Med hjälp av den cirka 830 MB oanvända partitionen flyttade han leverantörens HAL från systemet till kund utan att behöva partitionera om – vilket var en motivering som OEM-tillverkare som Nokia och OnePlus använde i sina uttalanden om varför de inte skulle ta med Treble-kompatibilitet till sina enheter.
Full projektdiskantkompatibilitet på Xiaomi Redmi Note 4
Efter lite hårt arbete med att få leverantörsgränssnittet att fungera kunde han starta upp XDA Senior Member phhussons Android 8.1 Oreo GSI utan större ansträngning. (Notera: phhusson sa till mig att abhishek987 var tvungen att ändra saker för att det skulle fungera på grund av brist på en "versionerad VNDK." Att förklara det i detalj skulle kräva ytterligare en artikel om Treble, som jag arbetar med på!)
Om du vill installera denna LineageOS 15.1 ROM på din Snapdragon Redmi Note 4, då vill du noggrant läs abhishek987s tillkännagivandeinlägg eftersom det innehåller viktig information om de nya blinkande instruktionerna.
Installera LineageOS 15.1 med Full Project Treble Support på Xiaomi Redmi Note 4 (Snapdragon)
Slutsats
Detta är utan tvekan en viktig milstolpe i diskantrelaterad anpassad ROM-utveckling. När utvecklaren publicerar sina enhetsträd kan andra anpassade ROM-utvecklare basera om sin ROM på detta arbete – vilket innebär att du kommer att se mer än bara LineageOS som är helt diskantkompatibelt på Redmi Note 4. Och nu när detta har visat sig möjligt kommer vi säkert att se fler utvecklare försöka detta på andra enheter. Jag har faktiskt redan sett XDA Senior Recognized Developer codeworkxförsök att få full diskantkompatibilitet på OnePlus 5/5T.
När det gäller vad detta innebär framöver har Redmi Note 4-användare mycket att vara exalterade över. Tack vare Treble-stödet borde Redmi Note 4 ha mycket, mycket lättare att få igång Android P när källkoden är tillgänglig. Treble är tänkt att göra det så att en enhet med, säg, Android 8.1-leverantör kan köra ett Android P-system ovanpå, men eftersom Android P ännu inte är tillgängligt kan vi inte testa det påståendet själva. Men när Android P kommer, kommer vi att vara säkra på att testa det och eventuellt ta nästa stora steg i utvecklingen av anpassad ROM.
Om du är intresserad av allt som har med Project Treble att göra, följ XDA-portalen genom vår Project Treble-tagg eller genom att använda XDA Labs-appen. Överväg också att prenumerera på vårt forum för diskantutveckling av enheter för fler nyheter som denna.
Gå med i vårt diskantaktiverade enhetsutvecklingsforum
Tack till XDA Members Shreesha. Murthy, MyNameIsRage, feherneoh och Abhishikth för att du skickade ett tips till oss!