HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
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."
      Posted Oct 11, 2010 21:57 UTC (Mon)
                               by jmm82 (guest, #59425)
                              [Link] (18 responses)
       
This is misleading.  The GPLv2 allows three methods of distribution and the second method: 
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.  
     
    
      Posted Oct 11, 2010 22:02 UTC (Mon)
                               by caitlinbestler (guest, #32532)
                              [Link] (10 responses)
       
So HTC is obligated to provide the source code via HTTP or FTP, as quickly 
 
     
    
      Posted Oct 11, 2010 22:24 UTC (Mon)
                               by jmm82 (guest, #59425)
                              [Link] (5 responses)
       
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. 
     
    
      Posted Oct 12, 2010 2:19 UTC (Tue)
                               by rweir (subscriber, #24833)
                              [Link] 
       
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? 
     
      Posted Oct 12, 2010 11:17 UTC (Tue)
                               by tialaramex (subscriber, #21167)
                              [Link] (2 responses)
       
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. 
     
    
      Posted Oct 13, 2010 2:10 UTC (Wed)
                               by sepreece (guest, #19270)
                              [Link] (1 responses)
       
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.] 
 
 
 
 
 
 
     
    
      Posted Oct 13, 2010 17:31 UTC (Wed)
                               by rahvin (guest, #16953)
                              [Link] 
       
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? 
     
      Posted Oct 14, 2010 8:23 UTC (Thu)
                               by dunlapg (guest, #57764)
                              [Link] 
       
In any case, "the linux kernel" should be pretty easy to determine. 
     
      Posted Oct 11, 2010 22:26 UTC (Mon)
                               by JoeBuck (subscriber, #2330)
                              [Link] 
       
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.
      
           
     
      Posted Oct 12, 2010 3:48 UTC (Tue)
                               by ccurtis (guest, #49713)
                              [Link] (2 responses)
       
This is completely untrue.  The GPLv2 is pretty easy to read: 
[...] 
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. 
 
 
 
     
    
      Posted Oct 12, 2010 5:12 UTC (Tue)
                               by rgmoore (✭ supporter ✭, #75)
                              [Link] (1 responses)
       If the latter, I believe they are complying with section (c). 
     
    
      Posted Oct 12, 2010 14:37 UTC (Tue)
                               by ccurtis (guest, #49713)
                              [Link] 
       
     
      Posted Oct 11, 2010 22:55 UTC (Mon)
                               by tialaramex (subscriber, #21167)
                              [Link] (6 responses)
       
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. 
     
    
      Posted Oct 12, 2010 5:54 UTC (Tue)
                               by fandingo (guest, #67019)
                              [Link] (5 responses)
       
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.  
     
    
      Posted Oct 12, 2010 6:50 UTC (Tue)
                               by josh (subscriber, #17465)
                              [Link] (1 responses)
       
     
    
      Posted Oct 12, 2010 6:53 UTC (Tue)
                               by josh (subscriber, #17465)
                              [Link] 
       
     
      Posted Oct 12, 2010 6:53 UTC (Tue)
                               by paulj (subscriber, #341)
                              [Link] 
       
     
      Posted Oct 12, 2010 17:26 UTC (Tue)
                               by iabervon (subscriber, #722)
                              [Link] (1 responses)
       
 
     
    
      Posted Oct 13, 2010 3:04 UTC (Wed)
                               by pabs (subscriber, #43278)
                              [Link] 
       
http://laforge.gnumonks.org/weblog/2010/10/12/#20101012-h... 
     
      Posted Oct 12, 2010 1:42 UTC (Tue)
                               by dvrabel (subscriber, #9500)
                              [Link] (3 responses)
       
     
    
      Posted Oct 12, 2010 14:19 UTC (Tue)
                               by paoleary (subscriber, #66381)
                              [Link] 
       
     
      Posted Oct 14, 2010 15:54 UTC (Thu)
                               by cjb (guest, #40354)
                              [Link] (1 responses)
       
     
    
      Posted Oct 15, 2010 0:26 UTC (Fri)
                               by cjb (guest, #40354)
                              [Link] 
       
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. 
     
      Posted Oct 13, 2010 9:40 UTC (Wed)
                               by amimjf (guest, #506)
                              [Link] (4 responses)
       
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. 
     
    
      Posted Oct 13, 2010 15:11 UTC (Wed)
                               by bronson (subscriber, #4806)
                              [Link] (3 responses)
       
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? 
     
    
      Posted Oct 14, 2010 8:11 UTC (Thu)
                               by amimjf (guest, #506)
                              [Link] (2 responses)
       
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. 
     
    
      Posted Oct 14, 2010 17:40 UTC (Thu)
                               by bronson (subscriber, #4806)
                              [Link] 
       
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. 
     
      Posted Oct 18, 2010 0:38 UTC (Mon)
                               by dmag (guest, #17775)
                              [Link] 
       
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. 
 
     
    HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
"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...."
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
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)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
      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.
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
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.)
[...]
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      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?
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)
      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)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
Not quite "trivial" so far
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
HTC Willfully Violates the GPL in T-Mobile's New G2 Android Phone (Freedom to Tinker)
      
Scared of hard work ?
      
Scared of hard work ?
      
Scared of hard work ?
      
Scared of hard work ?
      
Scared of hard work ?
      
 
           