Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,809,576 Members 38,235 Now Online
XDA Developers Android and Mobile Development Forum

[Q] Gee vs Ls970

Tip us?
 
elvyrorie
Old
#1  
Member - OP
Thanks Meter 4
Posts: 50
Join Date: Oct 2010
Default [Q] Gee vs Ls970

This may be a dumb question bit I can't seen to find the answer. I've seen gee roms and ls970 roms. What's the difference between the two? Why should I choose one over the other?

Sent from my LG-LS970 using Tapatalk
 
PartimusPrime
Old
(Last edited by PartimusPrime; 4th March 2014 at 05:27 AM.)
#2  
PartimusPrime's Avatar
Recognized Themer
Thanks Meter 2,218
Posts: 2,391
Join Date: Apr 2012
Location: San Antonio

 
DONATE TO ME
Quote:
Originally Posted by spleef View Post
I can try ...k so the ls970 is official cm sources shelnutt2 put together based off the gproj is usable only on the sprint lgog

The geehrc (international lgog) and the geespr (sprint lgog) are based in the mako and put together by xboxfanj... currently x has combined the two sources (geehrc and geespr) into one source (gee) for both making the one zip built with gee flashable on both variants...

The whole cwm twrp issues are the differences n each sources and or ROMs way to build the updater script...

And yes some roms play nicer with cm sources than they do aosp sources and vice cersa.. so saying that cm is well obviously cm based sources where as xboxfanj sources are closer to or are aosp

Hope I'm at least somewhat making sense

Sent from my LG-LS970 using XDA Premium 4 mobile app

Quote:
Originally Posted by xboxfanj View Post
LS970 ROMs are built from CM's Nexus 4 4.2.2 hybrid with stock 4.1.2.

GEE/SPR/HRC are built from the Nexus 4 4.4.2 source (more up to date and optimized) with only changes for our hardware such as NFC.

geespr is sprint only, geehrc is international only, and gee combines the two so both devices can run the same build. Gee is the future of mako-based ROMs and eventually, there won't be any geespr or geehrc roms. Those are being phased out.
Hope this helps...its from the Liquid Smooth thread.

Sent from my Optimus G using xda app-developers app
If you like my work please consider buying me a beer PayPal
Help me increase my dropbox space

Visit our webpage: GFX Bandits
The Following User Says Thank You to PartimusPrime For This Useful Post: [ Click to Expand ]
 
MikeEx
Old
(Last edited by MikeEx; 4th March 2014 at 08:02 AM.)
#3  
MikeEx's Avatar
Senior Member
Thanks Meter 204
Posts: 375
Join Date: Nov 2008
Quote:
Originally Posted by elvyrorie View Post
This may be a dumb question bit I can't seen to find the answer. I've seen gee roms and ls970 roms. What's the difference between the two? Why should I choose one over the other?

Sent from my LG-LS970 using Tapatalk
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:
Code:
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:
Code:
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>
Sprint Optimus G - UNOFFICIAL CM11 - gee base | Here are my contributions to the LG Optimus G
Epic 4G Slide - CM11
2x HP Touchpad - CM9
The Following 3 Users Say Thank You to MikeEx For This Useful Post: [ Click to Expand ]
 
elvyrorie
Old
#4  
Member - OP
Thanks Meter 4
Posts: 50
Join Date: Oct 2010
So which is generally the more stable of the two?

Sent from my LG-LS970 using Tapatalk
 
PartimusPrime
Old
#5  
PartimusPrime's Avatar
Recognized Themer
Thanks Meter 2,218
Posts: 2,391
Join Date: Apr 2012
Location: San Antonio

 
DONATE TO ME
Quote:
Originally Posted by elvyrorie View Post
So which is generally the more stable of the two?

Sent from my LG-LS970 using Tapatalk
I've read it depends on your phone lol. Some have better experience with gproj based ROMs others have better experience with Mako based ROMs...

Sent from my Optimus G using xda app-developers app
If you like my work please consider buying me a beer PayPal
Help me increase my dropbox space

Visit our webpage: GFX Bandits
 
xboxfanj
Old
(Last edited by xboxfanj; 6th March 2014 at 12:35 AM.)
#6  
xboxfanj's Avatar
Recognized Developer
Thanks Meter 6,439
Posts: 6,965
Join Date: Apr 2011
Location: Saint Louis, Mizzou

 
DONATE TO ME
Quote:
Originally Posted by MikeEx View Post
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:
Code:
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:
Code:
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>
Mostly correct, but there's a couple things I'd like to point out. #1: Geebus was not used on ROMs; it was only used by Tyler on the first recoveries. Also, Team Codefire is really only relevant for the recovery and bootloader unlock; Device sources were made primarily by synergy, Shelnutt2, rlasalle15, houst0nn, chadouming, and I. The first ROMs based on the stock kernel were geehrc_sp or geehrc4g_spr_us. Soon after this, the Canadians (chadouming, Houst0nn, and Thracky) found that mako kernels booted and worked fairly well on their phones, but along with dvhexer, they had to change some things for our device, such as NFC. Unfortunately for the US variants, our firmware was too different for this to work. Using Canadian firmware did work, but flashing partitions isn't always the safest. Luckily, LG's JB firmware fixed this issue and allowed us to use mako-based kernels. Everything was going well, until we found that people had EFS issues. Seth made a script that would backup EFS and allow you to restore and also created a workaround telephony framework. After that, the only major issue was autofocus. At this point, there were four device repos: Canada, Sprint, AT&T, and International). Meanwhile, Ricardo at CM created a hybrid of stock and the current mako sources (4.2) for the International variant (e975). A couple months later, Seth rebased to his sources, still 4 device sources, but this time named based on model numbers (e973, e970, e975, and ls970) Around this time, I created TeamPlaceholder, with houst0nn, chadouming, and bbelos to create a kernel and device sources based on the latest Qualcomm CodeAurora jb_2.5 sources. Performance was awesome, however, we never got 13MP camera to work, so none of these builds were widely released, however, this is where I created the names for geeb and geespr, mainly out of laziness because having to type geehrc4g_spr_us every time I wanted to build was a pain. As a team, we were also able to merge the AT&T and Canadian variants by enabling SD support for both, since it doesn't negatively impact anything and is the only difference, is just less general maintenance. and meant we only needed to make 3 builds. Eventually, Google also rebased to jb_2.5 for their 4.3 mako kernel, so we scrapped TPH and worked on that, adding only the necessary hardware specific changes from stock (as opposed to all of LG's stock changes, which GPROJ did). Performance was just as good as TPH, everything worked (except autofocus, which was fixed a few months ago by faust93), all was well. Throughout this time, we have updated to the most recent AOSP, since it is fairly easy because we did not deviate much from it, however, gproj did not rebase to jb_2.5 or the AOSP 4.3 kernel, so they are a bit behind us in terms of optimizations. Google did a much better job on the 4.3 kernel than 4.2, so as such, mako-based ROMs should have a bit better performance and are generally more up to date. KitKat was fairly easy to merge into our sources, so we did so fairly quickly. At this point, Chadouming, houst0nn, and I maintained mako based sources, however, both of them jumped ship, leaving me in charge of most source maintenance. In this time, I became the official Vanir maintainer and have made some kernels. Eventually, I noticed that if the Nexus 5 could run GSM or CDMA on the same sources, we could too, so a month ago, I decided to merge our device and the International variant (geehrc) into one device: gee, using the Nexus 5 sources as reference, meaning that there are only two device sources now on our device: gee and geeb, so all variants can run one of two builds This means that it takes no extra work for someone on AT&T to maintain a ROM for the Canadian variant and vice-versa, same goes for the International and Sprint variants. It has led to great collaboration between the variants and all of you have benefited.

TL;DR: There are two different paths you can take: One closer to stock, but based on an older Nexus 4 4.2 kernel (Gproj) or one with the latest and greatest Nexus 4 4.4.2 sources with only the bare essentials of stock (camera, NFC, etc.)

If you choose stock and Nexus 4 4.2 based, you pick the ls970 ROM.

If you choose Nexus 4 4.4.2 based, you pick the gee ROM.

EDIT: One thing to note: This is the history of the Sprint variant; there are other great devs for the AT&T and International variants, such as arcardinal and dvhexer, but they did not work across all variants, so it's not quite as relevant to us.


If you need help with anything or just wanna chat, feel free to GTalk me at xboxlover360@gmail.com or PM me

The Following 5 Users Say Thank You to xboxfanj For This Useful Post: [ Click to Expand ]
 
PartimusPrime
Old
#7  
PartimusPrime's Avatar
Recognized Themer
Thanks Meter 2,218
Posts: 2,391
Join Date: Apr 2012
Location: San Antonio

 
DONATE TO ME
@xboxfanj awesome explanation bro!

Sent from my LG-LS970 using xda app-developers app
If you like my work please consider buying me a beer PayPal
Help me increase my dropbox space

Visit our webpage: GFX Bandits

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes