[Sprint LG Optimus G] MikeEx:
let's see If I can get this right...

Our phone is a bit confusing because the developers couldn't agree on one name.

The official names from the stock ROM build.prop:

ro.product.model=LG-LS970
ro.product.name=geehrc4g_spr_us
ro.product.device=geehrc4g

Just before Team CodeFire unlocked the many Optimus G variants, the first new name the they came up with for our device was "geebus".

And then many names followed...

Example from CM11 updater script:

assert(getprop("ro.product.device") == "geebus" || getprop("ro.build.product") == "geebus" ||
getprop("ro.product.device") == "geebusc" || getprop("ro.build.product") == "geebusc" ||
getprop("ro.product.device") == "geehrc" || getprop("ro.build.product") == "geehrc" ||
getprop("ro.product.device") == "geehrc4g" || getprop("ro.build.product") == "geehrc4g" ||
getprop("ro.product.device") == "gee_sp" || getprop("ro.build.product") == "gee_sp" ||
getprop("ro.product.device") == "geehrc_sp" || getprop("ro.build.product") == "geehrc_sp" ||
getprop("ro.product.device") == "geehrc4g_spr_us" || getprop("ro.build.product") == "geehrc4g_spr_us" ||
getprop("ro.product.device") == "ls970" || getprop("ro.build.product") == "ls970" ||
getprop("ro.product.device") == "jeebus" || getprop("ro.build.product") == "jeebus" ||
getprop("ro.product.device") == "jeebusc" || getprop("ro.build.product") == "jeebusc"

The confusion behind "gee" and "ls970" is because there are

two

main ANDROID bases for us and they are incompatible with each other.

<History>

While Team CodeFire were rolling with the "geebus" name, early attempts to port AOSP and CyanogenMOD to the many Optimus G variants used the Nexus 4 (Mako) ROM & kernel as a base with optimus g stuff mixed in.

Since we were the odd man out with the 13MP camera, our name had to change to be more specific; back to "geehrc4g" and then "geespr".

The "hybrid Mako" base was a little unstable and camera auto-focus was not working for us.

CyanogenMOD requires that everything works to become OFFICIALLY supported.

The "gproj" team working on OFFICIAL CyanogenMOD status for the international variant (e975) used their own device as a base and was the first to become officially supported by several months.

Team CodeFire followed suit and scratched (but not abandoned) the hybrid mako base and used our own device (ls970) as a starting point for the remaining variants.

We also changed name from "geespr" to "ls970" because CyanogenMOD requires you to use your device's model name (or because the code base change, IDK).

While things became rock stable we were still having the camera auto-focus problem (but was not a stopping issue).

ls970 and e970 became officially supported by CyanogenMOD with the "ls970-common" base.

The e975 variant has the same camera as we do and their auto-focus works.

We moved to the "gproj" base while still keeping a few device specific things separated for the other variants (like camera drivers).

Some developers use the CM/gproj base to port ROMs to our device and usually refer to "ls970"

Some developers also used the hybrid Mako base to port ROMs to our device and and usually refer to "geespr" (and now "gee")

The hybrid Mako base (still not abandoned) has become rock stable and has the auto-focus problem fixed.

More recently the hybrid Mako base developers have unified the code for some of the variants and now we are "gee".

</history>