Pripojenie smartfónu k pc pomocou Ad-hoc WiFi siete

Pripojenie smartfónu k PC pomocou Ad-hoc WiFi siete
Masové rozšírenie zariadení označovaných slovom smartfón znamená pre oblasť mobilnej komunikácie obrovskú revolúciu. Klasické mobilné telefóny, ktorých éra už skončila, sme používali na prenos hlasu a krátkych textových správ. Neskôr sme pomocou nich fotografovali, počúvali hudbu, posielali multimediálne správy a s určitými obmedzeniami využívali dátové služby. Príchodom smartfónov sa situácia zmenila. Dátová komunikácia je výrazne preferovaná pred hlasovou. Napriek tomu, že pre mnohých z nás sú možnosti ponúkané smartfónmi nevyužiteľné, vývoj nezastavíme a do určitej miery sa mu musíme podriadiť. Je na každom z nás ako využijeme zdroje ponúkané našim zariadením. Tento článok je určený najmä tým, ktorí radi experimentujú a chcú zo svojho smartfónu vyťažiť čo najviac. V článku nebudeme rozoberať vlastnosti smartfónov ani opisovať aplikácie určené pre smartfóny. Zameriame sa na špecifický spôsob pripojenia smartfónu k PC pomocou Ad-hoc WiFi siete.
Bežný spôsob pripojenia smartfónu k PC
Pripojiť smartfón k PC, resp. PC k smartfónu pomocou bežne dostupných metód je doslova triviálne. Najčastejšie k tomu používame dátový USB kábel dodávaný so zariadením. Nepatrne zložitejším spôsobom je použitie technológie Bluetooth, alebo nepriame pripojenie oboch zariadení prostredníctvom prístupového bodu WiFi (WiFi Access Point – AP) nachádzajúcom sa v ich okolí. V neposlednom rade môžeme priamo v smartfóne aktivovať mobilný WiFi AP, resp. pomocou tzv. tetheringu aktivovať zdieľanie mobilného internetového pripojenia (2G/3G/4G). Okrem zdieľania internetu dokážeme pomocou spolupráce tetheringu a ďalších aplikácií vytvoriť priame WiFi spojenie medzi smartfónom a PC. Príslušné aplikácie ponúkajú nevyčerpateľné možnosti vytvorenia a manažovania spojenia. Sú používateľsky prístupné a možno ich bez problémov nainštalovať či už na PC, alebo priamo do smartfónu. Miesto inštalácie je závislé najmä na princípe fungovania tej ktorej aplikácie. Možností je teda mnoho a pre bežného používatelia sú úplne postačujúce.
Nami stanovené kritériá
Síce je to málo pravdepodobné, avšak predsa len môže nastať situácia, pri ktorej budú naše možnosti na vytvorenie spojenia obmedzené napr. takto:
nemáme k dispozícii USB kábel, resp. kábel je poškodený,
nie sme v blízkosti žiadneho voľne dostupného WiFi AP, alebo nedisponujeme príslušnými prihlasovacími údajmi pre prístup k tomuto WiFi AP,
v PC nemáme bluetooth modul, jeho ovládače nie sú nainštalované, resp. zariadenia sa z nejakého dôvodu nedokážu úspešne „spárovať“,
aktivácia mobilného WiFi AP či tetheringu je pre nás jednoduchým riešením, avšak my požadujeme ďalšiu pridanú hodnotu, ktorú použitím jednoúčelových aplikácií nezískame, okrem toho sa chceme smartfónom pripojiť k PC a nie opačne.
Najpragmatickejším dôvodom pre realizáciu nami navrhovaného spojenia je skúmanie skrytých možností nášho smartfónu. Vieme, že v smartfóne aj v PC máme správne nainštalované a plne funkčné WiFi karty (moduly) pretože sa pomocou nich bežne pripájame k WiFi AP. Ak sme schopní pripojiť sa k WiFi AP, resp. nám v smartfóne bez problémov fungujú tetheringové aplikácie, mali by sme byť schopní nakonfigurovať aj priame spojenie smerom od smartfónu k PC.
Postupy, ktorým sa budeme venovať nižšie, sme realizovali so smartfónom Samsung Galaxy Ace GT-S5830 s nainštalovaným OS Android 2.3.3 GINGERBREAD.XWKPY a PC Lenovo ThinkPad SL510 2847-6NG s nainštalovaným OS Ubuntu Linux 11.10 3.0.0-26-generic. Niektoré testy prebehli na virtuálnom PC s nainštalovaným OS Windows 7, ktorý sme spúšťali pomocou Oracle VM VirtualBox 4.2.0 r80737. To, že sme článok orientovali smerom k OS Linux nič nemení na fakte, že takmer rovnaký postup sa dá aplikovať aj v prípade OS Windows.
Realizované kroky
Trh s PC, smartfónmi a ďalšími komunikačnými zariadeniami je tak rôznorodý, že je len veľmi obtiažne stanoviť jediný všeobecný postup pripojenia smartfónov k PC. Rovnako je nesmierne zložité uviesť jediný zoznam procesných krokov, ktoré by sme mali vykonať pre úspešné vytvorenie spojenia. Nefunkčnosť niektorých krokov rozoberaných v tomto článku neznamená, že tieto postupy sú všeobecne nefunkčné. Mnohé závisí na použitom hardvéri, softvéri a takisto na konkrétnych krokoch zvoleného postupu.
Prvý krok, ktorý nás napadol, bol založený na fakte, že funkcionalitu klasického WiFi AP vieme nahradiť príslušnými aplikáciami spustenými na PC. Práve preto sme na PC nainštalovali DHCP server a pomocou démona hostapd (http://w1.fi/hostapd/) sme sa pokúsili vytvoriť WiFi AP. K tomuto AP sme sa plánovali pripojiť pomocou smartfónu. Pri tomto pokuse sme však narazili na celkom prozaický problém. Bezdrôtová karta Intel Centrino Wireless-N 1000 (http://intellinuxwireless.org/) nachádzajúca sa v PC a jej linuxový ovládač iwlagn, nepodporujú tzv. AP (Access Point), resp. Master mód (http://wireless.kernel.org/en/users/Drivers).
Pretože WiFi karta v našom PC nedokázala fungovať v AP móde, rozhodli sme sa situáciu riešiť pomocou tzv. Ad-hoc módu. Nastavenie parametrov Ad-hoc spoja pomocou aplikácie NetworkManager bolo jednoduché (úplne totožnú IP konfiguráciu môžeme realizovať aj pomocou terminálu a nástrojov ifconfig, iwconfig). Tentoraz však problém nastal na strane smartfónu. OS Android štandardne nepodporuje Ad-hoc siete, ktoré ani len nezobrazuje medzi dostupnými WiFi sieťami. Zobrazenie dostupných Ad-hoc sietí sa síce dá riešiť pomocou doplnkových aplikácií (napr. WiFi Analyzer), avšak priame pripojenie nie je možné. Odpoveď na otázku prečo je to tak je nad rámec tohto článku. Viac informácií možno získať z internetu kde okrem iného môžeme nájsť aj mnoho postupov, ako toto zvláštne obmedzenie systému Android obísť. Pre používateľov Linuxu je asi najdôležitejšou informáciou tá, že problém nie je v hardvéri smartfónov, ale týka sa zvláštneho nastavenia konfiguračného súboru démona wpa_supplicant (http://w1.fi/wpa_supplicant/). Tento démon je zrejme pre používateľov OS Windows neznámy. V Linuxe je však pomocou neho riešený kryptografický manažment potrebný pre pripájanie k chráneným sieťam.
Obr. 1 Konfigurácia Ad-hoc WiFi siete v OS Linux pomocou nástroja NetworkManager
V treťom kroku sme teda hľadali spôsob, akým by sme modifikovali obsah súboru wpa_supplicant.conf, nachádzajúceho sa v smartfóne. Bohužiaľ sme zistili, že pokiaľ to chceme urobiť, musíme sa stať tzv. superužívateľom (root) smartfónu. Používatelia Linuxu znovu vedia o čo ide. V prípade OS Windows je filozofia správy PC pomocou špeciálneho správcovského účtu rovnaká. Správca sa však nenazýva root, ale administrátor.
Spravovanie Androidu (rooted Android)
Na to, aby sme mohli pokračovať ďalej, musíme v smartfóne povoliť tzv. root-ovanie. Aj keď ide o vratný proces, jeho aktiváciou automaticky strácame záruku na naše zariadenie. Či je to spravodlivé, alebo nie, to nebudeme v tomto článku komentovať. Každopádne pomocou root prístupu sa stávame 100-percentným používateľom smartfónu z čoho vyplýva, že môžeme vykonávať aj tie činnosti, ktoré sme mali doposiaľ zakázané (neprístupné). Jednoduchšie povedané, budeme mať plnú kontrolu nad zariadením a všetkými jeho funkciami. To, že strácame záruku na náš smartfón neznamená, že aktivácia root-u naše zariadenie poškodí. Hardvér aj softvér zostane nedotknutý a smartfón budeme môcť aj naďalej používať. Pokiaľ však budeme ako root zasahovať do systému, mohli by sme vedome znefunkčniť niektoré aplikácie, čo je jasný dôvodom na stratu záruky.
Pozn.: Pozor na nepremyslené skúšanie rôznych neoverených postupov aktivácie root-ovania. Síce ide o pomerne bezpečný proces, v určitých prípadoch však môže viesť k úplnému znefunkčneniu smartfónu (tzv. bricking). Ak nemáme pripravený „plán B“, ktorým by sme sa z prípadného problému dostali, radšej aktiváciu root-ovania neskúšajme a prenechajme ju skúsenejšiemu kolegovi. V opačnom prípade by sa nám mohlo stať, že budeme nútení investovať do kúpy nového zariadenia.
Možné prístupy k aktivácii root-ovania:
1. Preprogramovanie ROM (ROM flash)
Pre niekoho jednoduchým, pre iného zložitým postupom, ako sa stať root-om Androidu, je kompletná reinštalácia OS. V tomto prípade hovoríme o preprogramovaní pamäte ROM. Snáď najznámejšou modifikovanou ROM je tzv. CyanogenMod (http://www.cyanogenmod.com/). Ide o alternatívnu distribúciu systému postavenú na „čistom“ Androide. CyanogenMod ponúka oproti bežnému Androidu viaceré doplnkové funkcie, medzi ktoré patrí aj aktivovaný root. V našom prípade sme sa však nechceli vydať takouto drastickou cestou a orientovali sme sa skôr na miernejšie postupy.
2. Záplaty OS (OS patches)
Procesné kroky, pomocou ktorých možno aktivovať spravovanie smartfónov, sú témou mnohých článkov a diskusných fór. Pri hľadaní správneho, resp. reálne aplikovateľného postupu, musíme vždy vychádzať z konkrétneho typu smartfónu, alebo lepšie z konkrétnej verzie OS Android. Dôvodom je, že jednotlivé postupy sú určené pre konkrétnu kombináciu zariadenia a systému.
Bez váhania môžeme uviesť, že nájsť správnu kombináciu je pomerne ťažké. Dokonca aj keď nájdeme postup určený presne pre náš smartfón a pre našu verziu systému, nemusíme sa dopracovať k želanému výsledku. Napr. v našom prípade nepomohlo použitie prostredia Android SDK (http://developer.android.com/sdk/index.html) a s tým spojenými postupmi. Rovnako nepomohla ani aplikácia SuperOneClick (http://shortfuse.org/), ktorá bola odporúčaná viacerými používateľmi. V oboch prípadoch sme potrebný softvér bez problémov nainštalovali. Príslušné nástroje náš smartfón riadne identifikovali, avšak po spustení konkrétnych procesov, pomocou ktorých mal byť smartfón odblokovaný, nástroje buď nereagovali, alebo vykazovali chyby. Menovaná aplikácia SuperOneClick takisto prestala reagovať a žiadna aktivácia root-ovania sa nekonala. Ďalšie vyskúšané postupy a aplikácie údajne určené na odblokovanie nebudeme rozoberať, práve naopak, uvedieme postup, ktorý fungoval správne.
Postup aktivácie spravovania OS Android 2.3.3
Fungujúci postup aktivácie root-ovania nášho smartfónu sme našli na stránke združenia vývojárov aplikácií určených pre mobilné zariadenia xdadevelopers (http://forum.xda-developers.com/index.php):
z internetu stiahneme skomprimovaný súbor upd_1.zip (napr. z URL adresy http://androidforums.com/ace-all-things-root/328648-galaxy-ace-root-gingerbread-2-3-3-a.html), pomocou USB kábla ho skopírujeme na pamäťovú kartu (sdcard) nášho smartfónu,
vypneme smartfón,
zapneme smartfón tak, že súčasne držíme tlačidlá HOME (hlavné tlačidlo nachádzajúce sa na prednej strane smartfónu) a tlačidlo POWER, po zapnutí displeja a zobrazení loga SAMSUNG pustíme tlačidlo POWER, naďalej stláčame tlačidlo HOME, po zobrazení niekoľkých riadkov textových informácií pripomínajúcich výpis terminálu môžeme pustiť tlačidlo HOME a počkáme na inicializáciu tzv. módu obnovy (recovery mode),
Obr. 2 Mód obnovy smartfónu Samsung Galaxy Ace
pomocou tlačidiel VOLUME UP a VOLUME DOWN vyberieme možnosť aktualizácie z pamäťovej karty (apply update from sdcard) a stlačíme tlačidlo HOME,
rovnakým spôsobom vyberieme stiahnutý súbor upd_1.zip a stlačením tlačidla HOME ho necháme nainštalovať (inštalácia by nemala trvať viac ako pár sekúnd),
vyberieme možnosť reštartu systému (reboot system now),
po štandardnom naštartovaní systému skontrolujeme prítomnosť aplikácie Superuser v našom smartfóne.
Prístup k súboru wpa_supplicant.conf
V tomto momente máme náš smartfón pod plnou kontrolou a môžeme sa pustiť do úpravy súboru wpa_supplicant.conf. Modifikácii spomínaného konfiguračného súboru v súvislosti s vytvorením Ad-hoc WiFi spojenia sa ako obvykle venuje mnoho autorov. Bohužiaľ nájsť postup, ktorý by bol jednoduchý a v konečnom dôsledku aj funkčný, bolo pomerne ťažké. K želanému výsledku sme sa nakoniec dopracovali spojením častí viacerých postupov.
Do smartfónu sme nainštalovali aplikáciu ROM Toolbox Lite (https://play.google.com/store/apps/developer?id=JRummy+Apps+Inc.&hl=en). Tento krok bol doslova kľúčový. Aplikácia ROM Toolbox obsahuje nástroj (Tools) na spúšťanie skriptov (Scripter) a prehliadač súborového systému (Root Browser). Pomocou týchto nástrojov sme boli schopní vykonať všetky potrebné činnosti.
Konkrétny postup úpravy súboru wpa_supplicant.conf je nasledujúci:
v aplikácii ROM Toolbox spustíme Scripter, vyberieme skript určený na pripojenie súborového systému s možnosťou zápisu – Mount System R/W, skript spustíme – Run script – Execute – OK,
v aplikácii ROM Toolbox spustíme Root Browser, postupne prejdeme do zložiek data – misc – wifi,
skopírujeme súbor wpa_supplicant.conf do ľubovolnej zložky na pamäťovej karte (pomocou Copy a Paste), týmto krokom sme si zálohovali pôvodný súbor,
súbor wpa_supplicant.conf nachádzajúci sa v zložke /data/misc/wifi môžeme upraviť priamo – podržíme prst na súbore, vyberieme Open with... – RB Text Editor a môžeme editovať, elegantnejšie je však otvoriť súbor v PC a po úprave ho skopírovať späť do uvedenej zložky,
kto už má nejaké skúsenosti so štruktúrou a úpravami súboru wpa_supplicant.conf z prostredia Linuxu, veľmi rýchlo zistí, že spomínaná štruktúra a úpravy sú v oboch OS prakticky totožné (konkrétne zmeny, ktoré musíme urobiť, sú uvedené nižšie),
po úprave konfiguračného súboru ho umiestnime do pôvodnej zložky /data/misc/wifi, nastavíme prístupové práva pomocou nástroja Root Browser – podržaním prsta na súbore a výberom Permissions – nastavíme práva na „rw-rw----„ = „660“, následne musíme zmeniť vlastníka a skupinu rovnako podržaním prsta na súbore a výberom Ownership – v oboch prípadoch vyberieme reťazec „wifi“,
po vykonaní všetkých úprav nezabudnime pripojiť súborový systém „iba na čítanie“ (read-only) pomocou skriptu Mount System Read-Only.
Úpravy konfiguračného súboru wpa_supplicant.conf
V predposlednom bloku tohto článku si uvedieme aké zmeny musíme vykonať v rámci súboru wpa_supplicant.conf na to, aby náš smartfón akceptoval Ad-hoc sieť a dokázal sa k nej pripojiť. Nebudeme riešiť podrobné nastavenia parametrov pripojenia, autentifikáciu, šifrovanie, ani nebudeme nastavovať tie parametre, ktoré v konečnom dôsledku nemajú vplyv na nadviazanie spojenia. V tomto konkrétnom prípade nám ide hlavne o to, aby sme smartfónu oznámili, že v jeho okolí je dostupná Ad-hoc WiFi sieť, ku ktorej sa má pripojiť.
Zmeny v súbore wpa_supplicant.conf:
|
ap_scan=2
|
význam tohto parametra je v dostupných manuáloch vysvetlený rôznymi spôsobmi. V našom prípade je najprijateľnejším významom tento: nastavenie na hodnotu 2 má za následok prioritné použitie manuálne nakonfigurovanej siete pred automatickým vyhľadávaním dostupných sietí
|
network={
|
blok pre manuálnu konfiguráciu parametrov siete
|
ssid="mywlan"
|
názov (identifikátor) siete
|
mode=1
|
operačný mód siete, v tomto prípade 1 = IBSS = ad-hoc = peer-to-peer (P2P)
|
key_mgmt=NONE
|
manažment šifrovacích (kryptografických) kľúčov, v tomto prípade NONE = bez manažmentu = žiadna autentifikácia ani šifrovanie
|
}
|
koniec bloku
|
Po úprave súboru wpa_supplicant.conf dokončíme kroky č. 6 a 7 (nastavíme prístupové práva, zmeníme vlastníka a pripojíme systém v režime read-only). Následne v našom smartfóne prejdeme do menu Nastavenia – Bezdrôtové pripojenie a siete – Nastavenia siete Wi-Fi a stlačíme Wi-Fi – Zapnúť WiFi...
Nami nastavená Ad-hoc sieť by sa mala nachádzať v zozname dostupných sietí (prvá v poradí) a smartfón by mal iniciovať proces pripájania. Pokiaľ máme na PC spustený DHCP server, ktorý spolupracuje s bezdrôtovým rozhraním, smartfónu by mala byť pridelená IP adresa. Ak DHCP server nepoužívame, môžeme nastaviť IP adresu ručne v podmenu Pokročilé – Použiť statickú adresu IP (pre správne fungovanie musíme nastaviť všetky položky aj keby sme mali použiť fiktívne hodnoty, dôležité je správne nastaviť IP adresu a masku siete).
Obr. 3 Smartfón úspešne pripojený k Ad-hoc WiFi sieti s názvom mywlan (výstup aplikácie Wifi Analyzer)
Využívanie pripojenia
Pripojenie smartfónu k PC pomocou Ad-hoc WiFi siete môžeme využiť rovnako dobre ako v prípade iných druhov pripojenia. Jediným obmedzujúcim faktorom je otvorená forma spojenia. Takto vytvorená sieť nie je zabezpečená ani prvotnou autentifikáciou ani šifrovaním dát, ktoré budú prostredníctvom nej prenášané.
To však nič nemení na fakte, že nami vytvorený spoj je funkčný a plne využiteľný. O tom svedčí aj výstup kontrolného príkazu ping spusteného či už na strane PC, alebo v rámci aplikácie ROM Toolbox a jej nástroja Terminal Emulator.
Obr. 4 Test aktívneho spoja pomocou emulátora terminálu a príkazu ping
Jednou z veľmi hodnotných aplikácií pre využívanie vzájomného prepojenia smartfónu a PC je aplikácia AirDroid (http://airdroid.com/). Táto aplikácia vytvorí na strane smartfónu webový server, ku ktorému sa môžeme pripojiť z ľubovolného PC nachádzajúceho sa v sieti. To platí aj v prípade nami vytvorenej Ad-hoc WiFi siete. Použitím aplikácie AirDroid čiastočne eliminujeme problém s bezpečnosťou pretože táto aplikácia implementuje šifrovanie a údaje prenáša v zakrytej podobe. Síce tým neodstránime všetky bezpečnostné riziká týkajúce sa používania Ad-hoc WiFi siete, môžeme sa však spoľahnúť na to, že prenášané údaje budú chránené.
Obr. 5 Okno aplikácie AirDroid po úspešnom pripojení k smartfónu
Cieľom tohto článku bolo popísať vytvorenie špecifického spoja medzi smartfónom a PC pomocou Ad-hoc WiFi siete. Uvedený popis bol však iba prostriedkom, pomocou ktorého sme si priblížili viaceré oblasti súvisiace s využívaním systémových zdrojov smartfónov.
Marek Sopko (msopko@infoware.sk)
|