[Sprint Samsung Galaxy Note II] AlgebraicMirror:
Ok, finally got everything working after spending way too many hours on it (why is putting a new ROM on a phone always like Voodoo?).

Here are the list of steps (written for Windows) for anyone having problems with either an unending boot screen or constant crashing after installing gapps (errors like "Unfortunately clock has stopped", "Unfortunately...(insert google app) has stopped", etc).

Prerequisites:

1. Latest version of CyanogenMod 12.1 for the Samsung Galaxy Note II Sprint (L900). I prefer getting the latest stable version, but you might get away with the latest nightly. My exact file was "cm-12.1-20151027-NIGHTLY-l900-recovery.img".

2. Get a late model version of TWRP from the TWRP site. This is critical, because earlier versions like 2.6.3 are what cause your gapps to blow up. I know, it's crazy the a phone recovery is to blame, but the root cause is that SELinux blocks the gapps from their files and causes them to crash. Newer versions of TWRP understand how to correctly set permissions or SELinux policies and they will cure that crashing. The exact version I used was twrp-2.8.6.0-l900.img.tar (2.8.7 is out, but it showed an error mesage in the log about an E:/sbin/runatboot.sh script failing with ERROR=1, and not knowing if that was a problem I downgraded one version, where the problem doesn't exist).

3. Get one of the latest versions of the Windows Desktop version of ODIN for flashing your phone. This will also be handy to have in case you run into a problem, because you can just flash it again with something else to unbrick it. I used "Odin3 v3.10.7.exe" which I found on odindownload.com.

4. Go to the OpenGapps site to get your google apps. In the download section, it will ask you for your platform, Android, and variant. Pick ARM for platform (not ARM64, because the Note II does not have a 64 bit CPU), "5.1" for Android (because CyanogenMod 12.1 is using Android 5.1 as a base), and pick whatever you want for the variant. I personally picked "stock", because I wanted the full gapps with everything you would get on a Nexus phone. Also, after downloading that, grab the .md5 link as well, which will help your phone check to make sure your download isn't corrupt. The files I ended up with were: "open_gapps-arm-5.1-stock-20151028.zip" and "open_gapps-arm-5.1-stock-20151028.zip.md5".

5. Go to rwilco12's site (www.rwilco12.com) and from the download tab at the top, navigate to the Note II, Sprint version, and then the modem folder. This is also a critical thing to have, because TWRP (or possibly ODIN) will blow away your modem during this process, which is the root cause of the infinite boot loop. You will need to have the modem available to flash. I grabbed the last modem version Samsung released, which was under the zip directory and was called "SPH-L900_NE2_Modem.zip".

6. Go to Samsung's website, find the page for the Sprint Note II product and in the download section download and install the latest version of the Samsung USB drivers. And it's optional, but you might want to also install download and install Samsung Kies since it can help you backup stuff and possibly help restore your phone.

7. USB cable

8. Optional: I highly recommend you have an SD card to put in your phone. This way, in case you end up needing (or wanting) to wipe your phone's internal memory, you have a safe place where these files will be unaffected. It's also a good place to put backups and keep them from being over-ridden.

With these files in hand, you are now ready to start.

Procedure:

1A. Back up your apps/data BEFORE you begin. Assume nothing will survive this procedure to be on the safe side. Use google's cloud service to back up your apps to your gmail account, or use Titanium backup, Kies, or your other backup tools of choice, and copy them off (if applicable) to your computer. You may also want to keep a backup on your SD card locally to make it easy to get to if you want to revert. Also, make sure you get pictures and videos and other irreplaceable stuff off... it's just not worth taking chances.

1B. Copy all the prerequisite files except the TWRP (which will be used on Windows only with ODIN) onto your phone's external SD card. I usually put them in a folder called "zips" at the root of the card to make them easy to find. To recap, these should include the modem zip file, the CyanogenMod zip file, and the gapps zip and md5 files.

2. Install the Samsung USB drivers on Windows if you haven't already.

3. Power down your phone.

4. Open ODIN on Windows

5. Put your phone in download mode by holding down "down volume"+"home"+"power" buttons simultaneously until you get there. You will need to use the "up volume" button on the main menu in order to tell the phone you really want to enter download mode.

6. Once in download mode, connect your phone to your computer with the USB cable. ODIN should detect your phone and say "added" and tell you which com port you are on.

7. Click on the options tab in ODIN and uncheck automatic reboot (otherwise, your phone will reboot the instant you flash it, and the Samsung stock firmware will start booting and replace your recovery with the stock recovery, and you'll have to redo this step).

8. Click the button labeled "AP" (it's the second button down under the "Files [download]" section of the ODIN screen; I've occasionally seen modified versions of ODIN call is something different, like "PAP"). Your Windows Explorer file browser will open. Find your TWRP file, which should end with .img.tar, and select it.

9. Click "Start" in ODIN. Once it finishes flashing and says in the output that it is done, unplug your phone and take the battery out to power it down.

10. Put the battery back in and the case on, but DON'T POWER IT UP YET! (you don't want the stock rom to start booting and undo what you just did).

11. Hold down the "up volume"+"home"+"power" to boot into TWRP recovery mode.

12. Use TWRPs backup menu to do another full backup of your phone so that you can revert to stock if necessary. This will be a better backup than anything you will get from an Android app, because with the main Android system not running it can grab everything in every partition. Make sure that is saved to your external SD card and optionally for safety you can then copy it from the card to your computer.

13. Next in TWRP, go to the wipe section and tell it to do a factory reset. This will wipe out all your apps and settings, cache, Dalvik cache, etc, but should leave the data area with things like pictures alone. But you should have backed up before doing this just in case... you've been warned!

14. Now go to the install section of TWRP. Switch to your external SD card where you put the files, and navigate to the zips folder you created earlier. Add these zips in this order to the list of zips you will have TWRP flash: CM 12.1, gapps, and lastly the modem.

15. Now use the slider to tell TWRP to start flashing them, which it will do in order you added them above. This will take a while to complete.

16. Once finished, click the reboot button to reboot the system.

At this point, you will see the CyanogenMod boot splash screen, and it might take a minute or two, but you should next start seeing a message from Android saying it is optimizing apps. If you get that far, you've avoided the boot loop. And since you used a recent version of TWRP, your SELinux policies should have been updated correctly, so you should not be greeted by crashing applications when you get to the welcome screen either.

Good luck, and I hope this helps!