|
|
Subscribe / Log in / New account

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Over at the Freedom to Tinker blog, Steve Schultze reports that HTC is delaying the release of modifications it made to the Linux kernel in the G2 phone for 90-120 days. These modifications might help folks in circumventing the technical barriers to changing the firmware on the phone. "As it turned out, the internal memory chip included an option to make certain portions of memory read-only, which had the effect of silently discarding all changes upon reboot. However, it appears that this can be changed by sending the right series of commands to the chip. This effectively moved the rooting efforts into the complex domain of hardware hacking, with modders trying to figure out how to send these commands. Doing so involves writing some very challenging code that interacts with the open-source Linux kernel. The hackers haven't yet succeeded (although they still could), largely because they are working in the dark. The relevant details about how the Linux kernel has been modified by HTC have not been disclosed."

to post comments

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 11, 2010 21:57 UTC (Mon) by jmm82 (guest, #59425) [Link] (18 responses)

"They state that you may only distribute derivative code if you "[a]ccompany it with the complete corresponding machine-readable source code." Notably, there is no mention of a "grace period" or the like."

This is misleading. The GPLv2 allows three methods of distribution and the second method:
"b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution...."

does not state the source must be distributed immediately. While there is no mention of a grace period, in all fairness, there is also no mention of a deadline. The only time frame given is that the code must be available for three years after last distribution.

I am not trying to protect those who "Willfully Violates the GPL", but I would say this may be a grey area that I have not seen contested before in the court system.

Is anyone aware of a limit on how long after release the code must be made available.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 11, 2010 22:02 UTC (Mon) by caitlinbestler (guest, #32532) [Link] (10 responses)

The written distribution clause is already invalid, for the simple reason that the written offer did not accompany the already distributed phones.

So HTC is obligated to provide the source code via HTTP or FTP, as quickly
as can reasonably be done. They already burned the mail distribution option.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 11, 2010 22:24 UTC (Mon) by jmm82 (guest, #59425) [Link] (5 responses)

"as quickly as can reasonably be done."

Anyone who worked on a large project inside a corporation could agree 90 days is reasonable to sort out all the code and determine what to release.

I am not trying to make excuses for HTC by any means and agree they are probably stalling. Yet, I am still curious if anyone is aware of a court case which has determined the technical limit on "as quickly as can reasonably be done."

I do feel the article is taking "poetic liberty" to state "Notably, there is no mention of a "grace period" or the like." There is no mention of a "period" whatsoever.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 2:19 UTC (Tue) by rweir (subscriber, #24833) [Link]

> Anyone who worked on a large project inside a corporation could agree 90 days is reasonable to sort out all the code and determine what to release.

Perhaps, but those 90 days should be before you ship. Would a company consider shipping a Windows 7 or other $proprietary-expensive OS on a phone with the plan to sort out licensing afterwards?

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 11:17 UTC (Tue) by tialaramex (subscriber, #21167) [Link] (2 responses)

"90 days is reasonable to sort out all the code and determine what to release."

The code mustn't need "sorting out". That's the point. They already built it into a device and sold it - and that was their last chance to sort out the legality of what they were doing. You're probably correctly describing some of what's going on but that doesn't make it legal.

This is a tools issue and a culture issue. It's a tools issue because a good software outfit would be able to deliver a source tarball as part of the same build process that spits out binaries for flashing onto a phone, but most likely HTC's engineers fail the Joel Test and can't even spit out a new phone image without scrabbling about doing manual build steps.

It's a culture issue because you have to create a culture in which developers understand that the source code isn't private. If you just hire a bunch of guys with proprietary software backgrounds they may not even be keen on sharing within the team, let alone with other people. Improving the culture makes good business sense, but it may not get done because HTC doesn't realise it's a software company.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 13, 2010 2:10 UTC (Wed) by sepreece (guest, #19270) [Link] (1 responses)

I agree that a company that is well-organized and plans ahead to play by the rules CAN arrange to simply have the appropriate tarball come out at each build (I worked for one that did essentially that). However, you can be following pretty reasonable source and build management practices without doing so, if you haven't specifically thought out the license issues in advance. There's no reason, from a pure software-development standpoint, to separate code by license.

If you approach the problem after the fact, separating out the code by license can be daunting and 90 days is not hard to believe. I know of projects at several companies that I have worked on that were unable to re-create specific product builds at all.

[Not an excuse - just an explanation.]

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 13, 2010 17:31 UTC (Wed) by rahvin (guest, #16953) [Link]

The code is either Kernel code or it isn't. There shouldn't be anything to 'sort' out. The boundary of what is and isn't derivative code is very well defined. I could agree that it might be hard to sort out user-space stuff but the kernel code is either GPL or a violation and there isn't really anything at all to 'sort out' unless you are trying to conceal a GPL violation.

Any delays are internal political issues (legal review) or BS excuses to delay the release. What HTC is stupidly not considering is that the delay is only gonna work on the first phone with this chip, once the code is in the wild it won't matter on future phones and the chip manufacturer isn't going to respin the chip every phone release to alter the codes that need to be sent. So HTC's efforts will only serve to alienate customers with little to no benefit. Sounds like a PHB came up with the 90 day limit to me, the same clueless PHB's that think DRM is unbreakable.

The best part is that now that this issue is public someone's going to take cracking the op codes as a challenge and they are going to reverse engineer it very quickly thus blowing the entire reason for the delay. You have to wonder if the PHB's that came up with this silly idea even considered the consequences?

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 14, 2010 8:23 UTC (Thu) by dunlapg (guest, #57764) [Link]

I work for a large corporation that sells a complex piece of software, composed of a mix of open- and closed-source, with probably a dozen upstream projects with local patch queues. We don't have any trouble having source ISOs available for download the day of the release.

In any case, "the linux kernel" should be pretty easy to determine.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 11, 2010 22:26 UTC (Mon) by JoeBuck (subscriber, #2330) [Link]

Either source must be made available immediately (accompanying the executable, or available on the same server as the executable), or the source must be accompanied by a written offer, valid for at least three years, to provide the source to the distributed binary. Furthermore the provided source has to include source plus build scripts that will result in building that binary, not some later, cleaned-up binary. If you aren't ready to distribute source, you aren't ready to distribute binary.

If, as alleged, the company didn't include the written offer, it's already a copyright infringer, and according to GPLv2, its rights to distribute the code (whether source or binary) are terminated. The copyright holder(s) can restore these rights.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 3:48 UTC (Tue) by ccurtis (guest, #49713) [Link] (2 responses)

"The written distribution clause is already invalid [...] So HTC is obligated to provide the source code via HTTP or FTP [...]"

This is completely untrue. The GPLv2 is pretty easy to read:

[...]
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
[...]
3. You may copy and distribute the Program [...] provided that you also do one of the following:
[...]
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution [...] on a medium customarily used for software interchange.
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
[...]

The GPL was written in 1991. RFC 1945 (HTTP 1.0) was published in 1996 (although it was certainly in use earlier - I was running NCSA httpd in 1994). Neither FTP nor HTTP appear in the GPL.

It seems to me that there are two questions: Firstly, did HTC actually modify the software, or are they just shipping a binary provided to them by someone else?

If the latter, I believe they are complying with section (c). I do not have a G2 phone, but I have an Android 2.2 emulator. On the emulator, if I hit the 'menu' button from the main screen, select 'Settings', 'About phone', 'Legal information', and 'Open Source Licenses', a copy of the GPL is present.

If HTC actually modified the software, they do have to include a written offer with the device providing the means to contact them to get the source code. The article states that they have to provide the complete source with the device itself, which is untrue. That is one of three options; the other two I quoted above.

Without the actual device, I don't know if they are complying with (b). However, it is perfectly within their rights granted them by the GPL to state that the request must be received by certified mail and to charge a $20 fee to cover the cost of producing a DVD of the source and mailing it back to you.

It certainly seems like HTC has modified the software and is not complying with the GPL. If so, then there is a legitimate complaint and therefore no reason to go around making stuff up.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 5:12 UTC (Tue) by rgmoore (✭ supporter ✭, #75) [Link] (1 responses)

It seems to me that there are two questions: Firstly, did HTC actually modify the software, or are they just shipping a binary provided to them by someone else?

If the latter, I believe they are complying with section (c).

No. Check the fine print. Option (c) is only available for noncommercial distribution. Since HTC's distribution is clearly commercial, they can't rely on (c). So they must either provide the code with the device or provide a written offer to provide the source code to any third party. It sounds as though they're doing neither.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 14:37 UTC (Tue) by ccurtis (guest, #49713) [Link]

Option (c) is only available for noncommercial distribution.
Ack. You are of course correct. I had a different interpretation of 'non-commercial' in my head when I wrote that.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 11, 2010 22:55 UTC (Mon) by tialaramex (subscriber, #21167) [Link] (6 responses)

Reasonableness is the default standard. It would be not be reasonable to _delay_ release at all, since there is no suggestion in the license that this is permitted. It would be reasonable that you were unable to supply source temporarily due to a technical problem, but the usual excuses (source must be "prepared" in some way) are bullshit, a good lawyer with suitable technical witnesses could rip huge holes in such arguments. Any preparation of substance must necessarily take place _before compilation_ and thus _before distribution_. After that it's not preparation but a cover-up, an attempt to conceal from other licensees information to which they are entitled.

If I wanted to defend myself on such a reasonableness argument, I'd want evidence that I had taken steps to deliver source code and they failed for reasons outside my control e.g. a contractor didn't build the "HTC Linux source" web site I asked for, a CD plant corrupted the image I sent them, that sort of thing. Certainly not "I thought I could do it later your Honour".

When it comes to consumer rights (and the source for your Linux-based device falls squarely into that category IMO), gaming the system is counter-productive. Sooner rather than later either the judiciary or the legislature will "fix" the problem, and they will be a lot more brutal than merely good customer service would dictate. e.g. attempts to deliver the wrong product, deceive the customer about what they'd receive, or just delay delivery until long after payment was taken, led to a new EU regime for distance selling (mail order, web shops etc.) in which consumers can cancel their contract of purchase even after _receiving_ and _using_ the goods you sold them. Unsatisfied customers become in this regime a large net cost, worth considerable effort to avoid.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 5:54 UTC (Tue) by fandingo (guest, #67019) [Link] (5 responses)

"...a good lawyer with suitable technical witnesses could rip huge holes in such arguments..."

Not in less than 90 days. The court system is not setup to settle this issue in less time than it will take HTC to release the code.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 6:50 UTC (Tue) by josh (subscriber, #17465) [Link] (1 responses)

Courts don't typically say "oh, you've fixed it now, case closed". A court case against HTC wouldn't arise solely to obtain the source code for the current phone they ship. Such a court case would prevent HTC from repeating this license violation in the future (since they could no longer reasonably claim some kind of industry expected "grace period" in which they didn't have to comply with the license), and would seek some kind of restitution for the existing license violation. It would also serve as a warning for anyone else seeking to make the same mistake. And if HTC does get away with this, expect to see more companies doing the same; 90 days represents a substantial competitive edge, and since nothing says you can have 90, nothing says you can *only* have 90...

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 6:53 UTC (Tue) by josh (subscriber, #17465) [Link]

That said, I also don't think we as a community should jump straight to "court case". We've already tried the step of having developers ask nicely. We need to try the intermediate step of having a lawyer very directly tell them that they've violated the GPL and need to fix the problem, and see if they'll listen. If they still refuse to listen, then absolutely, take it to court, but don't jump straight there from "we asked and they said no", since the variant of "no" they used sounds a lot like "we just don't have a clue". Someone needs to give them a clue, rather than immediately burning them.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 6:53 UTC (Tue) by paulj (subscriber, #341) [Link]

It doesn't matter if it takes years to settle this in court, HTC are causing harm to the copyright owners, which does not get undone by releasing the code later.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 17:26 UTC (Tue) by iabervon (subscriber, #722) [Link] (1 responses)

This is a situation where contacting customs may be more appropriate than the courts. According to Harald Welte, HTC has a habit of shipping new devices to the US, releasing source after 90 days, and then shipping to Europe (which is why Harald doesn't do anything about it; by the time he can get the evidence to make a claim, the problem has been fixed). If customs in the US knew about this, they could have a corresponding habit of holding HTC shipments until the source was released. Since HTC's motive is likely to have devices in customers' hands generating buzz as soon as possible, this would probably hurry them along quite effectively. Sure, they can try to ship their devices and fix their license compliance before anyone sues them, but the devices wouldn't get there on time if they try it, and they'd lose exactly the edge they're trying to get by cheating.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 13, 2010 3:04 UTC (Wed) by pabs (subscriber, #43278) [Link]

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 12, 2010 1:42 UTC (Tue) by dvrabel (subscriber, #9500) [Link] (3 responses)

I'm not really seeing what the "very challenging code" is. The approach on the linked page looks wrong to me. A trivial kernel module that claims the card and does a few MMC commands to reset and reinitialize the card seems to be all that's needed to disable the write-protect mode.

Not quite "trivial" so far

Posted Oct 12, 2010 14:19 UTC (Tue) by paoleary (subscriber, #66381) [Link]

That was the initial approach. The reset is easy, but reinitialization arguments haven't been teased out yet. The rest of the steps before and after are (as I understand it) just framework to keep the system from freaking out and to help keep the Android watchdogs at bay.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 14, 2010 15:54 UTC (Thu) by cjb (guest, #40354) [Link] (1 responses)

Hm, I don't think that works. eMMC 7.3.1 suggests that neither of the reset commands (CMD0 or F0F0F0F0) affect WP -- you can't clear them from software, only by powercycle or asserting RST_n.

HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)

Posted Oct 15, 2010 0:26 UTC (Fri) by cjb (guest, #40354) [Link]

I should be more specific. eMMC defines both temporary and "power-on" write protects -- the temporary can be cleared by sending MMC commands, and the power-on (which is in use here) will stay set until a hard reset.

The G2-root team can't work out how to achieve a hard reset, because the card and controller appear to be being externally powered. The baseband uses a GPIO to reset them during a system upgrade, but that GPIO is purposefully shadowed away from the application processor.

Scared of hard work ?

Posted Oct 13, 2010 9:40 UTC (Wed) by amimjf (guest, #506) [Link] (4 responses)

Looking into this the main problem they are claiming is that without the sources provided by HTC they cant properly control the eMMC chip.

Thats just plain rubbish, i do embedded development and they need to get hold of the datasheets and start wring code until they get the correct responses from the device. How do they think HTC created the driver/headers in the first place ?

The only 'technical barriers' are the skill and willingness to work on the part of the people involved.

Scared of hard work ?

Posted Oct 13, 2010 15:11 UTC (Wed) by bronson (subscriber, #4806) [Link] (3 responses)

Do you seriously think they ignored the data sheets??

The problem is that there are some magic values and complex interactions that aren't covered by the docs. As an embedded developer, I'm sure you've seen this situation hundreds of times. I know I have.

Your "technical barriers" sound like a tired election speech. How about incomplete docs? Or obfuscated layout (just try to bring up a RAMDAC if I swizzle the RSS lines on the PCB and don't tell you how)? Or crypto sigs? Or any of a number other things that would raise the required reverse-engineering work to years or decades? Those aren't technical barriers?

Scared of hard work ?

Posted Oct 14, 2010 8:11 UTC (Thu) by amimjf (guest, #506) [Link] (2 responses)

I've seen data sheets lacking detail on a couple of occasions in the last decade, so you just have to work it out for yourself. Data sheets are almost always very good in my experience.

I've never seen the inside of the phone they are reverse engineering, but unless there are FPGA's or ASIC's hiding certain parts of behavior you just have to trace out the lines from one component to another.

Take the example of a first prototype back from manufacture, it does not work at all, so what do you do ? you get your scope and follow the lines from one chip to another until you know where the fault is.

Anyhow this is all moot, the engineers at HTC have done all this once so anybody else with a similar level of skill can. All this episode shows is that the HTC guys are pretty good.

Scared of hard work ?

Posted Oct 14, 2010 17:40 UTC (Thu) by bronson (subscriber, #4806) [Link]

Everything looks easy when someone else is doing it.

Have you actually seen a modern cell phone PCB? It's all BGAs or worse. 80% of the traces are buried so they can't be probed without delaming, and even those on the surface are so small that you need specialized probes just to hit reliably. "Just scope it" isn't really an option anymore.

> HTC have done all this once so anybody else with a similar level of skill can.

And a similar access to SanDisk engineering support.

Scared of hard work ?

Posted Oct 18, 2010 0:38 UTC (Mon) by dmag (guest, #17775) [Link]

> Data sheets are almost always very good in my experience.

You haven't worked on enough ARM chips recently. These companies get a well documented ARM core, throw some custom peripherals on it and forget to document all the possible interactions. (Sharp, I'm looking at you.) I won't even mention the engrish in the datasheet, since I expect that nowadays.

> but unless there are FPGA's or ASIC's hiding certain parts of behavior

Today's modern ARM chips have so many functions per pin (always at least two, sometimes four) that the configuration code might be more valuable than a circuit diagram. even without an FPGA

> the engineers at HTC have done all this once so anybody else with a similar level of skill can

It sounds like you are saying "engineering and reverse engineering are the same effort." That's not even close to true.


Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds