Inlägg märkta ‘Replicant’

Replicant, en fri distribution av Android

fredag, 16 december, 2011

Men, Android är ju fritt och med öppen källkod?!

Nja. Androidsystemet i sig lyder under Apache License version 2, som är fri. Kärnan är Linux, som till stor del lyder under GPLv2. Linuxkärnan innehåller emellertid en stor del ickefria komponenter, av vilka vissa faktiskt används av Androidtelefoner. Det rör sig främst om drivrutiner till modem, GPS, kamera, mikrofon och dylikt. Ovanpå systemet finns det rikligt med applikationer som inte är fria. Googles svit av användarapplikationer, såsom Market, Maps, GMail och Calender är exempel på ickefri mjukvara. Det har redan sedan länge varit ett problem för exempelvis tredjepartsdistributionen CyanonogenMod, som fick med Google att göra efter att ha skickat med dessa appar med sina paket. Telefonoperatörer och tillverkare av mobiltelefoner har även som regel att bygga egna appar och även modifiera Android, varav utkomman sällan är fri mjukvara.

Android Market är som nämnt ickefri mjukvara, och inuti “butiken” kryllar det av tredjepartsappar med tveksamma licenser. Engelskans vardagliga ord för gratis är just free, vilket olyckligtvis framkallar förvirring. Att Google väljer att kategorisera apparna i free och payed apps utan att tydligt ange vilken licens som gäller för respektive app, gör det svårt för användarna att veta vad som är möjligt att använda i ett fritt system.

Replicant är ett projekt som har till syfte att lösa dessa problem. Målet är Androidtelefoner med 100% fri mjukvara. Det finns en handfull modeller som man har lyckats porta Replicant för. Däribland Nexus S, Googles brandade Samsungtelefon. Det är den telefon man i skrivande stund kommit längst med i funktionellt avseende. Därför köpte jag en sådan just för att experimentera med Replicant.

Först tog jag hem källkoden till Replicant, då de färdiga image-filerna var utdaterade. 13 GB! Därefter följde jag kompileringsguiden, och bygget tog ca 2 timmar på min gamla trötta maskin. Jag mötte inga större problem på vägen. Därefter installerade jag mina nybakade image-filer på telefonen och vips så bootade jag ett helt fritt system.

Vad fungerar och vilka problem har jag stött på? De absolut viktigaste funktionerna är på plats. Ringa, ta emot samtal, skicka sms och ta emot funkar fint. Datatrafik har jag inte fått igång, men enligt utvecklarna jobbas det på det och ska redan under vissa förutsättningar fungera. Kamerorna fungerar att fotografera med, men förhandsvisningen är gråskalig. När jag provade att filma krashade kameraappen. Scanna streckkoder fungerar dock fint. Jag kör med Telia Refill, och dess koder för att ladda på och kolla saldo fungerar inte i nuläget. GPS, wifi och blåtand har i nuläget inga drivrutiner och det är oklart vilka av dessa delar som ens är möjliga att skriva fri kod för.

En liten detalj som förmodligen inte går att göra fri är bootloadern. Den kan jämföras med BIOS i en dator. Eftersom man i normala fall inte uppdaterar den, kan man likställa den med en del av hårdvaran, och hårdvaran är inte ett föremål för att göras fri, eftersom den är omöjlig (eller extremt svår) att kopiera. Att uppdatera bootloadern är inte heller riskfritt, då man kan bricka sin telefon (göra den oåterkalleligt obrukbar) om uppdateringen går snett. Givetvis vore det bra att ha även bootloadern fri, men det finns viktigare saker att lösa i första hand.

Så nu håller jag för första gången i mitt liv en mobiltelefon med helt fri mjukvara i min hand! Det finns saker att göra innan den funktionellt kan möta de krav som ställs på en modern telefon, men den är en bra bit på väg. Jag kommer fortsätta köra Replicant på denna och ska se till att hålla den fri från ickefri mjukvara. Till varje pris snarare än i den mån det går.