As its README says, libsamsung-ipc is a free software implementation of the Samsung IPC modem protocol,
found in many Samsung devices.
So for instance if you want to run a free software GNU/Linux or Android distribution on a Samsung device like the Galaxy SIII (GT-I9300),
you will need an implementation of its modem protocol if you want to be able to call, send SMS, connect to cellular networks, etc.
Having a very minimal library like libsamsung-ipc enables to use that protocol with with various distributions, daemons, in order to reduce the amount of duplication of work.
The consequence is that you will also need another daemon (like rild, or oFono) to use the samsung-ipc protocol, and that daemon will needs to have support for libsamsung-ipc.
git: libsamsung-ipc git is hosted in hardware_replicant_libsamsung-ipc on the Replicant git infrastructure.
Mailing list: libsamsung-ipc uses the Replicant's mailing list.
Bug tracking: We currently uses the Replicant bug tracker.
Feel free to also add entries there on issues that affect libsamsung-ipc but not Replicant.
In this case it's a good idea to use "Telephony and mobile data" in the category and also mention that it doesn't affect Replicant (if that's not obvious) and how to reproduce the issue if that's applicable.
IRC: #replicant on Freenode and OFTC
How to contribute patches: See the CONTRIBUTING file in libsamsung-ipc source code.
- It is used in Replicant
- It can probably be used in other Android distributions as well if libsamsung-ril support the Android version or RIL API in uses by other Android versions and distributions.
- In the past, it was also used by SHR and was probably also available in an external Debian repository.
- It was also used with webos-ports for a short moment. They probably reused Samsung's nonfree implementation later on. They probably used libhybris in both cases.
- It builds under Android with the Android.mk build system
- It also builds under GNU/Linux with the autotools build system. This makes it easy to package.
- On Replicant it is used by libsamsung-ril which interfaces with Android's rild.
- In the past it was also used with cornucopia's freesmartphone.org, a middleware written in Vala used to support various hardware features of smartphones and tablet in GNU/Linux. The vapi files were removed as they ended up not being used nor maintained anymore.
- There are out of tree patches for adding support for it in Ofono.
- It supports the following devices which are currently supported by Replicant:
- Galaxy S II (GT-I9100)
- Galaxy S III (GT-I9300)
- Galaxy Note (GT-N7000)
- Galaxy Note II (GT-N7100)
- Galaxy Nexus (GT-I9250)
- Galaxy Tab 2 7.0 GSM (GT-P3100)
- Galaxy Tab 2 10.1 GSM (GT-P5100)
- Galaxy Note 8.0 GSM (GT-N5100)
- It also supports devices that are not supported anymore by Replicant:
- Nexus S (GT-I902x)
- Galaxy S (GT-I9000)
However keep in mind that we might not want to get devices and/or use devices that are give too much control to the modem or don't have removable batteries.
Because of that we might rely on testers to ensure that the code continue to work. This is similar to what Linux does to ensure that the drivers keep working.
As Linux does a pretty good job at keeping the compatibility with older hardware, we can follow their development models to do the same:
- New patches shouldn't break exiting drivers
- New patches shouldn't break compilation
- Anyone can test and report regressions if there are some, so we can fix it with the help of the reporter and/or testers.
- We try to get good enough quality patches and information through the review to be able to maintain that code indefinitely without access to the hardware.
- The protocol implementation is not 100% complete as shown in the status of libsamsung-ril however it's still been used daily by people using Replicant, so if there are issues, they tend to be known. Replicant has a Telephony and mobile data section in its bugreporting system with issues and research topics related to libsamsung-ipc.
- At some point a really problematic bug appeared (some SIM cards were not recognized) but it got eventually fixed and it was in another part of the stack (libsamsung-ril).
- Libsamsung-ril needs to be ported to more recent rild API but the work on that has already started.
- It still depends on modem kernel drivers that are not upstream. Android and GNU/Linux distributions using it were all using derivatives of vendor kernels that had the required modem drivers.