W przeciwieństwo do wielu innych telefonów HTC G1 z Androidem nie ma wbudowanego modemu umożliwiającego zestawienie połączenia z siecią Internet po podłączeniu do do komputera. Jest to dosyć irytująca cecha, która utrudnia wykorzystanie łączności Internetowej w podróży. W przypadku telefonów, które nie zostały „zrootowane” musimy posiłkować się zarówno odpowiednią aplikacją na telefonie, jak i zbudować odpowiedni tunel łączący nasz komputer z telefonem.
Krok 1: Instalacja aplikacji Proxoid na telefonie
Najpierw należy zainstalować aplikację Proxoid na telefonie. Jest ona dostępna na Google Market, więc nie powinno to sprawić kłopotów.
Krok 2: Konfiguracja telefonu
Włączyć tryb „USB debugging” na telefonie. Jest on potrzebny do tego, aby dało się komunikować z telefonem z poziomu komputera. Czyli z MENU
wybrać opcję Settings->Applications->Development
, i zaznaczyć opcję USB debugging
.
Krok 3: Konfiguracja UDEV
Przynajmniej w przypadku Ubuntu trzeba jeszcze skonfigurować odpowiednio demona UDEV, tak aby poprawnie rozpoznawał telefon. Należy utworzyć plik /etc/udev/rules.d/11-android.rules
o następującej zawartości:
1 2 | SUBSYSTEMS=="usb", SYSFS{idVendor}=="0bb4", SYSFS{idProduct}=="0c02", MODE="0666", OWNER="nazwa użytkownika" SUBSYSTEMS=="usb", SYSFS{idVendor}=="0bb4", SYSFS{idProduct}=="0c01", MODE="0666", OWNER="nazwa użytkownika" |
W przypadku jądra 2.6.32 powyższy wpis sprawiał mi problemy (telefon był ciągle wykrywany, nagle przestawał być widziany). Dopiero zmiana tego wpisu na poniższy rozwiązała problemy:
1 2 | SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c01", ENV{ACL_MANAGE}="1", MODE="0666", OWNER="nazwa użytkownika" SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c02", ENV{ACL_MANAGE}="1", MODE="0666", OWNER="nazwa użytkownika" |
Swoją drogą, wg. komunikatów podawanych przez jądro to użycie atrybuty SYSFS
nie jest zalecane przynajmniej od wersji 2.6.32, zamiast tego poleca się użycie właśnie atrybutu ATTR
.
Należy wpisać swoją nazwę użytkownika po deklaracji OWNER
.
Teraz restart demona:
I można podłączać telefon. Po wydaniu poniższego polecenia powinniśmy otrzymać podobny komunikat:
Bus 001 Device 017: ID 0bb4:0c02 High Tech Computer Corp.
Krok 4: Pobranie SDK do androida
Należy pobrać SDK do tworzenia aplikacji dla systemu Android. Znajduje się tam aplikacja o nazwie adb
, która będzie potrzebna do uzyskania połączenie pomiędzy komputerem a telefonem.
SDK można pobrać ze strony: http://developer.android.com/sdk/index.html.
W moim przypadku korzystam z Android SDK ver. 1.6 oraz na telefonie także mam zainstalowany system Android w wersji 1.6.
Po pobraniu SDK należy je rozkompresować i odszukać polecenie adb
, które zaraz będzie potrzebne. Powinno ono znajdować się w katalogu: android-sdk/tools/adb
.
Krok 5: Utworzenie tunelu
Ponieważ telefon nie posiada modemu, nie można w zwykły sposób zestawić połączenia pomiędzy nim a komputerem. Do tego celu służy aplikacja adb
, która potrafi nasłuchiwać na wybranym porcie i przekazywać dane do telefonu także tam na odpowiedni port. Przypomina to tworzenie tunelu przy użyciu ssh
.
Włączenie nasłuchiwania na lokalnym porcie 8080
i przekazywanie pakietów na port 8080
na telefonie, gdzie aplikacja Proxoid pobierze je i przesle dalej w świat:
* daemon not running. starting it now *
* daemon started successfully *
Przy pierwszym wywołaniu aplikacji otrzymamy komunikat o jej starcie. Za pomocą programu netstat
można sprawdzić, czy adb
faktycznie nasłuchuje na wybranym przez nas porcie:
tcp 0 0 127.0.0.1:5037 0.0.0.0:* LISTEN 11573/adb
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 11573/adb
Jeżeli wynikiem działania polecenia netstat
będzie tylko jedna linia (lub wcale), to można jeszcze raz spróbować włączyć przekierowanie portów przy użyciu adb
. Jeżeli w wyniku znajdzie się linia w postaci 127.0.0.1:8080
to wszystko powinno nam już działać.
Krok 6: Konfiguracja przeglądarki
Należy skonfigurować wybraną przeglądarkę tak, aby korzystała z serwera proxy HTTP. Jako adres serwera należy wpisać wartość localhost
, jako port 8080
.
Jeżeli zdarza się nam często konfigurować serwer proxy, warto rozważyć na przykład instalację dodatku FoxyProxy do Firefoksa.
Krok 7: Uruchomienie aplikacji Proxoid
Ostatnim elementem jest uruchomienie aplikacji Proxoid na telefonie. Po uruchomienie należy wybrać jeszcze przełącznik Start/Stop Proxoid
i powinniśmy się już cieszyć działającym połączeniem z siecią Internet.
Kroków było sporo, ale w codziennym użytkowaniu konieczne będzie wykonanie tylko kroków 5, 6 oraz 7.
Problemy
Jeżeli z jakiś powodów nie działa komunikacja, należy sprawdzić za pomocą polecenia netstat
czy aplikacja adb
nasłuchuje na odpowiednim porcie. Jeżeli nie, to uruchomić ją ponownie (nie wiem czemu, ale czasem się po prostu proces wysypuje).
Można także sprawdzić, czy adb
wykrywa nasz telefon:
List of devices attached
HT92FKV03562 device
W przypadku konfliktów portów, można zmienić port 8080
na jakiś inny, ale należy pamiętać aby jego numer był większy niż 1024
oraz zmodyfikować odpowiednio konfigurację przeglądarki.