[LG Optimus G (International)] PsychoGame:
Hello everybody,

Currently my developing time is limited due to some graduation assignments which I need to finish for my study.

To fix the RIL problems we're having, in my opinion and also some recognized CM developers' opinion, is to get the binary blobs (at least for the RIL) up-to-date with the KK blobs or preferably higher (mako blobs for example).

This opinion is backed by the knowledge that for some reason the mako based geehrc builds related to the gproj build do not experience the RIL/SIM PIN bugs we are experiencing.

The blobs which are currently in use in the Jenkins build process are still from the Jellybean release which the Optimus G was originally released with onto the market.

In my porting process I focused on using MAKO blobs as they still get updated, unlike the official Optimus G blobs.

With a small kernel change I was able to get a lot of mako blobs working already for the E975.

The kernel change which need to be made is the following:

Replace drivers/usb/misc/ks_bridge.c from the gproj kernel source with mako version of ks_bridge: ks_bridge.c

The ks_bridge.c from mako initializes the kernel sockets ks_bridge and efs_bridge which were used in gproj under ks_hsic_bridge and efs_hsic_bridge which are the new sockets used in the mako builds.

To initialize these sockets with the right permissions for android to work with some uevent.geehrc.rc changes are necessary as well.

/dev/ks_bridge 0660 system system
/dev/efs_bridge 0660 system system
[COLOR="Orange"]Needs to be replaced with:[/COLOR]
/dev/ks_hsic_bridge 0660 system system
/dev/efs_hsic_bridge 0660 system system

This change is necessary to be able to use the mako efsks an ks binaries.

When these changes are made the original gee efsks and ks binaries are no longer usable.

This is no problem since the mako ks and efsks also work with the JB RIL I found out.

In the list below I highlight in green which blobs are currently working in the e975 builds I built.

As everybody can see still a lot of files blobs need to be made compatible but at least there is some start.

Most of the blobs which still do not work are directly related to qmuxd

What I know is that the following list of blobs are all RIL related. I left out libril.so and the rild binary because when possible I prefer source build rild and libril.so. For now we don't know if this is possible for as long the remaining blobs still need to be ported

Update 1:

Using Mako blobs apparently was a mistake. A lot of kernel stuff needs to be changed that way. Maybe in the future this will be a project I will look into, but for now I switched over to E975 V20A Kitkat blobs for porting. This porting process still involves the replacement of the file ks_bridge.c from the gproj kernel source with the ks_bridge.c from the V20A kernel source available from LG Opensource Release Center. I updated the list of blobs which are already in my current rom and still prove to deliver a rom with functioning RIL (still sim/pin bug occurring so don't ask for test builds please.). Once the project is finished I make sure it gets pushed into CM github so everybody can enjoy it.

Binaries:

[*]efsks

[*]ks

[*]netmgrd

[*]qcks

qmuxd

[*]rmt_storage

Libraries:

[*]libdiag.so

libDiagService.so

libdsi_netctrl.so

[*]libdsutils.so

[*]libidl.so

[*]libnetmgr.so

libqcci_legacy.so

libqdi.so

libqdp.so

libqmi.so

libqmiservices.so

libqmi_cci.so

libqmi_client_qmux.so

libqmi_common_so.so

libqmi_csi.so

libqmi_csvt_srvc.so

libqmi_encdec.so

libril-qc-qmi-1.so

libril-qcril-hook-oem.so

Hopefully I've given everybody some insight in what I found out and what I've been doing. When somebody still has some questions please don't hesitate to ask, and hopefully some other developers are willing to help me getting the remaining blobs ported over to gproj.

Greetings PsychoGame