Multi-booting er et kompliceret emne, og for at aktivere det kræver det ofte patches til din kerne eller gendannelse. EFIDroid er et værktøj, der løser det.
Dual booting og multi-ROM-implementeringer har været en stor udfordring for Android-udviklere i ret lang tid. Tidligere løsninger har typisk krævet betydelige enhedsspecifik udvikling og yderligere support fra ROM-udviklere. Selv da er de ofte mere komplicerede, end de er værd for den gennemsnitlige ROM-bruger. EFIDroid søger at råde bod på alt dette.
Tidligere kendt som GRUB4Android, EFIDroid blev skabt af XDA Recognized Developer and Contributor m11kkaa som et middel til effektivt at tillade næsten enhver ROM skal multi-bootes uden at blive ændret den ønskede ROM eller den aktuelle gendannelse. Det betyder ingen kernepatches, nej kexec, ingen problemer med ROM-inkompatibilitet og ingen hovedpine for ROM-brugere eller udviklere.
Hvad er EFIDroid?
EFIDroid er en anden trins bootloader designet til at tillade enhedens originale bootloader-kode at håndtere selve hardwaregrænsefladen, og derved forenkle det arbejde, der skal udføres for at portere denne applikation til forskellige enheder. Dette er baseret på Intels
Installationen er lige så enkel som at downloade EFIDroidManager-applikation fra Google Play Butik på en enhed med rod, forudsat at din enhed er fusioneret med projektets github repository. Hvis din enhed er understøttet, vil applikationen downloade den relevante kode og lade dig installere, afinstallere, geninstallere og reparere EFIDroid, samt give dig mulighed for at administrere dine ROM'er i en multiboot konfiguration. Når EFIDroid er installeret, kan ROM'er installeres på det sted, du ønsker (normalt et sted som f.eks. /data/media/0/multiboot/NAME).
I øjeblikket understøttes kun en håndfuld enheder, inklusive Moto E (Condor), Moto G 4G (Peregrine), Nokia X2, OnePlus One, Vega Iron 2 og Fairphone 2. Imidlertid er m11kkaa leder efter udviklere til at hjælpe med portering af EFIDroid til andre enheder – nogle får allerede "uofficiel støtte". Hvis du er i stand til at få EFIDroid til at fungere på en anden enhed, kræver processen for at inkorporere den i applikationen ganske enkelt sender en pull-anmodning til EFIDroid git depot. M11kkaa informerede os også om, at han har fremtidige planer om at udvide appen til potentielt at understøtte boot-plugins og UEFI-apps (selvom husk på, at disse kun er planer på dette tidspunkt).
Hvordan det virker
EFIDroid udnytter LK som et abstraktionslag til at interagere med enhedshardware. Appen gør det muligt at udnytte disse komponenter fuldt ud af UEFI's vidtrækkende muligheder - blandt dem muligheden for at indlæse en Linux-kerne på en
senere punkt.
EFIDroid bruger Linux Kernel Library som et middel til at kompilere Linux Kernel som et softwarebibliotek. Dette gør det muligt for UEFI at bruge filsystemdrivere til at læse og skrive til og fra flere opstartspartitioner, samt at det giver den mulighed for at starte til flere ROM'er eller gendannelsesmiljøer. EFIDroid kan også vise fejlmeddelelser fra en tidligere mislykket opstart. Skaberen har endda nævnt potentielt at bruge Linux Kernel Library til at tilføje touchscreen-understøttelse i fremtiden.
Alt dette kræver naturligvis root-adgang og en ulåst bootloader på din enhed men kræver ikke en brugerdefineret kerne.
![](/f/6c61ed5dce10bbad5dbc2cdd8bcf8386.png)
![](/f/830fb3e24d26f6fdd3cd58e6ba5825e1.png)
Billedkredit: EFIDroid
Mere end bare multiboot
Implementeringen af en UEFI bootloader åbner Android-enheder for mange muligheder. Forskellige plug-ins, herunder diagnostik såsom Memtest86, åbning af en kommandolinje og endda spil er mulige i UEFI-miljøet. Selvom der er behov for support for at bringe flere af disse muligheder ud i livet, tilbyder EFIDroid stadig nogle nøglefunktioner til kompatible enheder. Uanset om det blot bruges som en alternativ bootloader til enheder, der muligvis mangler gendannelsesmuligheder eller som et værktøj til at administrere og fejlfinding af flere ROM'er eller gendannelsesmiljøer, tilbyder dette værktøj alt ovenstående og gør det med en brugervenlig og ligetil UI at starte.
For yderligere diskussioner, gå over til forum tråd eller følg projektet på nedenstående links!
EFIDroid på Github
EFIDroids officielle hjemmeside
EFIDroid's Slack Community
Har du prøvet EFIDroid før? Vil du gerne se support til din enhed? Fortæl os det i kommentarerne nedenfor!