Net zoals zoveel xkcd's is hij zo grappig omdat hij een kern van waarheid heeft: nummertje 2347, over afhankelijkheid. Het is namelijk waar: veel projecten op het gebied van digitale infrastructuur hangen af van vrijwilligers die een klein of groter stukje software bijhouden. Hetzelfde geldt voor telefoons; de bekendste custom-rom ter wereld is na al die jaren nog altijd in handen van vrijwilligers.
LineageOS is een opvallend onopvallende organisatie. Als je een custom-rom hebt, valt op hoe vaak en snel er updates komen, maar de timing van heel nieuwe versies is dan weer grillig. We spraken Nolen Johnson die bij LineageOS niet alleen device maintainer is, maar ook verantwoordelijk is voor developer relations.
LineageOS is een organisatie van vrijwilligers en dat is al jaren zo. Waarom eigenlijk en hebben jullie de ambitie om door te groeien naar een organisatie met betaalde krachten?
"Nee, die ambitie hebben we niet. We bestaan nu alleen uit vrijwilligers en dat zal ook zo blijven. De rotzooi rond Cyanogen heeft laten zien hoe lastig dat is om te doen."
Dat is een interessante geschiedenis. LineageOS komt voort uit CyanogenMod, de eerste en bekendste custom-rom voor Android. De makers van CyanogenMod, onder wie oprichter Steve Kondik, die we interviewden in 2015, wilden meer. Er kwam een eerste betaalde deal om CyanogenMod mee te leveren met de OnePlus One, de eerste OnePlus-telefoon uit 2013. Vervolgens werd Cyanogen Inc verantwoordelijk voor de software van Wileyfox, een Britse telefoonfabrikant die enkele jaren actief was. De door vrijwilligers onderhouden versie van Cyanogen OS bleef CyanogenMod heten en bleef online.
:strip_exif()/i/1404805337.jpeg?f=imagenormal)
Eind 2016 ging het mis. Cyanogen Inc maakte bekend te stoppen met de ontwikkeling van CyanogenMod en droeg de ontwikkeling terug over aan vrijwilligers. De ontwikkelaars wijzigden de naam in LineageOS begin 2017 en gingen verder waar CyanogenMod was gebleven. Als je die geschiedenis kent, snap je dat men het bij LineageOS lastig vindt om enthousiast te worden van het idee om een bedrijf te bouwen rond een custom-rom.
Zonder betaalde krachten ben je natuurlijk afhankelijk van vrijwilligers. Niet iedereen kan en wil evenveel tijd vrijmaken om te werken aan nieuwe builds of ondersteuning voor nieuwe toestellen. Kun je iets vertellen over waar de vrijwilligers zoal vandaan komen en hoeveel tijd ze spenderen aan LineageOS?
"Ja, dat verschilt onderling inderdaad veel. Ik spendeer heel veel tijd aan LineageOS, maar sommigen zijn er maar een paar uur per maand aan kwijt. Wij gaan uit van wat mensen kunnen en willen besteden. We komen natuurlijk ook uit allemaal verschillende landen. Ik kom uit de VS en er zijn ook ontwikkelaars uit Iran, China, Peru, Frankrijk, Mexico, Argentinië en zoveel andere landen. We houden contact via gesloten kanalen op onze openbare Discord."
En hoe werven jullie nieuwe ontwikkelaars?
"Dat doen we niet, ze komen eigenlijk meestal naar ons toe. Ze dienen code en projecten in bij ons en zo komen we in contact."
Als organisatie met vrijwilligers zijn jullie afhankelijk van donaties voor inkomsten, want voor downloads van jullie custom-rom vragen jullie geen geld en er zijn geen deals met smartphonemakers of met app-aanbieders voor het meeleveren van bloatware. Hoe gaat het met donaties?
"Het is genoeg. Dat wil zeggen, het is genoeg om onze kosten te dekken en om een paar toestellen te kunnen opsturen naar ontwikkelaars om aan het platform te werken. Financieel stelt het allemaal niet veel voor. Het is ook elk jaar ongeveer hetzelfde eerlijk gezegd."
LineageOS is een custom-rom voor Android en de primaire ontwikkelaar van Android is Google. Hoe is jullie relatie met Google momenteel?
"Die hebben we niet. Ze accepteren soms veranderingen die wij maken in het Android Open Source Project als zij besluiten dat die nuttig zijn. Buiten dat is er niets op te merken, want wij ondersteunen geen Google-apps. Als je Google-apps hebt in LineageOS, komen die altijd van andere entiteiten, want wij verspreiden die niet."
:strip_exif()/i/1340180006.png?f=thumblarge)
Ook dat heeft een lange geschiedenis. CyanogenMod had in het begin, in 2009, namelijk wel Google-apps aan boord. De zoekgigant vond dat niet zo'n goed idee en stuurde daarom een verzoek om te stoppen met het verspreiden van de custom-rom. Android zelf is open source en LineageOS draagt daar dus aan bij via het AOSP, maar de Google-apps zelf zijn niet open source. Toepassingen als de Play Store, Gmail en YouTube zijn gesloten.
Wie dat wil gebruiken op LineageOS, kan daarvoor op internet zoeken naar 'gapps', bundelingen van Google-apps die geschikt zijn voor de Android-versie waarop je build draait. Dan is het ook mogelijk om die 'over' LineageOS heen te flashen. Als LineageOS die zou integreren, zou Google vermoedelijk wéér vragen om te stoppen.
Maar er is meer dan apps. Google heeft bijvoorbeeld ook Play Services, het framework waar veel apps gebruik van maken. Het is met de bundeling van Google-diensten mogelijk om in te loggen op een eigen Google-account, maar wie dat niet wil, kan op custom-roms ook gebruikmaken van diensten als MicroG, waarbij je wél toegang hebt tot Play Services en andere Google-diensten, maar geen accountgegevens hoeft in te vullen. Dat is vooral populair bij de mensen die wel Android willen, maar geen Google.
Behalve Google zit de smartphonemarkt ook vol met fabrikanten zoals Samsung, Xiaomi en OnePlus. Hoe is jullie relatie met hen?
"Sommige van de fabrikanten sturen ons toestellen op om ervoor te zorgen dat er LineageOS op beschikbaar komt, maar vaak is dat ook niet zo. De meeste toestellen komen trouwens gewoon van de ontwikkelaars zelf, die geven om het project en die willen er dus graag aan werken."
Sommige fabrikanten geven om LineageOS omdat het bij sommige consumenten vermoedelijk een extra verkoopargument kan zijn. Niet elke fabrikant doet dat. Sterker nog, er zijn ook fabrikanten die de bootloader niet-ontgrendelbaar maken en daarmee de deur voor custom-roms dichtgooien.
Dan zijn er nog de spin-offs. LineageOS is behalve een custom-rom op zichzelf ook de basis voor veel andere custom-roms en veel projecten werken met jullie rom als basis. Bovendien zijn er veel custom-roms die zich labelen als Unofficial LineageOS. Wat doen jullie daarmee?
"Zij gedragen zich als downstreams. We hebben niet veel contact met ze, behalve als ze code bij ons indienen, bijvoorbeeld fixes. Veel daarvan doen dat ook echt. Ze kunnen ook officiële versies worden als ze de device tree bij ons indienen. Dan kijken we ernaar en maken we de fork voor hen, zodat ze ermee verder kunnen."
Veel mensen zien custom-roms, en dan vooral LineageOS, als een manier om langer updates te krijgen voor hun telefoon dan een fabrikant biedt. Daardoor hopen ze langer veilig met een telefoon te kunnen doen. Wat is een reden om te stoppen met ondersteuning; ligt dat bijvoorbeeld aan de interesse daarvoor?
"Het ligt allemaal aan de maintainer, de ontwikkelaar die de ontwikkeling voor een telefoon leidt. Als iemand een volledig werkende port voor de eerste Android-telefoon zou aandragen, zouden we het vermoedelijk nog accepteren als het goed genoeg zou werken. We hebben niet echt eisen voor hoe oud een telefoon maximaal mag zijn."
Wat zijn dan obstakels om telefoons jaren en jaren te blijven ondersteunen?
"Dat is een aantal dingen. Ten eerste hebben veel firmwares propriëtaire binaries aan boord die bugs vertonen en vervolgens erin gepropt moeten worden. Ook zijn er telefoons met oude, archaïsche Linux-kernels aan boord die veel patches nodig hebben en waarvoor het moeilijk is om te backporten. Zo vereist Android 12 in de kernel ondersteuning voor Berkeley Packet Filter en dat gaat veel oudere toestellen de kop kosten op Android 12."
Er zit veel in dat antwoord. Ten eerste de propriëtaire binaries. Daarbij gaat het bijvoorbeeld om drivers voor bijvoorbeeld sensors, zoals camera's. Die zijn gesloten en de bronbestanden zijn er niet. Die simpelweg overzetten op de nieuwe Android-versie gaat vaak niet, omdat die dan bugs vertonen en er geen zicht is op een fix.
De oudere Linux-kernels zijn ook een probleem. Dat levert veel extra werk op voor ontwikkelaars. De vereiste ondersteuning voor BPF in Android 12 is nu nog geen probleem, want LineageOS op Android 12 is nog niet eens uit en het is prima te doen om toestellen te blijven ondersteunen op Android 11. Desondanks is het op de lange termijn natuurlijk wel een probleem.
Tot slot: LineageOS heeft ook eigen features. Hoe komen die tot stand?
"Dat hangt helemaal af van wat ontwikkelaars willen schrijven. We houden er ook rekening mee dat we onze oude features porten naar nieuwe versies. Soms zit er in AOSP een concurrerende functie en we laten dan meestal onze eigen functie vallen om de AOSP-versie te gebruiken en die beter te maken."