A few month ago, we (Replicant developers) decided to start the work on the new Google Nexus S.
This device seemed an interesting target at first since it doesn’t have any technical restriction to flash a non-official operating system and kernel but also as it comes with the latest (free) version of Android, Gingerbread. Of course, even if Android Gingerbread is free, the device requires non-free bits (libraries, binaries, firmwares, etc) to actually use the full potential of the hardware.
The work was started at the end of July and the 100% free images of Replicant 2.3 that run on the device already contain a set of supported features. You can get a detailed state of the Nexus S support in Replicant at http://trac.osuosl.org/trac/replicant/wiki/ReplicantStatus#nexuss. All the source code is, as usual, available in Replicant’s gitorious repos. Though, we still miss a big part: the RIL, that is necessary for telephony.
We soon discovered that the hardware of the Nexus S was made in a way that gives better freedom guarantees than other Replicant-supported phones. You can read a rational concerning this aspect of the phone, along with a technical overview of the device at http://trac.osuosl.org/trac/replicant/wiki/NexusSTechnicalOverview.
Also, whereas the bootloaders for the other Replicant-supported devices are all non-free, it may be possible to port a free bootloader (u-boot for instance) to the Nexus S. A wiki page that comes with all the infos we have about this is at: http://trac.osuosl.org/trac/replicant/wiki/NexusSBootloader.
The next important steps in the Nexus S support are the following (in no particular order):
- find out if a free bootloader is possible for Nexus S and start the work on it
- write a free RIL so that we can use the telephony functions
and, when that is achieved:
- release official preview images
- replace the last replaceable non-free bits (GPS and compass for instance)
As usual, we are looking for new hackers to join the effort to bring some more bits of freedom to the mobile phone world.