Techworld Australia recently caught up with some of the developers of Rockbox to discuss the open source project, which is designed to replace the firmware shipped on MP3 players and portable media players.
Open source systems running on handheld devices are hardly a niche category thanks in part to Google's Android mobile platform, which in Q3 2011 was the operating system for more than half of all smartphones sold worldwide. But Android is far from being the first open source OS for mobile devices.
Unlike Android, Rockbox doesn't benefit from the backing of a giant corporation like Google or the handset manufacturers that use the search giant's platform. But despite that, the open source project has lasted for over a decade and has managed to build a broad community of developers that continue to improve it.
Rockbox, created in 2000, is a system designed to replace the stock firmware shipped in MP3 and media players, adding extra features to new products and breathing new life into older ones. The project currently supports products from more than half a dozen manufacturers, including Apple, Arhcos, iRiver and Toshiba.
According to Rockbox's creator, Björn Stenberg, the project "started in the classic 'scratch an itch' way". Stenberg has been a professional embedded systems developer for two decades. "I became a UNIX geek in the early 1990s and discovered free software shortly after that."
The genesis of Rockbox was the purchase of an Archos MP3 player: "I and a few Haxx friends bought ourselves Archos Jukebox 6000 MP3 players in 2000. Since it used a non-standard USB protocol, it required a custom Windows driver to transfer files. Since I prefer using Linux, I started working on a Linux driver for it which was eventually included in mainline Linux 2.4.8.
"While we enjoyed our newfound ability to bring our record collection in our pockets (a radical notion back then), soon we started getting frustrated by the limitations and slowness of the Archos jukebox firmware."
These limitations include the length of playlists and the length of time it took to load them.
Breaking down the gender divide in open source and open culture Dries' vision for Drupal 8 The road to a successful open source project: Learning lessons from Drupal Open Source Ecology: Can open source save the planet? Python vs. PHP: Choosing your next project's language
"Fortunately, the Archos Jukebox used firmware updates in the form of a plain binary
archos.mod file that you copied to the root of the hard disk," Stenberg says. "At boot, the firmware would look for the file and load it if found. This, combined with the fact that the USB connection was fully handled in hardware, meant that there was basically no risk whatsoever of damaging or 'bricking' the player by feeding it a bad firmware file.
"So all we had to do was craft our own archos.mod file. How hard can it be?"
After taking the device apart and analysing its components, it was found to be using a Hitachi SH-7034 CPU. The next step was analysing the archos.mod firmware file. "It was obvious that it was not just a plain binary code file. It was purposefully obfuscated — challenge accepted!"
"After considerable head-scratching, and some help from friends, I was finally able to crack the obfuscation and published the source code to a descrambler on my home page," Stenberg says. "This allowed us to descramble and analyse the firmware file, and to begin creating our own replacement.
"After this point, more and more people gathered around the project and contributed code and insight. We have been fortunate to be able to attract many really skilled people."
Stenberg can't be certain about Rockbox's user base — "like with all free and open source software, that is very difficult to gauge — but version 3.9.1, released in 2011, was downloaded 110,000 times for the 34 targets it supported.
Rockbox offers what Stenberg describes as "a smorgasbord of features". These include drag-and-drop file transfer (some players require software from the vendor to be installed on a PC to add new media files), navigation using a directory browser, vastly increased format support (Rockbox supports more than 30 file formats, including MOD) and gapless playback ("This means that concert recordings or albums like The Dark Side of the Moon play uninterrupted, just like they are supposed to," Stenberg says).
"I believe the most common primary reasons for non-developers to install Rockbox are the wide range of supported codecs -- Ogg Vorbis and FLAC seem to be very popular -- the freedom to just copy files without requiring special software on the PC side, and support for spoken menus," says Frank Gevaerts, a Belgium developer who participates in the Rockbox project.
Rockbox's spoken interface can read both menus and song titles aloud. "It's excellent for use in the car (not having to take your eyes off the road) but it's also very popular among blind and sight-impaired communities," Stenberg says.
Rockbox supports many more multimedia formats than any original firmware could possibly do, in a more efficient manner and, consequently, offers less power consumption. Also, the freedom of not being tied to an application like iTunes and the ability to just drag and drop files instead is a big plus in my opinion."
Rockbox "includes lots of useful plug-ins," says Mohamed Tarek, a developer from Egypt. "For example, I have read a complete 300-plus page books on my [Sansa] e250."