[Android Development on Bada] BenzoX:
I worked a bit on FOTA bootloader, and i'd like to share some of my work.

Few words about Fota in general

I think lot of people here don't understand fully how Fota work, and this may prevent a lot of questions, please read it.

We use Fota in Badadroid project as a bootloader, it's the piece of code loading modem and android kernel in RAM, and starting android kernel.

Fota decide what key combination does, which system is to be launched if no key are pressed, and where kernel file is searched.

Fota doesn't care if a kernel is Nand or SD or Loop. It just search for a file with a certain name, load it and launch the execution of its code.

This Fota is compatible with ALL roms and ALL versions (nand, SD, loop).

About keys : power key isn't important for Fota, the only function power key have is to power on the device. Once device is powered on (you can use power key but also plug charger or use reboot function), fota will check for other keys. So if i write "Recovery mode : home key", you'll have to press home key and then manage to power on the device, it won't boot if you just press home key.

About this Fota

This Fota is able to load two different kernel. It can be used to load two rom (one Nand and one SD, one Loop and one SD) or if you have a "test" kernel.

If you have only one rom or one kernel, no problem, it will work the same, all the stuff related to second kernel won't work, that's all.

This Fota doesn't allow two Nand rom or two SD rom.

This Fota provide a default "Silent boot" displaying default Bada bootscreen (no more ugly ASCII), however boot is slow so it will be displayed for maybe 15 seconds. If there is an error with kernel, ugly ASCII will appear and tell you there is something wrong.

This Fota also provide an "interactive" mode (or Noob mode). If you press any keys during boot (home, call or volume), it will boot in interactive mode. It's simple and you'll understand fast how it work. Control are vol + and vol - and home key to select.

It also support usual key combination, if you press keys to boot recovery, and when white screen appear you stop pressing, it will boot "interactive mode" and after few seconds boot recovery IF no keys are pressed. If you press sth at this moment, interactive mode will be active.

Test it, you'll understand.

This Fota also boot faster in recovery (no Modem init, who need modem in recovery ?)

However, battery reading won't work anymore in recovery because of that, so don't spend hours in recovery mode.

README

First kernel : boot.img on SDcard

Second kernel : boot_2.img on SDcard

Boot 1st kernel : default

Boot recovery 1st kernel : vol up

Boot 2nd kernel : home

Boot recovery 2nd kernel : vol up + home

Boot bada : call

Yeah, you read well, kernel must be named boot.img and not zImage.

If your rom came with a file named zImage, just rename it boot.img it will work the same. I could have chosen to load a file named MyLittleKernel. Name doesn't matter, only file content is important.

And all the same, rename the second kernel (for your secondary rom, test kernel...) boot_2.img.

All the kernels must be placed on SDCARD

REQUIREMENTS

Bada 2.0

Android Bootfiles (if you have an android rom on your phone, you have it, else, see in badadroid thread to download it.

Bugs

Bada boot doesn't work in interactive mode, it's stuck after Bada bootanimation, maybe someone know why.

Just boot with call key pressed to boot bada.

Please report if there is any other bugs.

Thanks

Big thanks to all Fota contributors, Rebellos, Mijoma, Tigrouzen, ihavenick, Volk204 and all the others i forgot

Sources

My github here, see branch sd.

Downloads

Fixed dual boot broken by little mistake (20/07/2014) :

Mega (s8500 & s8530)

Alternative links :Google Drive

Just flash it with Multiloader