aboutsummaryrefslogtreecommitdiffstats
path: root/markdown/2012_01_nexus-s-status-update-with-new-images.md
blob: 3ae7b73367fe230bc1636e335a48533afaf5956c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
tags: Paul Kocialkowski
date: 2012-01-07T21:46:15+00:00
title: Nexus S status update, with new images
authors: Paul Kocialkowski
---
The work on the Nexus S was started in July 2011. At the time, we just
discovered that the modem uses a Samsung-specific protocol.

On the [Android architecture][1], communication with the modem is done via the
RIL (Radio Interface Layer). While the modem runs its own non-free software on
a separate CPU, the RIL runs on the main CPU in Android userspace.

The only free RILs we know of are for the well-documented and widely-used [AT
command set][2]. Back in July 2011, we were desperate to see that there was no
free implementation for the Nexus S modem protocol. Fortunately, we weren't
alone on this one. After asking around on IRC, we met a talented developer who
owns a Samsung H1 device, which originally runs LiMo, a mobile operating
system with parts of free software, at least with the [Linux kernel][3]. The
developer (who's known on IRC as ius) was part of the effort to [port Android
to the Samsung H1][4], but he didn't stop there. He also investigated the
modem protocol used in the device. And the most incredible is that he did find
out most of the protocol messages and data structures. We together
investigated on Nexus S as well, and, thanks to this incredible luck we had,
the protocol is the same for nexus s. We managed to boot the modem and
obtained the first messages quickly. Then, we decided to push Nexus S support
to ius' lib, renaming it [libsamsung-ipc][5] for the occasion.

But the adventure didn't stop there. Another talented developer known as
morphis, who works on the [SHR][6] project, free [GNU][7]/[Linux][3] system
for smartphones and who accomplished a huge amount of work to add support for
the Palm Pre devices modem protocol in [FSO][8] (the middleware used in
[SHR][6] that is in charge of communication with hardware interfaces,
including the modem) decided to get a Nexus S and joined the effort to achieve
a working implementation of the Samsung IPC modem protocol.

Several months of work later, here we are, the [free RIL][9] we wrote for
Android/Replicant has grown enough to deserve the release of a new set of
images.

On this release, here is a quick summary of which major components are working
and which are not:

* Telephony is stable enough, there is working in-call volume change and
  audio routing, though we miss some features like conferencing

* SMS are working nicely, including multi-part messages, both on sending and
  receiving

* Data has a minimal implementation that is far from being ready (but can be
  set up manually), so this will be for next time

* Some other minimal features are there (SIM I/O, DTMF, SIM unlock, etc)

* Some are missing (USSD, working airplane mode for instance)

There has been no major improvement for other components nor devices, even
though we release images for Nexus One as well.

The images are located, at usual, at our [OSUOSL-hosted ftp][10].

[Download Replicant-2.3 0002 preview images for Nexus S and Nexus One][11]

 [1]: <http://developer.android.com/images/system-architecture.jpg>

 [2]: <https://secure.wikimedia.org/wikipedia/en/wiki/Hayes_command_set>

 [3]: <http://www.kernel.org/>

 [4]: <http://h1.pargon.nl/wiki/index.php/Main_Page>

 [5]: <http://github.com/morphis/libsamsung-ipc>

 [6]: <http://shr-project.org/>

 [7]: <http://www.gnu.org/>

 [8]: <http://www.freesmartphone.org/>

 [9]: <https://gitorious.org/replicant/samsung-ril>

 [10]: <http://ftp.osuosl.org/pub/replicant/>

 [11]:
<http://ftp.osuosl.org/pub/replicant/images/replicant-2.3/preview/0002/>