Free Software Robin Hood Liberates Leaked Samsung Code

An anonymous coder has posted a large chunk of Microsoft file-system software to GitHub, claiming that she’s liberating it for the open-source world.
Image may contain Ball Sports Sport Golf and Golf Ball
Photo: Ariel Zambelich/Wired

A student and programmer using the name "rxrz" has posted a large chunk of a proprietary Microsoft file-system software to GitHub, claiming that she's liberating it for the open source world. She says that the software was leaked from Samsung, and that it also contains some code from the Linux kernel. That, she argues, makes it de facto open source under the terms of the Gnu General Public License.

"All I've done is given the community of open source developers and linux/android users a way to finally share data between all major OS's without any excessive impact on the performance," she wrote on GitHub.

In an email interview, rxrz wouldn't give her name, but said that she was a nineteen year old female student from the European Union.

She posted the code last month, but only gained widespread notice on Linux discussion forums this week.

The code is a driver for exFAT, a flash memory file system that has become the standard for digital cameras and has also been adopted by smartphone makers. BlackBerry, Sharp and Samsung all license the format from Microsoft. It also happens to be compatible with Windows and OSX, meaning users can seamlessly drag and drop files between exFAT format SD cards and their desktops. But because the licensing costs are expensive and the system is proprietary, there's no official Linux support. That means that in order to use it with Android, which uses the Linux kernel, smartphone makers like Samsung and Sharp have had to license the technology from Microsoft and then either write their own driver modules and adapt Microsoft's reference code.

Rxrz became interested in exFAT while trying to scratch an itch. "Basically, I just got one of those large 2TB external hard drives, and needed to share the data with my friends and family," rxrz said in an e-mail interview. She was using Linux, but needed to share data with people on other platforms. There's an existing open source exFAT implementation for Linux, but rxrz complained that it was too slow. So she decided to try to fix it. She started looking around on GitHub, and to her surprise she found a complete exFAT driver included with a copy of the Linux kernel code of the Samsung Galaxy Tab 10. It had been available on GitHub for at least a couple months already, and appeared to have been written by Samsung.

She decided to create a new "repo" on GitHub to highlight the code, and to unilaterally release it under the GPL. "I just felt that more people who use Linux end up in the same unfair situation all over the planet, and just don't know that there's a source for this driver on GitGub," she says. "The more I have read about exFAT, the worse I felt about this whole 'proprietary' story."

Microsoft's exFAT licensing terms rankle some open-source advocates, like rxrz, who say they're overly burdensome.

It's not clear where the code came from originally. "I have also downloaded and looked into the officially available Android source code from Samsung, the exFAT folder was missing in every one of those archives," rxrz said.

Not that she particularly cares about its provenance, so long as it works. "I see any leak as a developer's fault," she says. "If you got a hole in your pants and your stuff is falling out, it's not stealing once somebody finds your wallet."

She's not worried about the legality of her actions -- but in publicizing this code, she may have uncovered a violation of Linux's open source license. The code appears to contain snippets that are identical to portions of Linux, as pointed out by a reader in the Phoronix discussion forum. For example, the code contains the comment "timestamp is already written, so mark_inode_dirty() is unneeded." That same comment, along with other lines included in RXRZ's Github repository, was included in Linux Kernel code submitted in 2005.

That's significant, because under the terms of Linux's GNU General Public License, companies can't blend the Linux source code and then distribute it with their own proprietary software. So if Samsung is indeed distributing this Linux code without a license, that could put it in violation of the GPL. Samsung was unable to immediately comment on the code.

Although the exFAT driver could be in violation of the GPL, violations don't legally justify the re-release of code.

Eben Moglen, a lawyer at the Software Freedom Law Center, couldn’t comment on the specifics of this case but did say that in general, only the actual copyright holders can make decisions about distributing derivitive works. “Self-help ‘remediation’ by parties who do not hold copyright is no part of the legal system established by the GNU General Public License,” he said. In other words, Robin Hood-style code releases are a no-no.1

It's also likely that anyone who used this code would still run afoul of Microsoft's exFAT patents, at least in Microsoft's eyes. "exFAT is a Microsoft proprietary technology protected under Microsoft patents, and disclosure of a particular implementation by a third party does not affect Microsoft's rights," the company said in a statement.

But the legal ramifications seem to be the last thing on rxrz's mind. "Honestly, I don't understand how it's even possible to patent any filesystem. It's not a concept, it's a variation of having a structured array of bytes on a block device."

In a high profile case, Linux-based navigation device maker TomTom settled a lawsuit with Microsoft for allegedly violating Microsoft filesystem patents back in 2009.

However, this pirated code still has its uses, rxrz argues. "The code will be for sure useful as a spec to all of the FAT filesystems," she says. "I also believe that somebody, more experienced that myself in developing filesystem drivers, will rewrite it while looking at this source code and release it under GPL."

1Correction 6:30 EDT 08/05/13: An earlier version of this story incorrectly identified Eben Moglen as a lawyer with the Free Software Foundation. The story has also been updated to clarify Moglen's comments.