Linux projekti – Loppuraportti

Tässä raportissa kerromme, miten projektimme eteni, mitä haasteita meillä oli, ja millaiseen lopputilanteeseen pääsimme.

Vaihe 1: Androidin roottaaminen

Ensimmäinen tavoitteemme projektissa oli onnistuneesti rootata Android-puhelin ja dokumentoida tämä. Tämä onnistuikin helposti löydettyämme xda-developersin foorumeilta selkeät, oikealle puhelinmallille räätälöidyt ohjeet.

Vaihe 2: Etäyhteys SSH:lla

Seuraavaksi ryhdyimme käsittelemään varsinaisia aiheitamme, eli puhelimen etäkäyttöä. Pyrimme luomaan SSH-yhteyden puhelimelta puhelimelle ja tietokoneelta puhelimelle.

Aluksi tämä vaikutti erittäin haastavalta, sillä lukuisia eri ohjeita seurattuamme tyssäsi yrityksemme aina erilaisiin virheilmoituksiin. Lopulta saimme kuitenkin operaattorin tarjoaman vaihtuvan IP:n avulla yhteyden toimimaan ilman sen suurempia ongelmia tai asetusten muutoksia.

SSH-yhteyteen käyttämämme ohjelmat:

DropBear SSH Server /palvelin, jolle etäyhteys luodaan

ConnectBot /yhteyden muodostamiseen käytettävä ohjelma Androidilla

Terminal /tietokoneelta luotavaan yhteydenottoon

Vaihe 3: Androidin keskitetty hallinta

Viimeinen ja selkeästi haastavin tavoitteemme oli Androidin keskitetty hallinta. Alunperin olimme suunnitelleet tutustuvamme Puppetiin ja toteuttavamme hallinnan sillä. Tiesimme kuitenkin alusta saakka, että tämä tulisi olemaan erittäin haastavaa tai jopa mahdotonta. Etsimmekin Internetistä tietoa aiheesta ja yritimme mm. selvittää, onko kukaan muu aiemmin onnistunut tässä. Selvisi, että ilmeisesti tällä hetkellä ei ole ainoatakaan avoimen lähdekoodin ratkaisua, jonka avulla hallinta onnistuisi. Ainakaan emme onnistuneet tällaista mistään löytämään.

Meille ehdotettiinkin, että yrittäisimme tämän sijaan saada jonkinlaista hallintaa aikaan esimerkiksi fabricin avulla. Aloimmekin siis tutustumaan tähän, ja ratkaisu vaikutti huomattavasti lupaavammalta onnistumisen suhteen. Fabric on siis Python-kirjasto ja -komentorivityökalu, jonka avulla voidaan yksinkertaisesti hallinnoida komentoja.

Fabricin asennus tapahtui seuraavasti

$ sudo software-properties-gtk -e universe

$ sudo apt-get update

$ sudo apt-get install python-pip

$ pip install fabric

Käytimme pip:iä siksi, että Fabricin omalla sivulla suositellaan tekemään näin. Tämä siksi, että pip:n avulla asentuu aina viimeisin versio. Tämän jälkeen Fabricin piti siis olla asennettuna, mutta testatessamme sitä saimme virheilmoituksen, jonka mukaan näin ei ollut.

Annettiin siis vielä peruskomento

$ sudo apt-get install fabric

jonka jälkeen testattiin uudelleen:

$ nano fabfile.py

def hello():

print(”Hello world!”)

$ fab hello

Hello world!

Nyt Fabric siis toimi, ja päästiin perehtymään siihen, miten sillä voisi hallinnoida puhelinta SSH:n yli. Aloitimme selvittämällä, miten Fabricilla luodaan SSH-yhteys. Tämä tapahtuu seuraavasti:

$ nano fabfile.py

from fabric.api import *
env.user ’root’
env.hosts = [’193.66.xx.xx’]
env.password = {’salasana123’}

def deploy():
run(’echo Hello World!’)

$ fab deploy

Ajaessamme tämän vaikutti siltä, että yhteys kyllä syntyi, mutta jostain syystä emme kuitenkaan saaneet vastausta. Testasimme Fabricin toimintaa myös kahden koneen välisessä SSH-yhteydessä. Ajoimme äskeistä esimerkkiä vastaavan fabfilen (tietenkin toista tietokonetta vastaavilla ip-osoitteella ja käyttäjätunnuksella/salasanalla), ja tällöin yhteys onnistuikin heti. Ilmeisesti vika oli siis jälleen jollain tapaa mobiiliverkossa.

Päätimme myös testata meille tunnilla ehdotettua mosh;ia. Mosh on siis mobile ssh-clientti, jonka olisi tarkoitus nopeuttaa ssh-yhteyttä puhelimen ja ssh-palvelimen välillä. Ongelmaksemme tuli kuitenkin se, että Androidille on tarjolla vain moshin client-versio, olisimme tarvinneet server-version, jotta siitä olisi hyötyä tarvitsemallamme tavalla.

Pyrimme vielä jatkamaan ongelman selvittämistä keskiviikon esitystuntiin saakka.

Ajankäyttö:

Viikko 43: Aiheen ja ryhmän valinta ✔
Viikko 44: Projektisuunnitelman palautus ✔
Viikko 45: Aiheeseen tutustuminen, käytettävien sovellusten valinta ✔
– n.5h/henkilö. Tutustuimme itsenäisesti aiheeseen. Otimme selvää eri tavoista rootata puhelin, sekä myös ohjelmista, joita roottauksen jälkeen voisimme käyttää SSH-yhteyden luomiseen.

Viikko 46: Roottaus valmis, jatkoon perehtyminen. Väliraportin laatiminen ja esitys. ✔
– 4h/henkilö. Vietimme yhden opetuskerran roottaamisen suorittamiseen ja rootatun puhelimen ihmettelemiseen.

Viikko 47: SSH-palvelimen asennus ja konfigurointi, onnistumisesta riippuen testailua. ✔
– n. 10h/henkilö. Itsenäisen työskentelyn lisäksi kokoonnuimme kahdesti konfiguroimaan ja testaamaan.

Viikko 48-49: Keskitetty hallinta. Alkuperäisestä suunnitelmasta eroten päädyimme puppetin sijaan tutkimaan Fabricin tarjoamia mahdollisuuksia.
– n.25h/henkilö. Itsenäistä työskentelyä oli noin 8h/henkilö. Kokoonnuimme viitenä päivänä pähkäilemään yhdessä, ensin puppetia ja sen hylättyämme fabricia. Tämä näyttääkin lupaavalta, mutta emme kuitenkaan vielä tämän ajan puitteissa onnistuneet löytämään ratkaisua ongelmien ratkaisemiseksi. ✔

Viikko 50: Esitys luokassa.

Jätä kommentti