If you want a ZVA radio on an AOSP ROM, you can use the latest AOSP builds of dr87's kernel or Furnace to work.
No more downgrading radio to ZV8 for AOSP ROMs
WARNING: If you don't understand adb or root, then you shouldn't even be here, you probably shouldn't have even rooted. Make sure you COMPLETELY understand this post before doing ANYTHING. I'm using caps like a wild maniac because if you do something out of order or you do something wrong you WILL brick your device, and you have to use a .tot to bring yourself back to stock. The kind of brick you could create here kills your boot and recovery partitions. Be careful.
LS980ZV7 (Initial Release) LS980ZV8 (Security Update) LS980ZVA (Sprint Spark and loki-killer)
We are allowed to use custom boot images (ROMs + Kernels) and recoveries because of loki. Loki is a program that patches our "Unoffical" boot or recovery images before they are installed, this is usually done in the .zip during flash, which is why most people don't worry about it.
LS980ZVA (Spark Update)
This update does 2 major things, patch loki, and add tri-band capabilities.
If you take the update, you will NOT loose the ability to ever use a custom ROM. We just need to downgrade the "aboot" to the exploitable ZV7 aboot.
You can find that "aboot" here -> zv7-aboot
After rooting, (use ioroot21) you can put the zv7-aboot.img on your sdcard, and open terminal emulator. Issue this command:
dd if=/path/to/your/zv7-aboot.img of=/dev/block/platform/msm_sdcc.1/by-name/aboot
After you have downgraded your aboot, you will need a custom recovery. Download Flashify off the Google Play market (or use FreeGee to make the process faster) and place this file on your sdcard. twrp_126.96.36.199_loki-ls980.img
Open flashify, select recovery image, and find that .img, I have already loki'd this image, so you don't need to worry about it not working. Just be sure that you have downgraded your aboot first!
At the moment, the ZVA radio that came with your ota has completely broken compatability with all other non-ZVA ROMs, so if you want to install CM/PA/AOKP/DerpG2/OptimusDE, you will need to downgrade your radio to non-Spark ZV8/7, just flash this file in your newly installed recovery.
Now you're safe to flash any ROM!
If you want to try the new radio (Spark), there's some things you need to be aware of, (when available) flashing youdug's stock ZVA ROM will NOT give you spark out of the box. You will need the new ZVA radio for this. You can find that here
You can only use twrp to install this radio. And it will ONLY work on ZVA ROMS. Do NOT install this radio over CM/PA, you will brick.
After you have verified that you are running a ZVA ROM, you have flashed the radio, and you notice no errors, you may boot.
Notice, your bootloader is now loki-proof, and your recovery will no longer work. if you wan't to go back to AOSP or any other non-ZVA ROM, you MUST first flash the ZV8 Radio so that your ROM will boot.
Also, do not flash a ZV8 radio over a ZVA radio if you have already booted into a ZVA ROM. Only install the ZV8 radio before flashing a ZVA ROM or before switching to a non-ZVA ROM.
Devs working on the ZVA update: If you're including a custom kernel that modify's the official ZVA boot.img, you will need to include a few lines in your updater-script that patches the ZV7 aboot over the ZVA aboot. Then you can add the lines to loki your boot.img. We have to assume that the user is flashing your ROM on either radio. If you don't patch the aboot, the ZVA radio that the user "may" flash will not pass the boot.img from your ROM and the boot will fail, followed by the custom recovery. If you aren't careful, you WILL brick users.
Again, do NOT flash the radio before flashing the ZVA ROM, you WILL brick if you try to boot. Flash the ZVA ROM, verify that it boots, then flash the ZVA radio. If you want to go back to AOSP, follow the Spark guide above.
Thanks for help figuring this one out to @autoprime @garwynn @Shelnutt2 @Dougie2187