[Samsung Galaxy Nexus] mrCrumbSnatcher:
Hello All,

About to be first time rooter and want to ensure I have a complete understanding of how things work before I fully commit. I’ve been trying to piece together information from various threads and I think I have a basic understanding of how things work. Can you please help me verify?

1.	When you flash a ROM, the ROM automatically comes with a kernel. The kernel can be stock or custom, but regardless, all ROMS have a kernel automatically bundled when you flash the ROM. Correct?

2.	Once you flash a new ROM and the corresponding kernel it comes with, you can swap out the kernel with something else, as long as it says it’s compatible with that ROM version. For instance, if the ROM says it’s built from 4.0.4, as long as the kernel you want to swap says that it’s compatible with anything 4.0.4, then you are good to go. Correct?

3.	Radios need to be updated manually. Most ROMs and kernels do not update the Radio in most cases (or do not have radios bundled)…. With one of the exceptions being the Official Google ROMs. If I were to flash a leaked Stock 4.0.4 OTA Verizon ROM, I would actually get a new ROM, Kernel, and Radio. Correct? If I were to flash AKOP (or another popular ROM), I would get the ROM, bundled kernel, but NO radio. Correct?

4.	A Nandroid backup backs up the ROM, Kernel, all applications installed, app user configurations/preferences…… basically everything EXCEPT the radio. If I were to restore a Nandroid backup, there is no need to restore apps and reconfigure apps/preferences…. It’s a snap shot in time (or whenever the last backup was made). Correct?

5.	Using Titanium to batch backup apps/preferences is really only necessary when you want to flash a new completely different ROM and want to restore your apps from a previous completely different ROM. Correct?

6. Let's say I'm rooted and unlocked boot loader and on a custom ROM..... Verizon pushes out a new OTA update Stock ROM (let's say 4.0.4). What do I need to do? Restore 4.0.2 Stock from Google's developer website? If I were to restore the Google developer Website 4.0.2 version, my assumption is that I lose root (boot loader still remains unlocked). Do I need to re-lock the boot loader for Verizon OTA updates?

7. When I install a new ROM, do I loose root unless the ROM specifically says it comes with Root?

****** additional questions/verification added after sean and artvandelay responded ***************

8.	Nandroid backups do not back up the SD card folder. This should be done manually (copy directory to Computer every once in a while). Correct?

9.	When I installed space heavy games, I should have installed the game data portion (when it prompted to store at App level or SD Card Level) in the SD Card directory. Now if I Nandroid, It will be unnecessarily larger because it’s taking the game data stored at the app layer correct?

10.	When you flash new ROMs or restore Nandroid backups, the sdcard directory remains unaffected. Correct?

11.	Only when the boot loader is unlocked/re-locked is when the SD Card directory gets wiped. Correct?

12.	Let’s say I need to restore to factory (back to stock – original ROM, Kernel and Radio, no traces of root, locked boot loader, etc.)…. All I do is go to Google’s DEV download ROM site, download the latest official ROM. It will restore the ROM/kernel combination and the original radio associated with the stock ROM, gets rid of all traces of root (since stock does not have root access). I will have to manually re-lock the boot loader (which will in turn wipe the SD Card directory). Correct?

13. Can someone shed some light on "GAPPS". I realize they are a bundle of Google Apps, but once I install, will I still get updates from Google Play when updates occur? Do GAPPS just save time from having to manually download? If I restore from titanium backup (after ROM and GAPP install), I need to ensure that I do not restore any app that falls into the GAPP category correct?

So did I pass? Is my understanding there? Am I missing any essential basics? Thank you all for your input!