Ta reda på hur Xiaomi bryter mot villkoren för GPL och hur deras beslut att göra det påverkar Android-communityt och framtiden för operativsystemet.
Xiaomi har tillkännagett sin spektakulärt specificerade Mi Note Pro, som har senaste i Qualcomms Snapdragon-processorer tillsammans med en stor 2K-skärm och 4GB RAM för ett fantastiskt pris. Som sagt, det finns något som inte är så bra med Xiaomis erbjudanden som är ett bekymmer för många utvecklare, särskilt många hittas här på XDA: Xiaomis upprepade brott mot GPLv2-licensen för Linuxkärnan som Android (och därmed Xiaomis enheter) är byggt på.
Xiaomi är inte det enda företaget som har brutit mot GPL dock, och tidigare har många OEM-tillverkare som Rockchip och Micromax också gjort det, med många som fortsätter sitt illegala beteende till denna dag. Vi pratade lite om detta på XDA, och varför skulle vi inte det? XDA är i första hand en utvecklargemenskap och vi är kända för att förse tusentals avancerade användare med modifieringar av programvara som faller under GPL, men vår community följer
vår GPL-policy och därför ser vi inte mycket skumt anslag här.Så vad gör Xiaomi för fel, exakt? Och är det olagligt, omoraliskt eller helt enkelt olämpligt? Eftersom det kan finnas några läsare, användare eller till och med utvecklare som inte har koll på dessa frågor, låt oss ta en snabb titt på vad GPL betyder.
GNU General Public License (GPL) är en fri mjukvarulicens som garanterar utvecklare, OEM, användare eller någon form av organisation som slår samman de tre för att få obegränsad tillgång till grunderna och funktionaliteten i programvaran som faller under den. De kan använda, studera, dela och kopiera eller modifiera nämnda programvara, eftersom det är fri programvara. GNU-utvecklare av GNU-projektet definierar fri programvara så här:
"Gratis programvara" betyder programvara som respekterar användarnas frihet och gemenskap. Ungefär så betyder det det användarna har friheten att köra, kopiera, distribuera, studera, ändra och förbättra programvaran. Således är "fri programvara" en fråga om frihet, inte pris. För att förstå konceptet bör du tänka på "fritt" som i "yttrandefritt", inte som i "gratis öl".
Så även om fri (yttrandefritt) programvara i slutändan kan hamna gratis (gratis öl), handlar det verkligen om att främja en utvecklarmiljö som fokuserar på framstegen inom datavetenskap och programvaruteknik genom kollektiv förbättring, delning och lärande av någon fri programvaras kod.
GNU-projektet har en mycket ädel syn på mjukvara, och de kampanjar för att de tror att varje användare och skapare förtjänar denna frihet. Det tillåter inte bara allmänheten att kontrollera programmet och vad det gör, utan även proprietär programvara gör motsatsen genom att kontrollera användaren genom utvecklarens kontroll av programmet, vilket skulle resultera i ett instrument för orättvis makt. Med de grundläggande friheterna för fri programvara (som kör programmet hur du vill, studerar hur det fungerar, distribuerar det när du vill och distribuerar dina egna ändringar), programvara teknik blir mer som en ren vetenskap som tillåter en att ha papper snarare än patent, vilket gör att varje programmerare kan ta en titt på någons teori om kod, deras metoder och deras föredragen programmeringsstil för att främja sin egen förståelse för hur det fungerar, och samla insikter för sin personliga utveckling. Dessutom tillåter det honom att ta tag i den programvaran och ändra den.
Ordet "proprietär" som används för att beskriva icke-fri mjukvara innebär inte bara att kodens inre funktion är juridiskt avvikande för andra parter; det innebär också att ägaren av programvaran du använder (vare sig det är en app du laddar ner eller ett operativsystem du kör) är skaparen, och därmed bestämmer ägaren om du kan kopiera den eller dela den. Sådana icke-fria hinder leder till att färre personer använder programmet och lär sig av det, och att användarna inte kan ändra, anpassa eller fixa programmet. Om man bortser från de mer etiska grunderna om social sammanhållning och dess undanhållande ideologier, har denna materiella skada en märkbar inverkan på framtid för datavetenskap och konsumenter, särskilt med tanke på att datavetenskap och dess biprodukter är sammanflätade med användarnas liv - och deras framtid - mer än någonsin i dag.
Det finns ingen hake. Men det finns saker som irriterar OEM-tillverkare. De personer som försöker modifiera fri programvara licensierad under GPL måste följa vissa regler.
Först och främst måste villkoren vara tillgängliga för alla som får en kopia av GPL-licensierat arbete och alla som följer villkoren för GPL har tillstånd att dela, studera och modifiera arbetet såväl som dess derivat. Till skillnad från andra licenser, GPL gör tillåt att fri (yttrande) programvara inte är gratis (fri öl), till skillnad från andra licenser som uttryckligen förbjuder kommersiell distribution.
En GPL-licenstagare eller -distributör får inte införa ytterligare begränsningar av rättigheterna som beviljas av GPL - förbjuder distributionen av GPL-programvara utan uttryckligt avslöjande av dess natur, eller under sekretess kontrakt. Alla patent som används i GPL-programvaran är tillgängliga för obegränsad användning för dem som följer GPL-villkoren.
GPL kräver också att programmen som distribueras som förkompilerade binära filer åtföljs av en kopia av källkoden och en ansvarsfriskrivning som informerar användaren eller utvecklaren om att programvaran är GPL-licensierad eller gratis att studeras, delas eller modifieras under GPL. Och en av de viktigaste delarna, GPL kräver att distributörer tillhandahåller alla mottagare en licens tillsammans med programmet, samt göra källkoden tillgänglig via något medium för dem som begär det, tillsammans med tydliga instruktioner om hur man skaffar källkoden.
Android är licensierad under Apache 2.0 licens och inte GPL. Apache är en mer "tillåtande" licens och har inte samma krav som GPL. Det kräver inte att du distribuerar källkoden för ett täckt verk och det härledda verket bär inte nödvändigtvis Apache-licensen, som den mer virala GPL, så länge du inkluderar deras licens.
Så även om GPL främjar tillväxten av fri mjukvara, är Apache mer libertarian med sin inställning till hur villkoren för framtida härledningar utvecklas. Och OEM-tillverkare kan till exempel ta Apache-licensierad programvara, lägga till sina skal, bloat och vad-har-du, och sedan stänga ner det och hålla källan stängd. Vilket är vad Xiaomi och många OEM-tillverkare gör. Men Linux-kärnan som Android bygger sin grund på är inte licensierad under Apache, för Linux är GPLv2 programvara och på grund av denna "virala" eller "infektiösa" egenskap hos GPLv2, den Linux-baserade kärnan i Android som använder Linuxs GPLv2-kod har att förbli GPLv2.
Xiaomi släppte inte sin Android-grens kärnkällkoder. Eftersom deras kärna är baserad på Androids kärna, som är baserad på Linuxs kärna, vilket är GPLv2, villkoren för GPLv2 förs hela vägen till Xiaomi. Om de skulle ha använt sin egen kärna, skulle de ha all rätt att inte distribuera sin källa, och de skulle inte ha någon skyldighet att göra det heller. Men genom att modifiera och distribuera GPL-programvara måste de följa GPL-villkoren, i det här fallet GPLv2.
Användare och utvecklare förtjänar med rätta tillgång till kärnans källkoder, och för XDA avsaknaden av en sådan viktig del av Xiaomis modifierade Android-kärnkälla innebär att tweaking och mixtrande på Xiaomi-enheter får en smäll. Och för en gemenskap som ägnar sig åt att utforska världen av Android och förvandla den till det bästa den kan bli, utelämnad från att modifiera programvaran för telefoner från snabbast växande OEM i världen är en viktig fråga.
Det har gjorts framställningar för att få Xiaomi att följa GPLv2 och släppa sina källor i god tid, men hittills har de bara lyckats få oss löften. Och dessa löften har fortfarande inte hållits. Hugo Barra, vicepresident för Xiaomi, lovade i oktober 2014 att vi skulle se kärnkällor för Mi3 i "inom de närmaste veckorna", men det hände aldrig. Dessutom sa de i december förra året att deras källor skulle släppas inte 2014, men 2015.
Varför släppte inte Xiaomi källorna för sin Mi3-enhet i god tid? Hugo Barra sa i december att de inte gjorde det för att förhindra en informationsläcka på deras kommande enheter. Han hävdar:
"Kärnkällkoden för dessa enheter innehåller en betydande mängd källkod som kommer att användas i två kommande modeller. Om vi släpper kärnkällan i dess nuvarande tillstånd kommer vi att avslöja mer än vi skulle vilja om framtida enheter. Vi kommer att ändra på detta framöver, men just nu är det en begränsning vi måste leva med. Vi hoppas att du kan förstå denna position, och vi är mycket ledsna för den frustration vi kan ha orsakat!"
Rättfärdigar detta deras handlingar? Självklart inte. De är en miljardärstillverkare i en miljardärsindustri, och de visste mycket väl att deras kod kördes under GPLv2:s villkor och att de var tvungna att följa den. Under 2013 ett tillkännagivande gjordes stoltserar med Xiaomi Kernels öppna källkod. De gjorde en stor sak om att utvecklare skulle kunna anpassa ROM för Xiaomi-smarttelefoner, och dess apologeter utropade Xiaomi som "allt om öppen källkodsdelning". Spola framåt ett år och deras källkoder är försenade på grund av omotiverade skäl, när deras kärnkällor borde ha distribuerats till konsumenter från början, utan att vänta på att konsumenterna ska jaga dem med högafflar och utan att spotta dem i ansiktet med absurt förseningar. Och det tar inte ens hänsyn till arbetet hos dem som har gått före dem, och det ordspråkiga skit Xiaomi (och alla andra OEM som inte följer GPLv2) tar sig an dem varje gång de släpper en ny enhet.
Jag vill precisera en sista sak för de läsare som inte är bekanta med distinktionen: GPL är en licens och inte ett kontrakt. Vissa jurisdiktioner ser viktiga skillnader mellan dessa två, eftersom kontrakt är verkställbara av kontrakt lag och licenser faller under upphovsrätt. Så att bryta en licensperiod är fortfarande rättsligt. De distributörer som inte accepterar GPL: s villkor får inte kopiera och distribuera GPL-programvara enligt lag. Eftersom de valde att distribuera programvaran gör de sig skyldiga till intrång i lagens ögon.
Oavsett om någon inte håller med GNU: s vision om demokratisk, öppen och inkluderande fri programvara eller inte, fattar inte Xiaomis beslut, och deras upprepade brott mot villkoren de köpte in sig på, inte minst fel. De tjänar på Android i en hastighet som ingen rival har sett och de följer inte reglerna som gjorde Android till vad det är idag, reglerna som gjorde det möjligt för både OEM-tillverkare och enskilda utvecklare att främja tillväxt och framsteg inom OS-ekosystemet. Reglerna som miljontals respektfullt har följt för att skapa sina egna framgångsrika karriärer, sina egna framgångsrika företag, och vår favorithobby på XDA.
Ur ett praktiskt perspektiv är det inte det lättaste att gå om detta i en domstol. Kinas regering är medveten av patentstöld, piratkopiering och upphovsrättsintrång av alla slag och slag som pågår i landet, men är ovillig att göra något åt det. Många analytiker och akademiker skyller på detta latent plagiat som Kina har sett i flera år, vissa tyder på att det kan vara en integrerad del av konfuciansk filosofi som den kinesiska kulturen till stor del bygger på. Men oavsett om akademiker, analytiker eller frustrerade affärsmän har rätt eller inte, ser problemet med kinesisk upphovsrättsintrång hela spektrat av produkter, och Android är inte annorlunda.
Xiaomi är i rampljuset som en av de viktigaste OEM-tillverkare i dag, med ett varumärkeskännedom som växer för varje dag och en möjlig intrång på den amerikanska marknaden snart. Även om deras överträdelser inte nödvändigtvis betyder mycket för den tillfälliga Android-konsumenten, har det en allvarlig inverkan på inte bara utvecklare, utan ekosystemet som helhet. Som GNU-projektet antyder, skadar denna speciella praxis, speciellt i det här fallet, utvecklingen av vår älskade programvara.
Och detta är också en fråga om respekt och ödmjukhet. Jag lämnar er med ett citat av en visionär revolutionär som erkände att hans inverkan på världen var så tack vare det tidigare arbetet av dem före honom. Låt oss hoppas att Xiaomi en dag anammar denna filosofi, följer villkoren och hjälper Android att blomstra som bara den kan.