Nexus S status update, with new images

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, 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. 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. The developer (who’s known on IRC as ius) was part of the effort to port Android to the Samsung H1, 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 for the occasion.

But the adventure didn’t stop there. Another talented developer known as morphis, who works on the SHR project, free GNU/Linux system for smartphones and who accomplished a huge amount of work to add support for the Palm Pre devices modem protocol in FSO (the middleware used in SHR 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 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.

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

2 Comments

Replicant on Nexus S preview

As we already mentioned it, we have started the work to support the Nexus S on Replicant. We are now releasing preview images, the first set for the Nexus S! You can now download the preview images: replicant-2.3 for crespo.

This images includes the ipc-modemctrl tool (from libsamsung-ipc) that implements minimal telephony support. Please test this tool and give us feedback: http://trac.osuosl.org/trac/replicant/wiki/libsamsung-ipc.

Here is a list of what’s not ready yet in this preview image (but may be done in the future):

  • RIL: this is the crucial library used to handle telephony and data connectivity (3G). This is being worked on very hard and will be there in some time
  • GPS: we haven’t worked at all on the GPS side: it might be possible to have it working (needs work)
  • Compass: it’s the same as in Nexus One (which works) but the kernel driver is different (needs work)
  • Full Camera: Camera works but in Black & White preview mode and isn’t very stable

Here’s a list of what doesn’t work in Replicant and is probably not going to be achieved:

  • 3D acceleration
  • Whatever needs the non-free firmwares we don’t include (NFC, MFC, WiFi, Bluetooth…)

We are indeed not including any non-free firmware (100% free is our goal) and are not going to provide any free replacement for these as we are not skilled to write such replacement. Though, the kernel we use won’t prevent loading these firmwares if in place.

We also thought of porting u-boot to the Nexus S in order to have a free bootloader replacement but it’s apparently not possible as primary bootloader (perhaps possible chainloaded).

Anyway, we made a video of Replicant 2.3 running on the Nexus S:

And also made a gallery of Screenshots showing Replicant on the Nexus S:

Posted in New images release | 5 Comments

Replicant 2.3 preview images for Nexus One released!

We are pleased to announce that Replicant 2.3 images are now available for the Nexus One!

This new Replicant version is based on the latest CyanogenMod stable release, 7.1.0, that is based on Android 2.3.7 and contains, as usual, only free software.

You can download these new images at http://ftp.osuosl.org/pub/replicant/images/replicant-2.3/preview/0001/

Nexus One status under Replicant 2.3 should be the same as Replicant 2.2: what was working with FroYo should still work in Gingerbread.

Even though Nexus One is supported in Replicant, it doesn’t mean it’s a device we can totally recommend for freedom:

  • It has a non-free bootloader
  • The devices requires non-free firmware for making phone call and working audio
  • The modem (that runs non-free software) controls the sound (including mic), the GPS and can read/write the main CPU memory (it also handle data connectivity and can send/receive data on its own)
Posted in New images release | 2 Comments

New Replicant 2.2 preview images (0009) released

New Replicant 2.2 images are now ready and available to download. This new set of images (0009) is available for the following devices:

  • HTC Dream/Magic
  • Nexus One

This new release features the following:

  • Switched to the Android launcher on HTC Dream/Magic (should be faster)
  • We have a newer RIL that should fix some issues on HTC Dream/Magic/Nexus One
  • We added 2 wallpapers that Jan-Christoph Borchardt submitted (thanks a lot!)

Note that Replicant 2.3 images for Nexus One and Nexus S are on their way (you can already build Replicant 2.3 images if you want)!

We are still looking forward Hackers to help us bring some more freedom to the mobile word: there are many ways to contribute to the project!

Posted in New images release | 9 Comments

Introducing Replicant on HTC Dream video

A video showing Replicant running has been asked several times since now. We thought it would be a really a nice idea to make such a video available. The video is ready now and it shows the HTC Dream running a Replicant 2.2 pre-0009 preview image, featuring various aspects of the system (booting, Android User Interface, incoming and outgoing calls with the free RIL, Android apps, USB Networking, FDroid and GPS among other things).

This video itself is available under the Creative Commons BY-SA license, but other licenses may apply to the audio tracks (see on the video).

The audio doesn’t include any voice comment but the video comes along with subtitles that could easily be translated. The video is available in the free WebM video format on a 360p resolution, both with subtitles hardcoded (for English only) or with subtitles on a separate file.

See the video online (embedded player with subtitles):

Download the video:

Download subtitles:

The video is now subtitles in many languages, thanks to the translators!

Happy Software Freedom Day and happy mobile hacking!

15 Comments

Nexus S support in Replicant being worked on

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.

Posted in Replicant | 3 Comments

Replicant 2.2 preview 008 is out!

We are pleased to announced Replicant 2.2 preview 008.

What’s new in this version (since 0007):

  • Bug #22 (http://trac.osuosl.org/trac/replicant/ticket/22) should (hopefully) be  fixed
  • Data is disabled by default
  • Non-market apps are allowed by default
  • *FDroid, the free software market app is installed by default
  • CMWallpapers, CMStats and CMUpdateNotify are not installed anymore
  • Replicant has its own wallpapers and a Wallpaper selection app
  • There are Replicant boot splashes for all devices (including Dream)
  • There is a changelog for Replicant on the system
  • Switched to replicant vendor (Mod version is now Replicant)

 

As usual we would like to thank everybody involved. We are looking for new maintainers and hackers to join us and bring innovation in the libre mobile world.

Help us testing this new preview release on your favourite device and come to say hi on our irc channel

Happy mobile hacking.

Posted in New images release | 4 Comments

Replicant 2.2 preview 007

We are pleased to announced Replicant 2.2 preview 007.

What’s new in this version:

  • We are using a new ril (hycs-hardware_xdandroid-ril), which fixes telephony in the USA. Data should also work.
  • libhtc-acoustic has been fully replaced for HTC Dream, it fixes:
  • in-call volume adjustment
  • no mic wired headset support

As usual we would like to thank everybody involved. We are looking for new maintainers and hackers to join us and bring innovation in the libre mobile world.

Happy mobile hacking.

Posted in New images release | Leave a comment

Replicant lacks tracking antifeatures

Recently there was a lot of hype about mobile operating systems spying the users: Apple iOSPalm WebOS, Google Android.

Since Replicant is based on Android someone could be concerned about our operating system too.

According to Magnus Eriksson on github:

The files are named cache.cell & cache.wifi and is located in /data/data/com.google.android.location/files on the Android device.

Well we are proud to confirm that on Replicant (tested both on htc dream and nexus one) those files are missing,  even with "Settings -> Location & Security -> Use wireless networks" enabled.

The directory that should contain those files( /data/data/com.google.android.location/files ) doesn’t even exist  in Replicant.

But beware: even if Replicant itself doesn’t track its users’ position, this doesn’t mean that the phone can’t spy on you.

A smartphone usually has two components that talk to each other: a cpu and a modem. If the modem gets a call, it tells the CPU about it and viceversa for outbound calls, the CPU will order the modem to make a call (if you are curious about how it works there is a paper about how mobile phones work).

The modem and the CPU running Replicant are separated, and while we are trying to do our best to ship a fully free mobile os, the code running on the modem is proprietary software and can’t be changed. Since we don’t know what it does, we have no way to be sure that it doesn’t spy.

Also note that on the HTC Dream and the nexus one mobile phones,  GPS and audio parts are controlled by the modem.

The cellphone network can also spy, in fact in order to work it has to know your location.

This is just to remind you that every mobile phone is a tracking device and if you don’t want to be spied at all you should not use one.

So why do people invest time on Replicant?

Here are some reasons:

  • The modem or the network has no access to the CPU where replicant is running. That opens up some possibilities such as VPN, TOR,SSH, etc…
  • If mobile phones become the computers of the future we want to run free software on them.

Edit: I learned that the Modem’s CPU has access to the memory(the RAM chips) of the CPU running replicant, in other words the modem CPU can spy replicant’s CPU.

That will force us to port replicant to some devices that don’t have this problem, such as the nokia n900 for instance.

Posted in Privacy | 12 Comments

Replicant 2.2 SDK available

Thanks to the huge amount of work by paulk (Paul Kocialkowski) we now have an SDK.
It should be functional enough to write android applications for Replicant 2.2 or any other Android 2.2 device.

As usual the main difference compared to the Android SDK is that Replicant SDK should be fully free software. (Android SDK includes proprietary API like Google maps but we don’t want proprietary Google maps at all).

The Replicant SDK also includes an emulator like the Android one to allow developers to write their apps even without having a phone.

Please download the Replicant 2.2 SDK and help us building a better libre Replicant.

We wait for your suggestions and comments.

Again thanks a lot to paulk for the great work.

Posted in SDK | 3 Comments