Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 35 reacties
Submitter: thijsje66

HTC heeft de kernel van zijn Android-toestel Tattoo online gezet. De fabrikant is verplicht tot het verstrekken van de broncode aan elke gebruiker die daarom vraagt. De broncode is ruim na de release van de Android-smartphone nog aangepast.

HTC TattooDe kernel van de Tattoo is te downloaden van de ontwikkelaarssite van HTC. De smartphonefabrikant publiceert de code omdat de Linux-kernel onder gpl-licentie valt. Dat brengt ondermeer met zich mee dat aanpassingen aan die kernel op verzoek aan gebruikers moeten worden geopenbaard. HTC heeft ervoor gekozen de broncode van de Tattoo, in navolging van die van de Hero, openlijk online te zetten.

Gebruikers kunnen met die broncode hun Android-toestel nog meer naar hun hand zetten. Zo wordt het niet alleen mogelijk om roms te maken zonder HTC's Sense-interface, maar kan ook ondersteuning worden toegevoegd voor andere bestandsindelingen, zoals ext4 en fuse.

De vrijgegeven kernel is echter niet gelijk aan de kernel die op het toestel staat: alle bestanden in de gepubliceerde kernel zijn gewijzigd nadat de Tattoo al in de winkel was gelegd. De meeste bestanden zijn voor het laatst gewijzigd op 11 november, maar veel zijn ook op 6 januari nog aangepast. Het is onduidelijk waarom. Toen HTC de kernel van de Hero openbaarde, bleek hetzelfde het geval: die werd nog aangepast op de dag van publicatie. Waarom HTC de broncodes aanpast, is niet duidelijk.

De Tattoo werd door HTC in de markt gezet als goedkopere Android-smartphone. De Tattoo heeft een Qualcomm MSM7225 met een kloksnelheid van 528MHz. Het scherm is een resistief 2,8"-touchscreen touchscreen met een resolutie van 320x240. De Tattoo kwam eind oktober op de markt met een adviesprijs van 299 euro. Inmiddels is die prijs gedaald naar 225 euro.

Moderatie-faq Wijzig weergave

Reacties (35)

Misschien passen ze de broncode op een dusdanige manier aan zodat hetgeen ze graag verborgen houden in de "nieuwe" versie van de code niet meer staat. Zo hebben ze toch aan GPL licentie voldaan zonder dat ze hun werk hoeven te delen.

Vraag ik me af in hoeverre je de broncode moet kunnen krijgen van de kernel die op je toestel staat...

[Reactie gewijzigd door donzigeendje op 25 januari 2010 15:23]

Men heeft de verplichting om op verzoek de broncode te geven van datgenen wat op uw toestel staat. Als jij met wat nu vrijgegeven is geen vrede kan nemen dan heb je het recht om verder te vragen.

De aanpassingen zullen hoofdzakelijk cosmetisch zijn (comments) en mogelijk wat bugfixes. De functionaliteit zou dezelfde moeten zijn.
Vraag ik me af in hoeverre je de broncode moet kunnen krijgen van de kernel die op je toestel staat...
Dat is letterlijk de voorwaarde in de GPL.
Ze kunnen niet echt wezenlijke dingen wijzigen, het moet als je het compileert nog wel werken
Deze code moet je kunnen krijgen omdat dat in de licentievoorwaarden van de Linux kernel staat (GPL2)
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
Als de gepubliceerde code met dezelfde compiler, compiler-instellingen en kernel configuratie tot dezelfde binary leiden, dan hebben ze inderdaad in principe voldaan aan de GPL licentie.
Dat is namelijk ook de enige manier waarop je kunt vaststellen dat de broncode daadwerkelijk bij de binary hoort waarvan men claimt dat deze erbij hoort.
Code die een afleiding is van code die onder de gpl valt moet je volledig publiekelijk beschikbaar maken als je een functionele versie van het programma beschikbaar maakt.
Ofwel: als je een basisprogramma A hebt die onder de gpl valt, en je verandert dat (misschien een functie toevoegen of veranderen) en je maakt je gewijzigde versie van A beschikbaar (die zullen we B noemen) dan moet je alle code van B ook publiekelijk beschikbaar maken.

@graey: zo te zien is lezen een kunst...

[Reactie gewijzigd door Jeanpaul145 op 26 januari 2010 14:50]

Nope, als ik GPL-programma X aanpas en compileer en alleen zelf gebruik, hoef ik de code niet vrij te geven. Alleen als ik gecompileerde bestanden uitgeef die mijn aanpassingen bevatten moet ik de broncode ook vrijgeven op aanvraag.
Zijn er dan fundamentele wijzigingen doorgevoerd ?
Als er in elk bestand een lijn commentaar is toegevoegd met de boodschap 'Published on ...', dan lijkt mij er absoluut geen probleem te zijn.

Als er fundamentele verschillen zijn of een deel van de functionaliteit is verdwenen, dan lijkt me dat een inbreuk op de gpl-licentie ?
Dat is het lastige... Hoe ga je controleren of er alleen een lijn comment is toegevoegd of aangepast als je de orginele files niet hebt.
Je hebt niets om mee te vergelijken. Ze kunnen er van alles in hebben veranderd.

Ik moet eerlijk zeggen dat ik dit vreemde praktijken vind. Hebben ze iets te verbergen of is het inderdaad een lijn comment die is aangepast/toegevoegd/verwijderd?

Lijkt me verstandig van HTC om hier meer duidelijkheid over te geven zodat hun naam zuiver blijft.

[Reactie gewijzigd door PinQ op 25 januari 2010 15:35]

Maar de originele lines staan toch allemaal op het toestel dat kan je er toch uit laden?
Of wordt het eerst gecompileerd en kan het daarna niet meer?

Lijkt me op zich ook geen slecht idee gewoon de broncode op de telefoon zetten in het geheugen, dus niet verstopt. dan kan iedereen het aan als ze een toestel kopen en hoeven ze denk ik niet eens een download er van te maken tot ze update uitbrengen.
De broncode word inderdaad gecompiled en uit die gecompileerde code kan je moeilijk de originele broncode halen.
onmogelijk is het niet. Je kan beide in gecompileerde vorm vergelijken, maar dat is weer een heel ander vlak van programmeren (debuggen ed).. Niet elke programeur kan dit op deze manier.
Dan moet je ook weten met welke compiler de fabrieksrom is gecompileerd.
Dat is het lastige... Hoe ga je controleren of er alleen een lijn comment is toegevoegd of aangepast als je de orginele files niet hebt.
Je hebt niets om mee te vergelijken. Ze kunnen er van alles in hebben veranderd.
Klopt. Het enige wat je kan gebruiken om te kunnen benaderen van hoeveel meer er aangepast is, is door zelf de kernel source ook te compileren en die binair te vergelijken (binary diff) met de kernel die je op het toestel kan vinden als je root toegang hebt of het lukt om hem uit een ROM update te extraheren.
Ik moet eerlijk zeggen dat ik dit vreemde praktijken vind. Hebben ze iets te verbergen of is het inderdaad een lijn comment die is aangepast/toegevoegd/verwijderd?
Het kan heel onschuldig zijn, maar zoals ik ook al opmerkte bij de Hero kernel source: als een .config is aangepast zit er wel een luchtje aan.
In elk geval zou je met een binary diff een globale inschatting kunnen maken of aan kunnen wijzen waar de veranderingen in zitten. Comments en whitespace hebben geen invloed op compilaties dus onschuldige veranderingen neem je per definitie niet daarin mee.
Lijkt me verstandig van HTC om hier meer duidelijkheid over te geven zodat hun naam zuiver blijft.
Mij ook. Zeg gewoon wat er anders is aan de versie die in de schappen ligt en doe er niet geheimzinnig over.

@King4589: Je hebt niet begrepen wat het verschil is tussen source code en een binary.

[Reactie gewijzigd door gertvdijk op 25 januari 2010 15:55]

Een binary diff is alleen nuttig als men dezelfde compiler versie en optimalisaties heeft gebruikt, anders krijg je ook de verschillen die de compiler erin heeft geoptimaliseerd.
Waarschijnlijk alle code verwijdert dat in strijd is met privacy-wetgevingen ? ;)
Nee serieus, ze zullen wel hun redenen hebben maar het zou gewoonweg correct zijn om aan te geven dat bepaalde code is aangepast en de reden daarvoor... Gewoon helder houden hoe en waarom, zij weten net zo goed als alle anderen dat men kan zien dat bepaalde bestanden recentelijk aangepast zijn...
Wat ik me afvraag voornamelijk is of daar ook een verklaring is geweest voor deze zelfde praktijken bij de Hero ? Aangezien dat alweer een poosje terug is....
Waarschijnlijk alle code verwijdert dat in strijd is met privacy-wetgevingen ? ;)
Privacy gevoelige code in de kernel? Dat lijkt me nogal omslachtig, zeker omdat de kernel geen directe toegang heeft tot de privacy gevoelige data op een telefoon. Het zou makkelijker zin om de bestaande android API hiervoor te gebruiken, en dat is geen onderdeel van de kernel.
Och, ik heb regelmatig meegemaakt dat er in comments in broncode opdrachten stonden voor andere developers. En soms ook worden zekere personen voor rotte vis uitgemaakt.

Hoe dan ook, dit soort dingen wil je dan weer niet publiceren.
Dat heeft niet veel te maken met Privacy wetgeving, en meestal zijn dat comments, niet code.
Zo'n gevoel heb ik ook. In grotere software projecten worden soms complete scheldtirades gehouden tegen collega's en/of klanten. Kan me nog goed herinneren dat ik een keer een stukje gecode heb voor een klant waar meer dan de helft comments waren die benadrukte hoe dom de klant wel niet was. Dit wil je niet publiceren. Hoewel dit inderdaad niet terug te zien is in de compilaties, veranderd de source weldegelijk.

Het probleem is inderdaad dat dat puur speculatie is.
Ik heb wel eens geleerd dat twee keer dezelfde code compileren nooit dezelfde binary geeft.
Dus een diff op binary heeft geen zin.
Ik heb wel eens geleerd dat twee keer dezelfde code compileren nooit dezelfde binary geeft.
Dus een diff op binary heeft geen zin.
Als je dezelfde compiler/toolchain e.d. gebruikt moet het wel degelijk hetzelfde zijn.
Nope. Voorbeelden: de compilatie timestamp zit erin (bijvoorbeeld door het gebruik van een #defines die de compiler genereert) of de volgorde van linken is anders (*.o is niet per definitie op alphabet gesorteerd). In grote lijnen zijn de binaries identiek (en functioneel zeker), maar bit-voor-bit is het anders.
Kan het geen simlockspecificatie zijn geweest die gewijzigd is en/of andere soortgelijke zaken?
Kan het geen simlockspecificatie zijn geweest die gewijzigd is en/of andere soortgelijke zaken?
Nee, dit is geregeld in de radio, niet in de kernel. De radio is een aparte firmware (en volgens mij ook device) die de hele draadloze verbindingen gedeelte afhandelt (GSM, UMTS e.d.).
Van radio's zijn aparte updates te vinden en zijn closed source. Voorbeeld: HTC Hero Radio updates.

[Reactie gewijzigd door gertvdijk op 25 januari 2010 16:52]

Vaak worden codenamen van toestellen bekend gemaakt uit de source code. Zo was HTC Passion (Nexus One/Bravo) al bekend voordat de Hero werd aangekondigd. Kan zijn dat ze dat hebben aangepast.

Het kan ook zoiets simpels zijn als wat slordig commentaar uit de source halen. Er was wat Windows 2000-code gelekt een aantal jaren geleden, en dat schijnt vol met scheldwoorden te hebben gezeten zoals "The user f*cked up", en "Fall back to the sh*tty error handler" om maar wat te noemen. Het zou goed kunnen dat de code wat presenteerbaarder gemaakt, want interne code is niet altijd even professioneel.

Zeer waarschijnlijk hebben ze niets aangepast dat de daadwerkelijke functionaliteit aanpast, en anders komen we daar snel genoeg achter. Alleen puristen zullen dit een probleem vinden.

[Reactie gewijzigd door DCK op 25 januari 2010 23:13]

Denk dat dat het geval is, in die korte tijd zullen kunnen ze geen grote veranderingen door voeren.

Misschien zelfs een geval van een developer die een deadline moest halen en wat slordige code had ingeleverd en later terug is gekomen om het te corrigeren.
zou dit niet "gewoon" een kwestie van screening en documentatie zijn?
Ik vind het niet onwaarschijnlijk dat je één en ander even controleert (en de vunzige comment eruit haalt) voor je het globaal verspreid?
Wie weet haddeen die ontwikkelaars comments gezet die in strijd zijn met bedrijfsgeheimen of andere commerciële belangen... of elke stomme dt fout laten staan :p
De laatst aangepaste broncode moet toch ook gepubliceerd worden als gebruikers hierom vragen (als je onomstotelijk kan bewijzen dat de broncode die online staat anders is dan de code die de telefoon draait) ?

EDIT: door Blokker_1999 al beantwoordt.

[Reactie gewijzigd door Mavericky op 25 januari 2010 15:36]

Wel goed dat HTC niet moeielijk doet over open-source ontwikkeling, het is daarentegen niet zo goed dat ze oudere versies uitbrengen dan ze meegeven met de toestellen.

[Reactie gewijzigd door Blue_Entharion op 25 januari 2010 15:47]

Aanvankelijk deed HTC weldegelijk moeilijk, maar gaven nadat gebruikers druk zetten toch toe vanwege de licensie.

Wat niet van een leien dankje ging, was het verkrijgen van de aanpassingen door HTC zelf. Die vallen namelijk onder de Apache licensie en zijn dus closed source :) Daar valt eigenlijk alles behalve de kernel onder.
Jaja en elke zin begint met een hoofdletter hé slimmerik.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True