Project

General

Profile

Actions

Wiki » History » Revision 10

« Previous | Revision 10/17 (diff) | Next »
Denis 'GNUtoo' Carikli, 10/05/2020 09:35 PM


Wiki

Introduction

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.

Infrastructure

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.

Distributions

  • 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.

Build systems

  • 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.

Telephony daemons

  • On Replicant it is used by libsamsung-ril which interfaces with Android's rild. Make sure to check which Android versions are supported by libsamsung-ril to see how easy it can be used with various Android distributions other than Replicant.
  • 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.

Devices

  • 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)
We also welcome patches for devices that Replicant doesn't want to support, and we will do our best to keep the code for them working.
However keep in mind that we might not want to get 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:
  • 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.

Limitations

  • 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.

Documentation

The Replicant wiki has currently most of the documentation on libsamsung-ipc. The CellularModem portal references most of of the modem related pages.

Updated by Denis 'GNUtoo' Carikli over 3 years ago · 10 revisions

Also available in: PDF HTML TXT