EXAMENSARBETE INOM TEKNIK, GRUNDNIVÅ, 15 HP STOCKHOLM, SVERIGE 2019 Undersökning av alternativ för virtualisering av Android på SailfishOS AMANDA NEE KTH SKOLAN FÖR ELEKTROTEKNIK OCH DATAVETENSKAP Abstract This report documents the result of an attempt to port the virtual android environment Anbox to the smart phone operating system SailfishOS. The purpose of the project is to see if such a solution can make SailfishOS and similar operating systems useful in a society that indirectly requires you to be able to run Android or iOS applications on your phone. The result of the project makes a number of short comings clear in the SailfishOs platform which hindered an actual attempt to evaluate the compatibility between Anbox and SailfishOS. 2 Sammanfattning Denna rapport redovisar resultatet från ett försök att portera den virtuella androidmiljön Anbox till det telefoninriktade operativsystemet SailfishOS. Detta görs för att uppskatta om en sådan lösning kan få SailfishOS och liknande operativsystem användbara i dagligt bruk i dagens samhälle som har ett indirekt krav på att man ska kunna köra Android eller iOS appar. Resultatet visar på begränsningar som SailfishOS-plattformen har idag vilket hindrade en ordentligt granskning av kompatibiliteten mellan Anbox och SailfishOS att genomföras. 2 Innehåll 1 Introduktion 5 1.1 Bakgrund ......................................... 5 1.2 Problem .......................................... 6 1.3 Syfte ............................................ 6 1.4 Mål ............................................ 6 1.5 Fördelar, Etik och Hållbarhet .............................. 6 1.6 Metod ........................................... 7 1.7 Avgränsningar ....................................... 7 1.8 Översikt .......................................... 7 2 Teori 9 2.1 informationsinhämtning ................................. 9 2.2 Kernelmoduler i Linux .................................. 9 2.3 Programvaran - Anbox .................................. 9 2.4 Platformen - SailfishOS ................................. 10 2.5 ARM-plattformen .................................... 10 2.6 Versionshanteringssystem - Repo ............................ 10 2.7 Hardware Adaption Developers Kit ........................... 10 3 Metod 11 3.1 Mjukvaruval ........................................ 11 3.2 Prototypen ........................................ 11 3.3 Utvecklarmiljön ...................................... 12 3.4 Arbetsmetod ....................................... 12 4 Genomförande 13 4.1 Prototyp 0 - Försök med ren linuxkernel ........................ 13 4.2 Prototyp 1 - Fungerande bassystem ........................... 14 4.3 Prototyp 2 - Fungerande anboxkompatibel kernel ................... 19 5 Avslut 23 5.1 Resultat .......................................... 23 5.2 Diskussion ......................................... 23 5.3 Sammanfattning ..................................... 24 5.4 Framtida arbete ...................................... 24 Referenser 24 3 4 INNEHÅLL Kapitel 1 Introduktion 1.1 Bakgrund Idag finns det två plattformar för smarta mobiltelefoner, Android och iOS. Båda har effektivt sett stängd källkod, båda ägs av stora amerikanska företag och båda används för att samla in så mycket information om sina användare som det går, direkt eller indirekt. Dessa två plattformar har tillsammans oligopol på världsmarknaden. Googles Android har delar med öppen källkod då det är baserat på Android Open Source Project vanligen kallat AOSP men har även licensbelagda kärnkomponenter likt Play Store och Google Services baserade på stängd källkod. Då dessa applikationer har en central del i plattformen är androidplattformen i realitet stängd. Android till skillnad från iOS är tillgängligt för tillverkare andra än Google att utveckla enheter till, vilket är varför Android idag är den största plattformen i världen.[1] Företagen bakom dessa två plattformar är baserade i USA vilket kan göra att tillverkare i omvärlden effektivt bli förbjudna att använda någon de två plattformar som har världsomfattande oligopol om regeringen i USA bestämmer sig för att svartlista tillverkaren. Detta gör att Android på grund av sin stängda källkod inte bara är världens största plattform men även ett kraftfullt politiskt och ekonomiskt vapen.[2] Efter Snowden läckorna[3], Cambridge Analyticas[4] och att anställda på Amazon använder inspelade ljudklipp från Alexa som skämt på deras interna forum[5] har fler och fler blivit intresse- rade att byta ifrån plattformar där användaren betalar genom att ge all sin personliga information till plattformsägaren. Problemet är att det just nu inte finns en mobilplattform som respekterar sina användare. Vi har även historiskt sett att monopol eller oligopol inte leder till innovation eller i vissa fall inte äns en kvalitativ produkt. Där ett relevant exempel är hur linuxkerneln tillsammans med GNUs verktyg blev ett operativsystem som tävlade med de på den tiden stora unixbaserade opera- tivsystemen för att sedan konkurrera ut dem och bli standard i servervärlden. Ett operativsystem som från början utvecklats av hobbyister på sin fritid för att komma bort från mjukvarujättarnas restriktioner konkurrerade ut en mångmiljonindustri[6]. Behovet av appar I dagens samhälle är det svårare och svårare att leva utan en Android eller iOS baserad mobiltelefon. Om du ska åka med kommunala färdmedel i Stockholm behöver du ha ett accesskort och veta att du har reskassa på detta eller använda en mobil app till Android eller iOS. Om du ska försöka parkera i Stockholm behöver du en mobil app då antalet p-automater minskat till en sådan grad att det är väldigt svårt att hitta en. Dagens gym håller sakta att gå från gym kort och använder istället en app för inträde och bokning av pass. Om du är student måste du nu specifikt beställa ett studentkort eller använda en mobil app. Om du vill logga in på din banks hemsida gör du det lättast med en mobil app eller så loggar du in i bankens egna app och uträttar ditt ärende. Beställning av taxi håller också på att gå över till appar. Det görs även försök att byta ut kredit och betalkort mot applikationer så som Swish, Samsung pay och Google pay. Som regel håller all gammal funktionalitet som tidigare krävt personal i form av kassörer sakta på att gå över till appar och då fokus skiftar försämras kvalitén och användarvänligheten av de gamla systemen då pengar läggs på de nya tjänsterna istället. 5 6 KAPITEL 1. INTRODUKTION Majoriteten av dagens kommunikation sker också via appar. Appar som i vissa fall inte har något sätt att användas från en vanlig dator. Medan vanlig telefoni och sms fortfarande existerar väljs dessa i många fall bort på grund av sin avsaknad av funktionalitet de nya apparna har. Detta förstärker också behovet av en enhet som kan köra android eller iOS. En alternativ plattform SailfishOS är ett operativsystem för mobiltelefoner som varken är baserat på Android eller iOS. Detta gör att det måste hitta ett annat sätt att köra applikationer från någon av de nämnda för att kunna användas i dagligt bruk. Detta görs idag med hjälp av virtualiseringslösningen som kallas Alien Dalvik[7] vilket gör att operativsystemet kan köra androidapplikationer. Men implementa- tionen har begränsningar vilket gör att användaren måste köpa en ny telefon om de vill ha stöd för en nyare version av Android. Detta krävs inte för SailfishOS då alla SailfishOS-enhet har rullande uppdateringar vilket betyder att alla enheter får den senaste versionen av operativsystemet. 1.2 Problem Behovet av androidappar gör det svårt att utveckla en alternativ plattform för mobilmarknaden. SailfishOS har i detta fall en lösning men då androidstödet är låst vid en viss version av android per enhet och mjukvaran är licensbelagd skapas samma behov av att köpa en ny enhet som i androidvärlden, där applikationer sakta inkluderar ny funktionalitet vilket gör att versionskravet för android ökar. Faktumet att huruvida tillverkaren utvecklar en ny SailfishOS enhet eller ej är en osäkerhet som förstorar problemet. För att frångå behovet av att köpa en ny enhet och behovet av att en ny enhet existerar krävs en fungerande lösning för androidstöd som är baserad på öppen och fri källkod. En sådan lösning finns inte idag. 1.3 Syfte Syftet med projektet var att undersöka alternativ till nuvarande implementation av virtualisering av android för att se om det finns ett realistiskt alternativ som kan implementera ett rullande stöd för android på plattformen SailfishOS. Syftet med rapporten var att dokumentera utmaningen, tillvägagångssättet och resultatet, så att detta kan användas för att hjälpa och informera framtida arbete inom området. 1.4 Mål Arbetets mål var att se om Anbox som tillåter användaren att köra androidappar på desktop linux gick att få att fungera på SailfishOS och i så fall vad som krävdes. Uppsatsens effektmål är att presentera resultatet från porteringsförsöket, dokumentera detta, re- flektera över det och föreslå ett nästa steg i arbetet. 1.5 Fördelar, Etik och Hållbarhet Detta projekt försöker få programvara med öppen och fri källkod att fungera på en annan plattform med öppen och fri källkod1. Då öppen och fri källkod ger alla oavsett ställning vare sig i samhället eller ekonomiskt samma rätt samt möjlighet att ta del av, lära sig om och modifiera koden är det ett hållbart sätt att utveckla mjukvara ur ett samhällsperspektiv. Projektets indirekta mål är att försöka göra denna öppna plattform mer gångbar och ta bort behovet av att med jämna mellanrum behöva ny hårdvara. Detta har i sin tur den indirekta påver- kan att försöka motverka
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages30 Page
-
File Size-