EFIDroid: En oppstartslaster i andre trinn som bruker UEFI-fastvare for å multiboote [XDA Spotlight]

Multi-oppstart er et komplisert emne, og for å aktivere det krever ofte patcher til kjernen eller gjenoppretting. EFIDroid er et verktøy som fungerer rundt det.

Dobbel oppstart og multi-ROM-implementeringer har vært en stor utfordring for Android-utviklere en god stund. Tidligere løsninger har vanligvis trengt betydelig enhetsspesifikk utvikling og ytterligere støtte fra ROM-utviklere. Selv da er de ofte mer kompliserte enn de er verdt for den gjennomsnittlige ROM-brukeren. EFIDroid søker å bøte på alt dette.

Tidligere kjent som GRUB4Android, EFIDroid ble opprettet av XDA Recognized Developer and Contributor m11kkaa som et middel for effektivt å tillate nesten hvilken som helst ROM som skal multi-oppstartes uten å endres ønsket ROM eller gjeldende gjenoppretting. Det betyr ingen kjernepatcher, nei kexec, ingen problemer med ROM-inkompatibilitet, og ingen hodepine for ROM-brukere eller utviklere.


Hva er EFIDroid?

Bildekreditt: EFIDroid

EFIDroid er en andre trinns bootloader designet for å la enhetens originale bootloader-kode håndtere selve maskinvaregrensesnittet, og dermed forenkle arbeidet som må gjøres for å portere denne applikasjonen til forskjellige enheter. Dette er basert på Intels

EDK II prosjekt som har en veletablert kodebase og sørger for betydelig utvidbarhet. Denne implementeringen bruker Qualcomms open source bootloader, Lille kjerne (LK), og som sådan er støtte for øyeblikket begrenset til Snapdragon-enheter.

Installasjonen er like enkel som å laste ned EFIDroidManager-applikasjon fra Google Play Store på en rotet enhet, forutsatt at enheten din har støtte slått sammen med prosjektets github-depot. Hvis enheten din støttes, vil applikasjonen laste ned den relevante koden og la deg installere, avinstaller, reinstaller og reparer EFIDroid, samt lar deg administrere ROM-ene dine i en multiboot konfigurasjon. Når EFIDroid er installert, kan ROM-er installeres på stedet du ønsker (vanligvis et sted som f.eks. /data/media/0/multiboot/NAME).

For øyeblikket støttes bare en håndfull enheter, inkludert Moto E (Kondor), Moto G 4G (Peregrine), Nokia X2, En pluss en, Vega Iron 2 og Fairphone 2. Imidlertid er m11kkaa ser etter utviklere for å hjelpe med portering av EFIDroid til andre enheter – noen har allerede fått «uoffisiell støtte». Hvis du klarer å få EFIDroid til å fungere på en annen enhet, krever prosessen for å inkorporere den i applikasjonen ganske enkelt sender en pull-forespørsel til EFIDroid git oppbevaringssted. M11kkaa informerte oss også om at han har fremtidige planer om å utvide appen til å potensielt støtte oppstartsplugins og UEFI-apper (selv om husk at dette bare er planer på dette tidspunktet).


Hvordan det fungerer

EFIDroid utnytter LK som et abstraksjonslag for å samhandle med enhetens maskinvare. Appen gjør at disse komponentene kan utnyttes fullt ut av UEFIs omfattende muligheter – blant dem muligheten til å laste en Linux-kjerne på en

senere punkt.

EFIDroid bruker Linux Kernel Library som et middel til å kompilere Linux Kernel som et programvarebibliotek. Dette gjør det mulig for UEFI å bruke filsystemdrivere for lesing og skriving til og fra flere oppstartspartisjoner, i tillegg til å gi den muligheten til å starte opp til flere ROM-er eller gjenopprettingsmiljøer. EFIDroid kan også vise feilmeldinger fra en tidligere mislykket oppstart. Skaperen har til og med nevnt å potensielt bruke Linux Kernel Library for å legge til støtte for berøringsskjerm i fremtiden.

Alt dette krever selvfølgelig root-tilgang og en ulåst bootloader på enheten din men krever ikke en tilpasset kjerne.

Bildekreditt: EFIDroid


Mer enn bare multiboot 

Implementeringen av en UEFI bootloader åpner Android-enheter for mange muligheter. Ulike plugin-moduler, inkludert diagnostikk som Memtest86, åpning av en kommandolinje og til og med spill er mulig innenfor UEFI-miljøet. Selv om støtte er nødvendig for å bringe flere av disse mulighetene ut i livet, tilbyr EFIDroid fortsatt noen nøkkelfunksjoner for kompatible enheter. Enten brukt bare som en alternativ oppstartslaster for enheter som kan mangle gjenopprettingsalternativer eller som et verktøy for å administrere og feilsøking av flere ROM-er eller gjenopprettingsmiljøer, tilbyr dette verktøyet alt det ovennevnte og gjør det med en brukervennlig og enkelt brukergrensesnitt å starte opp.

For ytterligere diskusjoner, gå over til forumtråd eller følg prosjektet på lenkene under!

EFIDroid på Github

EFIDroids offisielle nettsted

EFIDroids Slack Community


Har du prøvd EFIDroid før? Vil du se støtte for enheten din? Gi oss beskjed i kommentarene nedenfor!