Blog (92)
Komentarze (104)
Recenzje (0)

APN 2.0 czyli jak sobie ułatwiłem życie w Androidzie....

@marcinw2APN 2.0 czyli jak sobie ułatwiłem życie w Androidzie....12.01.2014 13:12

Dawno, dawno temu ktoś wymyślił, że MMSy i dostęp do Internetu w sieciach komórkowych wymaga ustawień takich jak adres komputera operatora. Użytkownicy zaczęli je pracowicie przepisywać z materiałów operatorów do swoich urządzeń, czasem operator pozwalał na przesłanie ich na urządzenie SMSem (w tamtych czasach takie SMS potrafiły też tworzyć aplikacje typu Open Source, czyli nie chwaląc się np. "moje" Gammu ). Nie zawsze to jednak działało i wiedza ta dalej sprawiała wrażenie tajemnej....

Z czasem pojawił się Android, który zawierał w pliku XML zestawy jakichś domyślnych ustawień, co częściowo załatwiło sprawę, ale też wprowadziło zamęt, bo system nie bywał zbyt często uaktualniany przez producentów.

Android obecnie jest na tabletach, w telefonach, w zegarkach, nawet czytnikach książek. ... I co tu zrobić ?

Dawno temu pomyślałem, że na własne potrzeby poświęcę kilka nocy i zrobię prostą aplikację, która będzie w określonych momentach ustawiać to za mnie. I jeszcze rozszerzę ideę - Android ustawia APNy stosownie do kodu sieci karty SIM, aplikacja miała to robić dla kodu sieci i nazwy sieci zapisanej na karcie SIM.

Dane te zapisywane są w wewnętrznej bazie SQLite i nieudokumentowane....ale od czegóż jest Internet ? :)

Niestety wujek Gugiel z czasem wymyślił sobie, że ich zapis ma być niedostępny (od 4.0), a później od 4.2 zablokowano nawet ich odczyt....a dokładniej mówiąc jest on dostępny tylko dla aplikacji, które zostały dostarczone przez producenta (tj. aplikacji systemowych).

I tu dochodzimy do sedna - żeby móc coś zrobić ciekawego w nowszych urządzeniach, dalej trzeba mieć do nich pełen dostęp (żeby aplikacja była systemową czyli w /system/app, to trzeba ją albo wgrać flasherem albo mieć tzw. roota i użyć linii komend). Mówiąc inaczej:

  • trzeba używać aplikacji flashujących np. producenta (i wgrać paczkę plików wraz z aplikacją gdzie trzeba) lub
  • szukać aplikacji, które uzyskują roota poprzez luki w zabezpieczeniach (ZergRush, Cydia Impactor, Kingo Root, itd.) i użyć linii komend lub
  • flashować tzw. insecure kernel, dodać co potrzeba do roota, (flashować secure kernel), użyć linii komend....

W zależności od zastosowanego rozwiązania można niestety stracić gwarancję (np. wieść niesie, że dzieje się tak w Samsungach po ustawieniu flagi Knox na 0x01)

To jest też jedna ze słabości Androida - niestety pomimo zgłoszenia problemu wujkowi Gugielowi (bądź co bądź taki odczyt danych APN może być naprawdę często i gęsto przydatny) trzeba korzystać z czasem podejrzanych rozwiązań (taką sławą cieszy lub przynajmniej cieszył się się np. Kingo Root).

Ale nic to.... Aplikację niedawno przepisałem do wersji 2.0 i obecnie:

  • pokazuje systemową bazę ustawień internetowych/MMS
  • domyślnie zawiera bazę dla różnych polskich operatorów (Plus, mBank mobile, T-Mobile.pl, heyah, Orange, Play, Aero2, Manta Mobile, Red Bull MOBILE, FM GROUP MOBILE, Virgin mobile, INEA)
  • może korzystać z bazy wbudowanej (można ją eksportować) lub zewnętrznego pliku z danymi - format taki jak pliku androidowego z dodanym parametrem op dla każdego wpisu
  • może ustawiać APNy ręcznie, przy starcie lub przy zmianie typu sieci (przy czym jeśli znajdzie ustawienia ze "swoją" nazwą, to ich generalnie nie zmienia przez co można je dowolnie zmienić "po swojemu" i mieć dalej włączoną aplikację)
  • może wyłączać Internet przez dodanie 'apndroid' na końcu nazwy APN np. gdy sieć nie jest LTE (co pozwoli kontrolować koszty np. w Play i Red Bull jeśli korzystamy z promocji 30 złotowych) - być może jest do tego jakieś API, ale ja go nie znam
  • dla niektórych telefonów DualSIM (np. i9192) pokazuje część danych drugiej karty SIM - więcej nie umiem odczytać, a że we wszystkich urządzeniach tego typu producenci muszą stosować swoje czasem bardzo radosne rozwiązania, to niestety aplikacja chyba na razie skończy tylko na obsłudze pierwszego SIMa tak jak SDK przykazał

Potrzebne jest niestety kilka uprawnień:

  • WRITE_APN_SETTINGS - do zmiany APN w Androidzie 4.x / odczytu w Androidzie 4.2 i późniejszym (przy czym powtórzę: potrzebne jest też ustawienie jako aplikacja systemowa w tych wersjach Androida)
  • RECEIVE_BOOT_COMPLETED - żeby móc się uaktywnić po starcie systemu
  • READ_PHONE_STATE - odczyt danych sieci i karty SIM
  • WRITE_EXTERNAL_STORAGE i READ_EXTERNAL_STORAGE - zapis i odczyt pliku z danymi

I tak w kilka wieczorów dało się załatwić odwieczny problem w ok. 36 kB - mam nadzieje, że wiadomość o tym, że istnieje coś podobnego polskiego przyda się komuś (a może ktoś się zdecyduje na kontakt w celu zlecenia jakiejś dłubaninki lub przekazania np. jakichś BitCoinów lub PeeLeNów, bo nic innego tak nie motywuje do podobnego pisania) i że ten poniekąd kryptoreklamowy tekst nie będzie źle przyjęty :)

PS. Jedyną niedogodnością jest, że czasami system pomimo oznaczania APNu do Internetu jako domyślny nie włącza go i trzeba to robić ręcznie z menu systemowego (o podobnej operacji nie wspomnę w telefonach DualSIM - patrz jeden z punktów powyżej)

PS2. Jeszcze link: APN

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.