 <p>I'm researching this subject intensively since Aug-2014. Firstly, I hope that you're familiar with some telecom knowledge and Android Open Source Project (AOSP). Well, based on my researches, I state that:</p> <ol> <li>By looking at AOSP internal native classes, it seems that Android gives SignalStrength values by parceling returned values from <strong>AT+CSQ</strong> command (please, check AOSP native class <strong>reference-ril.c</strong>) over the modem. And only from it. The problem is that this command only gives the signal quality coupled with block error rate (BLER), and do not inform anything about other incoming signals; In LTE modem it seems to be OK in some devices, but when you change to UMTS network, things become unclear/inconsistent;</li> <li>You may calculate incoming interference (SNR and others) by using some derivations from telecom formulas (relating RSSI, RSCP, EcNo, and so on...) by yourself with received signal strengths from other cells, or with the <strong>AT+CGREG</strong> and <strong>AT+CREG</strong> (again, please check <strong>reference-ril.c</strong> class).;</li> <li>I digged all AOSP internal classes, tracing and diagraming method calls related with telephony. I've looked all from the SDK layer (where we use <strong>TelephonyManager</strong> and <strong>PhoneStateListener</strong> API classes), over to the native radio interface layers classes written in c/c++. In any moment I have found a SNQ calculation truly based in other cells, but only passed as a value obtained from the modem with <strong>AT+CSQ</strong> (this command gives only signal quality and BLER). It sounds strange for me, because interference is a value calculated with other received signals, inclusively those ones that are not from GSM. So, for me, the incoming SNR got from Android API is somewhat lame or incomplete.</li> </ol> <p>Based on the above, I suppose that:</p> <ol> <li>Google is not 3GPP. And 3GPP is not Google. Android is a huge and complex project with more than 12 million lines of code. It is very plausible that communication/theoretical informations may be missed among Android and telecom;</li> <li>In particular I'm searching for CQI, and I suspect that CQI is in the context of LQR (Link Quality Report), calculated in the L2 PPP (Point-to-Point Protocol);</li> <li>The subject of this thread is really problematic. There will be no holy grail, because different devices owns different (maybe closed) hardware drivers. We'll need to support different softwares for each different device. Maybe, you'll need to recompile an entire Android ROM for each device, if you need to have a correct value for all device.</li> </ol> <p>I hope that it brings some light to you. If you have any additional information, please share it here.</p>