Project

General

Profile

Samsung-ipc » History » Version 4

Denis 'GNUtoo' Carikli, 02/15/2020 12:49 AM

1 1 Denis 'GNUtoo' Carikli
h1. Samsung-ipc
2
3 3 Denis 'GNUtoo' Carikli
h2. Protocol
4
5
Many smartphones and tablets made by Samsung uses the samsung-ipc.
6
7
At least the following devices use that protocol:
8
* Galaxy S II (GT-I9100)
9
* Galaxy S III (GT-I9300)
10
* Galaxy Note (GT-N7000)
11
* Galaxy Note II (GT-N7100)
12
* Galaxy Nexus (GT-I9250)
13
* Galaxy Tab 2 7.0 GSM (GT-P3100)
14
* Galaxy Tab 2 10.1 GSM (GT-P5100)
15
* Galaxy Note 8.0 GSM (GT-N5100)
16
17
But some are known to use a different protocol like:
18
* Galaxy S III 4G (GT-I9305)
19
* Galaxy Note II 4G (GT-N7105)
20
21
h2. Replicant implementation
22
23
The free software implementation is very flexible.
24
25
The protocol and most of the logic is implemented in [[libsamsung-ipc]], which enables to reuse it for other operating system (like GNU/Linux) or with different software stack.
26
27
In Android, hardware abstraction is not done by the Linux kernel. Instead applications are developed against the Android framework which uses hardware abstraction daemons to do the hardware abstraction.
28
29
This way kernel device manufacturers can completely break the kernel interfaces standards to improve time to market.
30
31
For the modem the daemon that does the modem protocol abstraction is @rild@. The @rild@ daemon typically opens a library implementing the modem protocol.
32
33
In order to make the design modular, the library opened by the rild daemon is not libsamsung-ipc, but libsamsung-ril which is in charge of creating implementing the interface between Android's rild and libsamsung-ipc.
34
35
So we have: rild <-> [[libsamsung-ril]] <-> [[libsamsung-ipc]] <-> Linux kernel (currently based on Samsung's modified Linux kernels that are specific to a very small number of devices).
36
37
h2. Flexibility
38
39
Having the modem protocol implemented in libsamsung-ipc enables to reuse it in very different software architectures. For instance there have been patches to use it with ofono.
40
41
See [[Upstream#Modem-support|Modem-support]] in the [[Upstream]] wiki pages for different ways of reusing libsamsung-ipc.
42
43 4 Denis 'GNUtoo' Carikli
h2. In depth documentation
44
45
In the [[ContributorsMeetingJuly2019|Replicant contributors meetings of July 2019]], several presentations were done on Replicant's Samsung-ipc implementation.
46
47
They can be found in the [[ContributorsMeetingJuly2019#Presentations|Presentations section]] of the [[ContributorsMeetingJuly2019|Replicant contributors meetings of July 2019]] page:
48
* Replicant and modems: introduction
49
* Replicant and modems: Samsung IPC
50
51 2 Denis 'GNUtoo' Carikli
h2. Rebases
52
53 1 Denis 'GNUtoo' Carikli
|_. Repository path |_. date | Tag for the old history  |_. Changes | Rationale |
54
| hardware/ril/samsung-ril | 24 July 2019 | replicant-6.0-0003 | Pointed replicant-6.0 to master | * See the "libsamsung-ril/libsamsung-ipc: delete or sync master branch? Was: [PATCH 6/6] Fix undefined references to MD5_{Init, Update, Final}  ":https://lists.osuosl.org/pipermail/replicant/2019-June/001950.html thread 
55
* This also has been made to prevent similar mistakes from hapening again |
56
| external/libsamsung-ipc | 24 July 2019 | replicant-6.0-0003 | Pointed replicant-6.0 to master | * See the "libsamsung-ril/libsamsung-ipc: delete or sync master branch? Was: [PATCH 6/6] Fix undefined references to MD5_{Init, Update, Final}  ":https://lists.osuosl.org/pipermail/replicant/2019-June/001950.html thread 
57
* This also has been made to prevent similar mistakes from hapening again |