[MULTIBOOT] [BETA] EFIDroid for Nexus 5

Search This thread

lukss12

Senior Member
Jul 22, 2013
376
399
Mar del Plata
Xiaomi Mi A2
I have ported EFIDroid (developed by @m11kkaa) for the Nexus 5.
@m11kkaa's original EFIDroid thread here: https://xdaforums.com/android/software-hacking/efidroid-t3447466.



This is an unofficial port of beta software. I am not responsible for anything that may happen to your device. Use at your own risk.



NOTE: This has been tested with last LineageOS Build (21/03/2017) and TWRP 3.1.0-0. All other configurations are untested by me, but should work.

Working ROMs
[Here I will post the ROM's that are working for multiboot (Of course I will need people's feedback to fullfill this list)]
  • LineageOS 14.1 (As primary, as secondary with SELinux permissive option)
  • DU 11.2 (As primary, as secondary with SELinux permissive option) tested by @AndresOrue
  • PureNexus 7.1.1 (Should work as primary but not tested, as secondary with SELinux permissive option) tested by @AndresOrue
  • Lineage OS DarkRom by Dark_Eyes (As primary, not tested as secondary-should work with SELinux permissive option) tested by @willyinpr4u
  • AlmostVanillaAOSP Marshmallow (As primary, not tested as secondary-should work with SELinux permissive option) tested by @alessio89g
  • AOSP Nougat (Should work as primary but not tested, as secondary with SELinux permissive option) tested by @alessio89g
  • UntouchedAOSP 6.0.1 tested by @BreckZeBoulay
  • MiUI 8 tested by @sa4ni
  • Euclidean OS tested by @willyinpr4u
  • Xenon HD AOSP tested by @willyinpr4u
  • AICP 12.1 7.1.2 tested by @phpbb3
  • Elixr-hammerhead-V1.1-20140420 tested by @playerkirk1
  • Plasma-Mobile tested by me

Installation

  1. Install the attached EFIDroid Manager apk. Since this is an unofficial port, the EFIDroid Manager app from the Play Store won't work. (This is modified to use my unofficial server)
  2. Open the EFIDroid Manager app, open the menu (at the top left), and click "Install/Update".
  3. Click the big orange Install button.
And voila, you're done in 3 easy steps! Reboot to see your new 2nd-stage bootloader!
Post below with your installed ROM if you have success.

To update EFIDroid, just repeat step 2, and the click the big orange Update button.
The app won't automatically check for updates, so I'll post an announcement on this thread whenever an important update is available.

Migrating from MultiROM
TWRP Backups should work fine but as /sdcard gets mocked on TWRP for secondary ROMs to prevent an "accidental" wipe there is some steps to follow
1-Create a new slot
2-Go to /data/media/0/multiboot/your_new_slot/data
3-Create folder media/0/TWRP/BACKUPS
4-Move/copy your backup to the created folder -remember the backup folder is the one that look like a hash (like "'03480ffg04395g234")
5-Boot TWRP from EFIDroid for the new slot
6-Format System
7-Flash your backup

Multibooting

You can use EFIDroid as a multiboot manager. To add a multiboot ROM, do the following:
  1. Open the EFIDroid Manager app. Press the plus button at the bottom right side of the screen to start adding a multiboot slot.
  2. Under "Location", there should be a couple paths. Select the one containing "/data/media/0".
  3. You can give the slot a name/description by using the appropriate fields.
  4. Press the checkmark at the top right side of the screen to create the multiboot slot.
  5. Reboot. When EFIDroid comes up, select TWRP, then select the newly created slot.
  6. Go to the "Wipe > Advanced Wipe" menu. Select "System", then swipe to wipe.
  7. Install all the zips you want on that slot.
    NOTE: To prevent accidentall data loss when booting in recovery the real /sdcard gets mocked so you are not going to find your .zips as usual under TWRP's /sdcard. To acces the "real" /sdcard go to /multiboot/data/media/0
  8. Reboot, and when EFIDroid comes up, your new slot should automatically be selected. Press the power button to boot, and enjoy!
    IMPORTANT:your main ROM should boot without changing any configuration on EFIDroid but secondary ROM's are used to fail because of selinux denials. I strongly reccomend you to enable Force SELinux to permissive under EFIDroid options (the Gear icon in the main screen placed at the top right) - Once you kwon your secondary ROM is working you can try to boot without this option disabled - If you end up in a bootloop logcat and dmesg are welcome.

Troubleshooting

If you are unable to boot the OS/recovery from EFIDroid, do the following (you do have a working boot.img (from your main OS) and recovery.img (TWRP 3.1.0-0 recommended), right?)
This assumes you have fastboot properly setup. (Ubuntu: sudo apt-get install android-tools-fastboot - Windows: just google for the binaries)

OPTION 1:
  1. In EFIDroid, use the volume keys to navigate to "Fastboot", the press the power key to select it.
  2. There should only be one entry in the Fastboot menu. Press the power key to select it.
  3. Connect your phone to your computer with a USB cable. Run the following (on the computer), one line at a time:
    Code:
    fastboot flash boot <path/to/boot.img>
    fastboot flash recovery <path/to/recovery.img>
    fastboot oem exit
  4. In EFIDroid, use the volume keys to navigate to the back button at the top of the screen. Press the power key to select.
  5. Use the volume keys to navigate to "Reboot", then press the power key to select.

OPTION 2:
  1. Enter LG's Fastboot Mode (Volume Down + Power Off)
  2. Connect your phone to your computer with a USB cable. Run the following (on the computer), one line at a time:
    Code:
    fastboot flash boot <path/to/boot.img>
    fastboot flash recovery <path/to/recovery.img>
    fastboot reboot-bootloader
  3. Use the volume keys to navigate and select "Start" or "Recovery", then press the power key to select.
You should be able to boot the installed OS/recovery now. If this doesn't work, you can always enter Fastboot Mode (Volume Down + Power Off) and then flash your recovery and boot from there.

Clarifications
  • When Installing EFIDroid boot and recovery partitions are flashed so you only can enter recovery through EFIDroid to prevent any confusion
  • To enter Recovery just select your recovery on EFIDroid and then select the ROM you want the recovery to apply the .zip you are going to flash (EFIDroid properly patches TWRP ramdisk to affect the desire slot/ROM)

How does this work?
Well I'm going to explain it a little:
  • Right now you have your ROM kernel (boot.img) custom or stock ( it don't mind) in your boot partition and your recovery.img (I think TWRP) in your recovery partition. UEFIDroid is a kernel but it is not a linux kernel, it's based on Little Kernel aka LK... Qualcom port LK to Snapdragon chipsets and developed their custom bootloader, then the EFIDroid developer take this and implemented UEFI over the Qualcom's LK port.
  • Whe you install EFIDroid this is what happens:
    -EFIDroid Manager backups your boot.img and recovery.img in /data/media/0/UEFIESP folder
    -EFIDroid Manager flash EFIDroid in your boot and your recovery partitions (the recovery is flashed to prevent you using your recovery without booting it from EFIDroid)
  • Then the next time you boot the stock bootloader aka aboot loads UEFIDroid that is flashed in your boot partition, LK kernel boots and execute UEFI. Then the UEFI looks for the original boot.img (for booting your actual ROM aka Internal) and looks for your actual recovery.img, remember both were saved into /data/media/0/UEFIESP.
    And finally it looks for slots/ROMs in /data/media/0/multiboot (of course these are the slots for multibooting a lot of ROMs).
  • A slot for a ROM is composed by a data folder, a system.img(1GB) and a boot.img (these are the ones used/mounted to boot the ROM you select in multiboot menu) -slots are added from EFIDroid Manager app.
  • In the last step it shows you the Menu to select what you want to boot and it applies the propers patchs to ramdisk to use the correct data folder and system.img, then boot the correct boot.img using libboot (the usually used by android bootloaders)

Recoveries
I personally tested EFIDroid with TWRP and TWRP CAF in their 3.1.0.0 versions and they worked great.
As I stated before, your current recovery is backed up to /data/media/0/partition_recovery.img so if you somehow ended having trouble to boot your recovery, you can boot to your main OS and replace /data/media/0/partition_recovery.img with another recovery (ofc change the name of the new recovery to partition_recovery.img) - YOU NEED A ROOT BROWSER -

Custom Kernels
Well custom kernels are known to break things, so to say that a ROM is working I need you to test with the stock kernel that comes with it, then of course if you want to test custom kernels you're welcome and I will update this post with your feedback.
NOT WORKING CUSTOM KERNELS:
  • ElementalX 7.09 (Don't pass EFIDroid boot Splash Screen) tested by @AndresOrue with DU 11.2 (It should not matter because it's not booting the ROM at all) -may be ramdisk patching problem-
WORKING CUSTOM KERNELS:
Credits
-All credit goes to @m11kkaa for doing all the hard work in developing EFIDroid.
-@abraha2d for the help with porting and giving permission to use his post for Note 4 as the base for this one!

Kernel Special Features: UEFI, MultiBoot

Version Information
Status: Beta
Current Beta Version: 0.1
EFI Specification: 2.60
Beta Release Date: 2017-03-27

Created 2017-03-28
Last Updated 2017-04-17
 

Attachments

  • EFIDroid-hammerhead-server.apk
    2.7 MB · Views: 2,648
  • screen2.png
    screen2.png
    130.6 KB · Views: 5,218
  • screen1.png
    screen1.png
    59.5 KB · Views: 5,157
  • screen3.png
    screen3.png
    60.6 KB · Views: 5,023
  • screen4.png
    screen4.png
    88.8 KB · Views: 4,715
Last edited:

lukss12

Senior Member
Jul 22, 2013
376
399
Mar del Plata
Xiaomi Mi A2
-Initial Release 2017-03-27
Bugs:
  • ElementalX 7.09 Kernel not booting (may be ramdisk compression incompatibility)
  • Screen blinks when using AROMA Installers in TWRP (no details) - AROMA Installer is usable but in a very annoying way :/
  • Flashable scripts logs are not shown in TWRP console when flashing in a secondary ROM (no details)
 
Last edited:

AndresOrue

Senior Member
Nov 6, 2011
988
541
Rosario
Thank you mate for it, i will try it as soon as i can and i let you know how it works.

Edited: app installed, works ok so far

Edit2: @lukss12 mate the new boot Menu works but the phone don't boot anymore. I don't try to install new roms only reboot the phone but it only says rebooting android 7.1.1 internal .
I solved the problem, i dirty flash my rom ( du 11.2).

My rom: DU 11.2 android 7.1.1

Anyway at night i will try again :)
 

Attachments

  • Screenshot_20170328-140344.png
    Screenshot_20170328-140344.png
    74.8 KB · Views: 1,223
Last edited:
  • Like
Reactions: lukss12

kmem

Senior Member
May 23, 2011
234
72
The prospect of an alternative to multirom is exciting. The great hammerhead lives on!
 
  • Like
Reactions: lukss12

lukss12

Senior Member
Jul 22, 2013
376
399
Mar del Plata
Xiaomi Mi A2
Thank you mate for it, i will try it as soon as i can and i let you know how it works.

Edited: app installed, works ok so far

Edit2: @lukss12 mate the new boot Menu works but the phone don't boot anymore. I don't try to install new roms only reboot the phone but it only says rebooting android 7.1.1 internal .
I solved the problem, i dirty flash my rom ( du 11.2).

My rom: DU 11.2 android 7.1.1

Anyway at night i will try again :)

Great you could solve ur problem, yes flashing boot.img from your actual ROM will boot the device. Remember EFIDroid is also installed in your recovery partition, you can boot TWRP from there but if you want to revert back to "stock" DU with TWRP you need to flash TWRP to recovery partition.

About your boot problem, mine takes about 7 seconds on "booting" splash before showing bootanimation...

Did you try to set Force Selinux permissive option in Efidroid?

Also for the internal ROM you can try unpatched boot... For this boot efidroid and long press the power button on the Entry for your ROM.
 

AndresOrue

Senior Member
Nov 6, 2011
988
541
Rosario
Great you could solve ur problem, yes flashing boot.img from your actual ROM will boot the device. Remember EFIDroid is also installed in your recovery partition, you can boot TWRP from there but if you want to revert back to "stock" DU with TWRP you need to flash TWRP to recovery partition.

About your boot problem, mine takes about 7 seconds on "booting" splash before showing bootanimation...

Did you try to set Force Selinux permissive option in Efidroid?

Also for the internal ROM you can try unpatched boot... For this boot efidroid and long press the power button on the Entry for your ROM.

Did you try to set Force Selinux permissive option in Efidroid?

No i will try it at night.

About your boot problem, mine takes about 7 seconds on "booting" splash before showing bootanimation...

For me 5 min and nothing.

Also i need to read a little more to avoid problems.. and also i think when flash suspersu breaks the boot but i need to confirm it
 

lukss12

Senior Member
Jul 22, 2013
376
399
Mar del Plata
Xiaomi Mi A2
Did you try to set Force Selinux permissive option in Efidroid?

No i will try it at night.

About your boot problem, mine takes about 7 seconds on "booting" splash before showing bootanimation...

For me 5 min and nothing.

Also i need to read a little more to avoid problems.. and also i think when flash suspersu breaks the boot but i need to confirm it

Yep I recommend reading the full OP once or twice before starting....well is good to see that the app and installation is working... It's weird that you can't boot internal - please if you can try the unpatched boot option-
 
  • Like
Reactions: AndresOrue

AndresOrue

Senior Member
Nov 6, 2011
988
541
Rosario
Yep I recommend reading the full OP once or twice before starting....well is good to see that the app and installation is working... It's weird that you can't boot internal - please if you can try the unpatched boot option-

Questions:

What is lf laf recovery?

I flashed twrp from my pc but i still have this new boot, other way to deleted?

How can i deleted this app completely? flashing stock rom is ok or i can flash a custom rom with full wipe?

Anyway now i am doing a backup of my app So I can try it without problems :)
 
Last edited:

lukss12

Senior Member
Jul 22, 2013
376
399
Mar del Plata
Xiaomi Mi A2
Questions:

What is lf laf recovery?

I flashed twrp from my pc but i still have this new boot, other way to deleted?

How can i deleted this app completely? flashing stock rom is ok or i can flash a custom rom with full wipe?

Anyway now i am doing a backup of my app So I can try it without problems :)

Enter fastboot mode (volume down + power off)
fastboot flash recovery twrp.img
fastboot reboot-bootloader
Select recovery
Flash your ROM zip

Or extract boot.img from your ROM zip
Enter fastboot mode
fastboot flash boot boot.img
fastboot flash recovery twrp.img

Both of those options will revert your boot and recovery partition to "stock"
 
  • Like
Reactions: AndresOrue
D

Deleted member 4753239

Guest
I apologize for the question, but I did not understand a bit, efidroid will be work if I have installed a custom kernel?
 

AndresOrue

Senior Member
Nov 6, 2011
988
541
Rosario
Enter fastboot mode (volume down + power off)
fastboot flash recovery twrp.img
fastboot reboot-bootloader
Select recovery
Flash your ROM zip

Or extract boot.img from your ROM zip
Enter fastboot mode
fastboot flash boot boot.img
fastboot flash recovery twrp.img

Both of those options will revert your boot and recovery partition to "stock"


A few things:

To revert to stock recovery, I had to repeat two times the process of flashing the boot.img and twrp.
Obviously you lose root at this time.


Installed EFIdroid again and now first rom boot ok , no more "booting android internal" for 5 min anymore. I dont know if it because I reflashed the boot image again or maybe was the custom kernel because now i have stock DU kernel.

Now i try to add a second rom:

1) Steps from EFIdroid to create second rom works great.
2) rebooting ok
3) I selected twrp and install DU 11.2
4) installation was ok
5) Rebooting into second rom , bootloop in bootanimation after five minutes it freeze and reboot
6)edited here ( i forgot the part of change selinux to permissive )
7) wipe and installed again the second rom and finally second rom boot ok , using DU 11.2 as second rom.
8) Supersu was intalled and works ok in second rom too.

I can confirm now that the reason that the first and second rom dont boot was elementalX kernel. With the stock DU kernel works perfect. primary and secondary rom.

I hope it helps...


Questions:
how i delete second rom completely ? only with full wipe?



---------- Post added at 09:02 PM ---------- Previous post was at 08:57 PM ----------

I apologize for the question, but I did not understand a bit, efidroid will be work if I have installed a custom kernel?

the first time that i installed EFIdroid i was using elementalx 7.09 and it installed ok but first rom dont boot anymore. The second time, after i reflashed the boot image from DU the rom boot fine

edited: I can confirm now that with elementalX the rom dont boot
 
Last edited:
  • Like
Reactions: lukss12

lukss12

Senior Member
Jul 22, 2013
376
399
Mar del Plata
Xiaomi Mi A2
I apologize for the question, but I did not understand a bit, efidroid will be work if I have installed a custom kernel?

Well I'm going to explain it a little:

Right now you have your ROM kernel (boot.img) custom or stock ( it don't mind) in your boot partition and your recovery.img (I think TWRP) in your recovery partition. UEFIDroid is a kernel but it is not a linux kernel, it's based on Little Kernel aka LK... Qualcom port LK to Snapdragon chipsets and developed their custom bootloader, the EFIDroid developer take this and implemented UEFI over the Qualcom's LK port.

Whe you install EFIDroid this is what happens:
-EFIDroid backups your boot.img and recovery.img in /data/media/0/UEFIESP folder
-EFIDroid Manager flash EFIDroid in your boot and your recovery partitions (the recovery is flashed to prevent you using your recovery without booting it from EFIDroid)

Then the next time you boot the stock bootloader aka aboot loads UEFIDroid that is flashed in your boot partition, LK kernel boot and execute UEFI. Then the UEFI looks for the original boot.img (for booting your actual ROM aka Internal) and looks for your actual recovery.img, remember both were saved into /data/media/0/UEFIESP.
And finally it looks for slots/ROMs in /data/media/0/multiboot (of course these are the slots for multibooting a lot of ROMs).

-An slot for a ROM is composed by a data folder, a system.img(1GB) and a boot.img (these are the ones used/mounted to boot the ROM you select in multiboot menu) -slots are added from EFIDroid Manager app.

In the last step it shows you the Menu to select what you want to boot. It applies the propers patchs to ramdisk to use the correct data folder and system.img and boot the correct boot.img using libaboot (the usually used by android bootloaders)
 

lukss12

Senior Member
Jul 22, 2013
376
399
Mar del Plata
Xiaomi Mi A2
Installed EFIdroid again and now first rom boot ok , no more "booting android internal" for 5 min anymore. I dont know if it because I reflashed the boot image again or maybe was the custom kernel because now i have stock DU kernel.
Great so DU works as internal , and secondary with SELinux permissive

I can confirm now that the reason that the first and second rom dont boot was elementalX kernel. With the stock DU kernel works perfect. primary and secondary rom.
Yes it is possible that a custom kernel is making problem to patch ramdisk

Questions:
how i delete second rom completely ? only with full wipe?
No, you don't need full wipe. Slots/ROMs are stored ind /data/media/0/multiboot/your_rom, just delete "your_rom" folder with a root browser and goodbye ROM.
 
  • Like
Reactions: AndresOrue

AndresOrue

Senior Member
Nov 6, 2011
988
541
Rosario
Sorry I was on the phone and it's a little slow to write and QUOTE there.
I have not tested custom kernels because I don't use them, I think is possible that the custom kernel makes ramdisk patching to fail

Sorry too mate I posted it before I read that you replied to me... yes DU11.2 works as primary and secondary rom. I will try others roms tomorrow but so far all is working great in secondary rom.
Thank you for you work!!!
 
Last edited:

lukss12

Senior Member
Jul 22, 2013
376
399
Mar del Plata
Xiaomi Mi A2
Sorry too mate I posted it before I read that you replied to me... yes DU11.2 works as primary and secondary rom. I will try others roms tomorrow but so far all is working great in secondary rom.
Thank you for you work!!!
There is no need to thank I'm doing this for fun :D
It' can be usefull if you got us some dmesg and logcat logs when the secondary ROM is bootlooping because of the SELinux permissive option not enabled. - you can get this with adb, the ROM bootloops but adb should get started at some point (of course you need to properly boot to the ROM the first time and enable adb and authorize your computer -
Thanks for the testing and wathever you have to share about using EFIDroid is usefull
 
  • Like
Reactions: M Asad Khilji

AndresOrue

Senior Member
Nov 6, 2011
988
541
Rosario
There is no need to thank I'm doing this for fun :D
It' can be usefull if you got us some dmesg and logcat logs when the secondary ROM is bootlooping because of the SELinux permissive option not enabled. - you can get this with adb, the ROM bootloops but adb should get started at some point (of course you need to properly boot to the ROM the first time and enable adb and authorize your computer -
Thanks for the testing and wathever you have to share about using EFIDroid is usefull

Here is the log from second rom with selinux permissive not enable.

Also I confirm that the first rom boot ok with selinux permissive not enable ( selinux as enforcing ).

tell me if the log are correct, if not i try again.


Edited: i did some more test:

I tried as secondary pure nexus rom version : purenexus_hammerhead-7.1.1-20170216-HOMEMADE and boot ok in permissive enable

Also as secondary and permissive enable, I tried DU11.2 with the kernel blu_spark_r122_hammerhead_5472df4 and here boot ok too. It Does not hang up, with the massage " booting android 7.1.1" ( so elementalX 7.09 doesn't work so far).
 

Attachments

  • Log2ndRomDU.zip
    39.2 KB · Views: 25
Last edited:
  • Like
Reactions: lukss12

willyinpr4u

Senior Member
Apr 2, 2015
342
134
Temple
Thanks for taking the time for this amazing work.
Just downloaded the .apk and installed, boot to EFIDroid, I guess, because I saw a never before seen menu with my internal ROM, TWRP, etc...
As of now it's late where I'm from, but I will download a secondary ROM later and post results.
Thanks.
 

lukss12

Senior Member
Jul 22, 2013
376
399
Mar del Plata
Xiaomi Mi A2
Thanks for taking the time for this amazing work.
Just downloaded the .apk and installed, boot to EFIDroid, I guess, because I saw a never before seen menu with my internal ROM, TWRP, etc...
As of now it's late where I'm from, but I will download a secondary ROM later and post results.
Thanks.

Yep that "never seen before menu" is EFIDroid hehe, so your primary ROM is booting ok, please share what ROM you are using. And remember to enable Force SELinux permissive when booting a secondary ROM to prevent a SELinux denial bootloop, then you can try with the option disabled. But if the LineageOS kernel, that is the most "normal" kernel I know, couldn't do it I don't think any other could boot with SELinux enforced as secondary ROM. Anyways logcat and dmesg from a bootloop are useful and welcome.
 
  • Like
Reactions: willyinpr4u

Top Liked Posts

  • There are no posts matching your filters.
  • 23
    I have ported EFIDroid (developed by @m11kkaa) for the Nexus 5.
    @m11kkaa's original EFIDroid thread here: https://xdaforums.com/android/software-hacking/efidroid-t3447466.



    This is an unofficial port of beta software. I am not responsible for anything that may happen to your device. Use at your own risk.



    NOTE: This has been tested with last LineageOS Build (21/03/2017) and TWRP 3.1.0-0. All other configurations are untested by me, but should work.

    Working ROMs
    [Here I will post the ROM's that are working for multiboot (Of course I will need people's feedback to fullfill this list)]
    • LineageOS 14.1 (As primary, as secondary with SELinux permissive option)
    • DU 11.2 (As primary, as secondary with SELinux permissive option) tested by @AndresOrue
    • PureNexus 7.1.1 (Should work as primary but not tested, as secondary with SELinux permissive option) tested by @AndresOrue
    • Lineage OS DarkRom by Dark_Eyes (As primary, not tested as secondary-should work with SELinux permissive option) tested by @willyinpr4u
    • AlmostVanillaAOSP Marshmallow (As primary, not tested as secondary-should work with SELinux permissive option) tested by @alessio89g
    • AOSP Nougat (Should work as primary but not tested, as secondary with SELinux permissive option) tested by @alessio89g
    • UntouchedAOSP 6.0.1 tested by @BreckZeBoulay
    • MiUI 8 tested by @sa4ni
    • Euclidean OS tested by @willyinpr4u
    • Xenon HD AOSP tested by @willyinpr4u
    • AICP 12.1 7.1.2 tested by @phpbb3
    • Elixr-hammerhead-V1.1-20140420 tested by @playerkirk1
    • Plasma-Mobile tested by me

    Installation

    1. Install the attached EFIDroid Manager apk. Since this is an unofficial port, the EFIDroid Manager app from the Play Store won't work. (This is modified to use my unofficial server)
    2. Open the EFIDroid Manager app, open the menu (at the top left), and click "Install/Update".
    3. Click the big orange Install button.
    And voila, you're done in 3 easy steps! Reboot to see your new 2nd-stage bootloader!
    Post below with your installed ROM if you have success.

    To update EFIDroid, just repeat step 2, and the click the big orange Update button.
    The app won't automatically check for updates, so I'll post an announcement on this thread whenever an important update is available.

    Migrating from MultiROM
    TWRP Backups should work fine but as /sdcard gets mocked on TWRP for secondary ROMs to prevent an "accidental" wipe there is some steps to follow
    1-Create a new slot
    2-Go to /data/media/0/multiboot/your_new_slot/data
    3-Create folder media/0/TWRP/BACKUPS
    4-Move/copy your backup to the created folder -remember the backup folder is the one that look like a hash (like "'03480ffg04395g234")
    5-Boot TWRP from EFIDroid for the new slot
    6-Format System
    7-Flash your backup

    Multibooting

    You can use EFIDroid as a multiboot manager. To add a multiboot ROM, do the following:
    1. Open the EFIDroid Manager app. Press the plus button at the bottom right side of the screen to start adding a multiboot slot.
    2. Under "Location", there should be a couple paths. Select the one containing "/data/media/0".
    3. You can give the slot a name/description by using the appropriate fields.
    4. Press the checkmark at the top right side of the screen to create the multiboot slot.
    5. Reboot. When EFIDroid comes up, select TWRP, then select the newly created slot.
    6. Go to the "Wipe > Advanced Wipe" menu. Select "System", then swipe to wipe.
    7. Install all the zips you want on that slot.
      NOTE: To prevent accidentall data loss when booting in recovery the real /sdcard gets mocked so you are not going to find your .zips as usual under TWRP's /sdcard. To acces the "real" /sdcard go to /multiboot/data/media/0
    8. Reboot, and when EFIDroid comes up, your new slot should automatically be selected. Press the power button to boot, and enjoy!
      IMPORTANT:your main ROM should boot without changing any configuration on EFIDroid but secondary ROM's are used to fail because of selinux denials. I strongly reccomend you to enable Force SELinux to permissive under EFIDroid options (the Gear icon in the main screen placed at the top right) - Once you kwon your secondary ROM is working you can try to boot without this option disabled - If you end up in a bootloop logcat and dmesg are welcome.

    Troubleshooting

    If you are unable to boot the OS/recovery from EFIDroid, do the following (you do have a working boot.img (from your main OS) and recovery.img (TWRP 3.1.0-0 recommended), right?)
    This assumes you have fastboot properly setup. (Ubuntu: sudo apt-get install android-tools-fastboot - Windows: just google for the binaries)

    OPTION 1:
    1. In EFIDroid, use the volume keys to navigate to "Fastboot", the press the power key to select it.
    2. There should only be one entry in the Fastboot menu. Press the power key to select it.
    3. Connect your phone to your computer with a USB cable. Run the following (on the computer), one line at a time:
      Code:
      fastboot flash boot <path/to/boot.img>
      fastboot flash recovery <path/to/recovery.img>
      fastboot oem exit
    4. In EFIDroid, use the volume keys to navigate to the back button at the top of the screen. Press the power key to select.
    5. Use the volume keys to navigate to "Reboot", then press the power key to select.

    OPTION 2:
    1. Enter LG's Fastboot Mode (Volume Down + Power Off)
    2. Connect your phone to your computer with a USB cable. Run the following (on the computer), one line at a time:
      Code:
      fastboot flash boot <path/to/boot.img>
      fastboot flash recovery <path/to/recovery.img>
      fastboot reboot-bootloader
    3. Use the volume keys to navigate and select "Start" or "Recovery", then press the power key to select.
    You should be able to boot the installed OS/recovery now. If this doesn't work, you can always enter Fastboot Mode (Volume Down + Power Off) and then flash your recovery and boot from there.

    Clarifications
    • When Installing EFIDroid boot and recovery partitions are flashed so you only can enter recovery through EFIDroid to prevent any confusion
    • To enter Recovery just select your recovery on EFIDroid and then select the ROM you want the recovery to apply the .zip you are going to flash (EFIDroid properly patches TWRP ramdisk to affect the desire slot/ROM)

    How does this work?
    Well I'm going to explain it a little:
    • Right now you have your ROM kernel (boot.img) custom or stock ( it don't mind) in your boot partition and your recovery.img (I think TWRP) in your recovery partition. UEFIDroid is a kernel but it is not a linux kernel, it's based on Little Kernel aka LK... Qualcom port LK to Snapdragon chipsets and developed their custom bootloader, then the EFIDroid developer take this and implemented UEFI over the Qualcom's LK port.
    • Whe you install EFIDroid this is what happens:
      -EFIDroid Manager backups your boot.img and recovery.img in /data/media/0/UEFIESP folder
      -EFIDroid Manager flash EFIDroid in your boot and your recovery partitions (the recovery is flashed to prevent you using your recovery without booting it from EFIDroid)
    • Then the next time you boot the stock bootloader aka aboot loads UEFIDroid that is flashed in your boot partition, LK kernel boots and execute UEFI. Then the UEFI looks for the original boot.img (for booting your actual ROM aka Internal) and looks for your actual recovery.img, remember both were saved into /data/media/0/UEFIESP.
      And finally it looks for slots/ROMs in /data/media/0/multiboot (of course these are the slots for multibooting a lot of ROMs).
    • A slot for a ROM is composed by a data folder, a system.img(1GB) and a boot.img (these are the ones used/mounted to boot the ROM you select in multiboot menu) -slots are added from EFIDroid Manager app.
    • In the last step it shows you the Menu to select what you want to boot and it applies the propers patchs to ramdisk to use the correct data folder and system.img, then boot the correct boot.img using libboot (the usually used by android bootloaders)

    Recoveries
    I personally tested EFIDroid with TWRP and TWRP CAF in their 3.1.0.0 versions and they worked great.
    As I stated before, your current recovery is backed up to /data/media/0/partition_recovery.img so if you somehow ended having trouble to boot your recovery, you can boot to your main OS and replace /data/media/0/partition_recovery.img with another recovery (ofc change the name of the new recovery to partition_recovery.img) - YOU NEED A ROOT BROWSER -

    Custom Kernels
    Well custom kernels are known to break things, so to say that a ROM is working I need you to test with the stock kernel that comes with it, then of course if you want to test custom kernels you're welcome and I will update this post with your feedback.
    NOT WORKING CUSTOM KERNELS:
    • ElementalX 7.09 (Don't pass EFIDroid boot Splash Screen) tested by @AndresOrue with DU 11.2 (It should not matter because it's not booting the ROM at all) -may be ramdisk patching problem-
    WORKING CUSTOM KERNELS:
    Credits
    -All credit goes to @m11kkaa for doing all the hard work in developing EFIDroid.
    -@abraha2d for the help with porting and giving permission to use his post for Note 4 as the base for this one!

    Kernel Special Features: UEFI, MultiBoot

    Version Information
    Status: Beta
    Current Beta Version: 0.1
    EFI Specification: 2.60
    Beta Release Date: 2017-03-27

    Created 2017-03-28
    Last Updated 2017-04-17
    5
    Then where do I get the images or a flashable zip if not from the installer? The link on the N5 plasma wiki page for a manual download seems to be broken. Could you give me a link or maybe even the files themselves? Much obliged! (Plus maybe a quick howto in case these aren't your standard twrp flashable zips, might even be worth putting on the OP)
    -First you need to create a new slot and flash a "stripped" AOSP from here http://neon.plasma-mobile.org/devices/hammerhead/hammerhead-20170110-083543.zip in that slot.

    -Then the installer has a fatal bug because "tar" tool is not installed in that "stripped" AOSP - So you need to add it manually:
    -Download tar for arm from here https://mocko.org.uk/projects/armbinaries/gnutar.gz
    -Start TWRP for this new slot and copy tar binary using adb to /system/bin or other folder in $PATH
    -Use adb to chmod 777 the tar bibary you just copied to enable it to be executed, then test it by executing tar (inside adb shell) (you should see tar's help notes)

    -With TWRP booted for this slot and connected to PC run this script from wichever folder you want, it will download plasma rootfs files and hammerhead udev.rules under a "cache" folder and and attempt to install it using adb (ofc you need adb in your $PATH) https://github.com/plasma-phone-packaging/pm-flashtool/blob/master/flash-multirom

    By the way Plasma Mobile is very far from usable... but if you want to test it... good luck :)
    4
    Would it be possible, to multiboot different recoveries with your efidroid?

    Yes, that's a feature that is going to be implemented in the new EFIDroid that m1cha is working on. This new EFIDroid does not relay in LK bootloader and it will take a while until he finish it so he can move to feature requests. Then I'm going to be able to port it for hammerhead.

    For now if you want to try a different recovery you can:
    a- Boot your actual recovery for Internal ROM and flash your new recovery​ from there.

    b-Use a root browser and replace partition_recovery.img in /data/media/0/UEFIESP folder with your new recovery.
    4
    Any Idea for boot Ubuntu With EFIDroid .......???

    It's necessary to analize the way Ubuntu mounts the partitions to create a proper ramdisk patching for ubuntu kernels... for now the EFIDroid's dev is solving more importants things that will let EFIDroid to be ported to many devices, when he finishes that... requests like booting non Android ROMs will be implemented!
    3
    -Initial Release 2017-03-27
    Bugs:
    • ElementalX 7.09 Kernel not booting (may be ramdisk compression incompatibility)
    • Screen blinks when using AROMA Installers in TWRP (no details) - AROMA Installer is usable but in a very annoying way :/
    • Flashable scripts logs are not shown in TWRP console when flashing in a secondary ROM (no details)