EFIDroid: En bootloader i andra steg som använder UEFI Firmware för att multiboota [XDA Spotlight]

Multi-booting är ett komplicerat ämne, och för att aktivera det krävs ofta patchar till din kärna eller återställning. EFIDroid är ett verktyg som fungerar runt det.

Dubbel uppstart och multi-ROM-implementationer har varit en stor utmaning för Android-utvecklare ganska länge. Tidigare lösningar har vanligtvis behövt betydande enhetsspecifik utveckling och ytterligare stöd från ROM-utvecklare. Även då är de ofta mer komplicerade än de är värda för den genomsnittliga ROM-användaren. EFIDroid försöker råda bot på allt detta.

Tidigare känd som GRUB4Android, EFIDroid skapades av XDA Recognized Developer and Contributor m11kkaa som ett sätt att effektivt tillåta nästan vilken ROM som helst som ska multibootas utan att modifieras önskat ROM eller den aktuella återställningen. Det betyder inga kärnplåster, nej kexec, inga problem med ROM-inkompatibilitet och ingen huvudvärk för ROM-användare eller utvecklare.


Vad är EFIDroid?

Bildkredit: EFIDroid

EFIDroid är en andra steget bootloader designad för att låta enhetens ursprungliga startladdare-kod hantera själva hårdvarugränssnittet, och därigenom förenkla arbetet som behöver göras för att porta denna applikation till olika enheter. Detta är baserat på Intels

EDK II projekt som har en väletablerad kodbas och ger betydande utbyggbarhet. Denna implementering använder Qualcomms bootloader med öppen källkod, Little Kernel (LK), och som sådan är stöd för närvarande begränsad till Snapdragon-enheter.

Installationen är lika enkel som att ladda ner EFIDroidManager-applikation från Google Play Butik på en rotad enhet, förutsatt att din enhet har sammanfogats med projektets github repository. Om din enhet stöds kommer applikationen att ladda ner den relevanta koden och låta dig installera, avinstallera, installera om och reparera EFIDroid, samt låter dig hantera dina ROM-skivor i en multiboot konfiguration. När EFIDroid har installerats kan ROM-skivor installeras på den plats du väljer (vanligtvis någonstans som t.ex. /data/media/0/multiboot/NAME).

För närvarande stöds bara en handfull enheter, inklusive Moto E (Condor), Moto G 4G (Peregrine), Nokia X2, Ett plus ett, Vega Iron 2 och Fairphone 2. Dock är m11kkaa letar efter utvecklare för att hjälpa till med portering av EFIDroid till andra enheter – några har redan fått "inofficiellt stöd". Om du kan få EFIDroid att fungera på en annan enhet kräver processen för att integrera den i applikationen helt enkelt skickar en pull-begäran till EFIDroid git förvaret. M11kkaa informerade oss också om att han har framtida planer på att utöka appen för att potentiellt stödja startplugins och UEFI-appar (även om kom ihåg att detta bara är planer vid det här laget).


Hur det fungerar

EFIDroid använder LK som ett abstraktionslager för att interagera med enhetens hårdvara. Appen gör det möjligt för dessa komponenter att dra full nytta av UEFI: s breda kapacitet – bland dem möjligheten att ladda en Linux-kärna vid en

senare punkt.

EFIDroid använder Linux Kernel Library som ett sätt att kompilera Linux Kernel som ett mjukvarubibliotek. Detta gör det möjligt för UEFI att använda filsystemdrivrutiner för att läsa och skriva till och från flera startpartitioner, samtidigt som det ger den möjligheten att starta upp till flera ROM eller återställningsmiljöer. EFIDroid kan också visa felmeddelanden från en tidigare misslyckad start. Skaparen har till och med nämnt att man potentiellt kan använda Linux Kernel Library för att lägga till stöd för pekskärm i framtiden.

Allt detta kräver naturligtvis root-åtkomst och en olåst bootloader på din enhet men kräver ingen anpassad kärna.

Bildkredit: EFIDroid


Mer än bara Multiboot 

Implementeringen av en UEFI bootloader öppnar upp Android-enheter för många möjligheter. Olika plugin-program, inklusive diagnostik som Memtest86, öppnande av en kommandorad och till och med spel är möjliga inom UEFI-miljön. Även om stöd behövs för att få fler av dessa möjligheter att förverkligas, erbjuder EFIDroid fortfarande några nyckelfunktioner för kompatibla enheter. Oavsett om det bara används som en alternativ starthanterare för enheter som kan sakna återställningsalternativ eller som ett verktyg för att hantera och felsöka flera ROM eller återställningsmiljöer, erbjuder detta verktyg allt ovan och gör det med en användarvänlig och rakt fram UI att starta.

För ytterligare diskussioner, gå över till forumtråd eller följ projektet på länkarna nedan!

EFIDroid på Github

EFIDroids officiella webbplats

EFIDroids Slack Community


Har du testat EFIDroid tidigare? Vill du se stöd för din enhet? Låt oss veta i kommentarerna nedan!