Writing a GSM emulator for use with Android
===

For some work I'm doing, I want to have an emulated GSM modem which will communicate with an Android-x86 virtual machine over a Unix socket. The VM should see the emulator as a real modem and use it to send SMS (as the first pass of functionality).

So far, I've put something together which handles some AT commands and just replies "OK" to all the rest. For some commands, like "AT+CRSM", I just have a table of responses gathered from running the official Android emulator and looking at the radio log. For others, I maintain some state and construct answers; those commands include:

    CFUN?
    CPIN?
    CGREG?
    CGREG?
    COPS?
    CGREG=
    CREG=
    CPIN=
    COPS=
    CRSM=
    CSMS=
    CGSN
    CIMI
    CSQ

Android will boot, and send commands to my emulated modem, which answers, however it doesn't seem to be fully functional. Android doesn't detect any radio signal strength, for instance, just showing an "x" in the signal bar.

Does anyone know of a similar project, or just what AT commands are *absolutely* necessary to get some basic functionality?