[Droid Eris Android Development] wasupwithuman:
source: xda developer wiki :D

What is the SPL? (Second Program Loader)

The SPL is mainly a bootloader which allows a ROM to be flashed onto your device. As has been uncovered recently (or known to the more astute longer) the SPL does more than just load and boot the ROM it sets various flags which can control the operation of the OS on the device. It also controls some operations between the OS and the device's hardware. SPLs come paired with shipped (or leaked) official ROMs and are meant to match the ROMs operation. Therefore, with each new ROM release there is likely to be a new SPL. As you read on you will learn more about the SPL...

What types of SPLs are there?

Basically there are two main types of SPLs. Hard and Soft.

A Hard SPL is one that is permanently flashed in your device memory and will boot up every time your device boots. To get into your SPL or Bootloader on the Kaiser/Tilt you want to hold down the camera button (all the way) and then soft-reset the phone (or turn it on if it was off). You will then see a tri-color screen known as the Bootloader (a.k.a. the SPL). The SPL that is shipped with your device, or upgraded from an official ROM is a Hard SPL. In short, if it is loaded into your device's firmware, and survives a hard-reset it is considered Hard.

A Soft SPL is a stand alone .exe that is run on your device from within the OS. It basically changes your OS from running Windows, to initializing the boot loader. A Soft SPL is only loaded into RAM temporarily and will not survive a hard-reset. To understand more about these, read on...

Why is there more than one type of SPL?

The reason there are the two types of SPLs is to allow flashing of ROMs that are not from the vendor or region your phone is from. Most notably, they can allow you to use "cooked" ROMS.

There are actually two types of HardSPLs:

The SPLs that are loaded on your phone by your vendor's ROM. These are the "default" SPLs. You can most closely associate them with the "BIOS" that is shipped with a PC. The limitation of these SPLs is as I state above; they won't let you load ROMs from other people/vendors. In addition when you flash a newer ROM from your vendor your SPL can get overwritten on your device (in essence, the vendor is doing a "firmware" upgrade to your "BIOS"). The second type of HardSPL is truly HARD. These are the "cooked" SPLs that have been provided to us by OliPof and JockyW. These are special hacked versions of the original vendor SPLs that allow for two things: They bypass the vendor checks on ROMs, allowing you to load any ROM onto your device. This is a necessity if you want to run a cooked ROM. They disable overwrite of the current SPL. This is why I say they are truly HARD. So, even if your ROM comes with a new SPL, it won't overwrite your HardSPL. This is both a blessing and a curse as we will see later on. Why then Soft SPLs?

Soft SPLs are really only around because of the issue mentioned above with the HardSPLs. What if you need to flash a new SPL? HardSPL disables this as I mention. So, SoftSPLs were made to allow you to temporarily load a SPL/Bootloaded from an executable on your device to change your SPL. These SoftSPLs have the overwrite enabled which makes this possible.

NOTE: You should never use a SoftSPL to flash a full ROM to your device. You should only use them to flash a new SPL and once the new SPL is on your device, then flash the ROM!

There are two main SoftSPLs you will find. SSPL-KAIS is a SoftSPL written specifically for the Kaiser and JumpSPL which is a generic SoftSPL to use on multiple devices. For most people SSPL-KAIS will work however some will need to use JumpSPL. For more info, read on....

Why would I want to change my SPL?

As mentioned above if you want to run a "cooked" ROM on your device then you will need to load an SPL that allows that ROM to be loaded. You have two choices: Load one of the hacked HardSPLs (permanently) on your phone to allow you to flash any ROM Using a Soft SPL (temporarily), load an SPL onto your phone (permanently)that matches the ROM you want to load. Then load your ROM. NOTE: By permanently I mean persistent, in that it is "flashed" on your device and will survive even a hard reset. Temporarily means it is only loaded into RAM.

Choice one is usually easier, but it has some drawbacks that we will cover later. Choice two is generally the best, but it is more time consuming. Not only do you need to flash a different SPL with each ROM, but you also need to extract this SPL from the ROM first and load it separately. Only after it is loaded can you then flash the full ROM. In all honestly very few people actually use this technique, but I believe it is becoming more prevalent. I will provide/link to information on how to extract an SPL later on in this thread.

DOUBLE NOTE: You should never use a SoftSPL to flash a full ROM to your device. You should only use them to flash a new SPL and once the new SPL is on your device, then flash the ROM! This is why you need to extract the SPL and flash it first and then once it is "HARD" on your device you can flash the ROM.

Why would I want to change my SPL back after I HardSPL?

Up until a week ago the answer you would have probably gotten is "you wouldn't." However with the release of the Official 6.1 HTC ROM there has been alot of speculation, and some real data inferring that for best performance of a ROM you should use the SPL that came with a ROM or at the very least (to put it another way) you should use a newer SPL with a newer ROM.

There is no definitive proof or specific results that can show you how one SPL will make your device perform over another. I believe I have conducted the most "scientific" experiments on this to date which you can find here. However which SPL you use is up to you based on how you feel it makes the device operate. I recommend however that you use either one of the HardSPLs or the SPL that came with your ROM. It is not recommended (at this point) to run your ROM with an SPL that is not matched to it.