libsamsung-ipc is a free implementation of the protocol to speak with modems found in most Samsung devices. It is the low-level library used to communicate with the modem and needs an upper-layer (RIL) to interface with the system.
libsamsung-ipc is shared between SHR and Replicant projects. It's used in both for the Nexus S.
Source code is available under the GPLv3+ at: https://github.com/morphis/libsamsung-ipc (master branch).
ipc-modemctrl is a deprecated tool that was used at the beginning of the work for talking to the nexus S modem. It implemented basic functionalities (mostly SIM unlocking and network registration).
Usage:
usage: ipc-modemctrl <command> commands: start bootstrap modem and start read loop power-on power on the modem power-off power off the modem arguments: --debug enable debug messages --pin=[PIN] provide SIM card PIN
Please run ipc-modemctrl like this (from host pc):
assuming your SIM PIN is 1234. If you don't have any SIM pin, don't pass the --pin argument. It should go like this: <pre> [I] Got SIM PIN! r0 Starting modem on FMT client r1 Starting modem_read_loop on FMT client r2 Phone is powered up (LPM)! [I] SIM card found [I] SIM is initializing r3 SIM init complete r4 Modem is ready, requesting normal power mode [I] SIM card found [I] SIM is initializing r3 SIM init complete r5 Modem is fully ready [I] Registered with network successfully! r6 Registered with network! Got PLMN (Mobile Network Code): '20810' [I] Registered with network successfully! r6 Registered with network! Got PLMN (Mobile Network Code): '20810' [I] Registered with network successfully! [I] Registered with network successfully! r6 Registered with network! Got PLMN (Mobile Network Code): '20810' [I] SIM Phone Book init complete </pre> <pre> h2. Status We were able to make the following work: * SMS (Rx/Tx) * Call (Rx/Tx) BUT NO AUDIO YET * GPRS * SIM I/O (stored contacts, etc) * SIM PIN unlocking