Hakowanie iPhone część 4

                4 listopada 2007 o godzinie 18:47, w kategorii Jabłka.

Oto kolejna porcja porad dotyczących hakowania iPhone. Tym razem będzie głównie o dostosowywaniu telefonu do naszych, polskich warunków. Wszystkie opisane poniżej sposoby przetestowałem na swoim iPhone i zapewniam że działają doskonale ale oczywiście nie mogę wam zagwarantować że zadziałają także u was. Powinny, w końcu to żadna magia, ale przecież wciąż sporo tu miejsca na pomyłki, niedbałość czy nieuwagę. Apeluję zatem do waszego poczucia odpowiedzialności – mimo że macie rozwiązania podane na tacy nie zabierajcie się za naprawianie dobrego jeżeli nie rozumiecie tego co robicie. Część z was radzi sobie z komputerami świetnie i ci nie potrzebują tego typu ostrzeżeń – lecz część nie. To nie jest zabawa a jeżeli będziecie mieli pecha kilka beztroskich kliknięć może was kosztować – bagatela – 399 dolarów. Nie chce was niepotrzebnie straszyć, nie znajdziecie poniżej żadnej prawdziwie groźnej ekwilibrystyki chciałbym jednak przypomnieć, że lepsze jest często wrogiem dobrego. Wszelkie tego typu modyfikacje zawsze niosą za sobą ryzyko – i po prostu sądzę, że powinniście znać jego wagę.

Img 9001


Zaczniemy od włączenia w iPhone ustawień międzynarodowych. Za pomocą dowolnego klienta SFTP logujemy sie na iPhone. Przypominam, że domyślne hasło dla użytkownika root brzmi alpine. Przechodzimy do katalogu /System/Library/CoreServices/SpringBoard.app/ znajdujemy i otwieramy plik M68PA.plist. Jeżeli macie zainstalowane Developer Tools plik otworzy się w Property List Editorze. To najlepsza metoda przy wprowadzaniu drobnych zmian. Jeżeli nie instalowaliście narzędzi deweloperskich możecie skorzystać z dowolnego edytora tzw. czystego tekstu. Metodę opisywałem bardziej dokładnie przy okazji odblokowywania YouTube. Niezależnie od tego którego programu użyjecie nigdy nie zapomnijcie zrobić kopii bezpieczeństwa! W razie jakichś problemów zawsze zdołacie przywrócić oryginalne pliki.

Internipfd3Aha

Do rzeczy. Odnajdujemy klucz capabilities > international i zmieniamy wartość z No na Yes. Zapisujemy plik i wysyłamy go na iPhone. Ja – dla wygody – edytowałem go zdalnie i wam też polecam. Zwłaszcza że jeszcze sporo podobnych trików przed nami. Od tej pory w waszym telefonie w Settings/General pojawi się menu – International w którym będziecie mogli ustawić język w jakim iPhone będzie się do nas zwracał (choć lista jest długa w wersji 1.1.1 mamy realnie do wyboru tylko 2x angielski, niemiecki i francuski bo tylko te są standardowo obecne w iPhone ale oczywiście można dodać własne tłumaczenia o czym więcej napiszę niżej) włączyć dodatkowe klawiatury a także regionalne ustawienia wyświetlania daty, godziny i numerów telefonicznych. To ostatnie jednak trzeba będzie poprawić…

Img 9004

Otóż iPhone w Polsce trochę głupieje – numery wyświetla oczywiście poprawnie ale ich nie kojarzy z kontaktem… Zwłaszcza gdy w książce adresowej mamy je zapisane z prefiksem i bez niego. Wtedy telefon potraktuje je po prostu inaczej, i tak numer +48 123 456 789 to dla niego co innego niż 123 456 789. Irytujące prawda? Problem ten można jednak skutecznie rozwiązać pobierając z sieci odpowiedni dla wersji oprogramowania naszego telefonu i kraju plik. My potrzebujemy dziewiątki (link dla 1.1.1). Pobrany plik rozpakowujemy i za pomocą naszego ulubionego klienta SFTP wrzucamy na iPhona do katalogu /System/Library/Frameworks/AppSupport.framework/ Uwaga! AppSupport to ważny plik systemowy bez którego iPhone nie działa więc bezwzględnie zróbcie najpierw jego kopie. Nie usuwajcie go ani nie zmieniajcie mu nazwy po prostu najpierw zróbcie backup bezpieczeństwa a potem go nadpiszcie. Na wszelki wypadek sprawdźcie też przywileje – jak zawsze powinny być ustawione na 755. Ok. Teraz jeszcze zrestartujemy telefon i po kłopocie. Identyfikacja działa poprawnie!

Appspprtha3W8

Kolejna rzecz – włączenie sekcji International powoduje jeden drobny błąd w systemowej pogodynce – widżet zaczyna wyświetlać całkiem nonsensowne wskazania temperatury. Pomaga przestawienie na Fahrenheity – wtedy program będzie pokazywał temperaturę w Celsjuszach i odwrotnie – po prostu z jakiegoś powodu zmieniło się znaczenie przycisków. Ewidentny „czeski błąd” nic poważnego – wystarczy przestawić i można zapomnieć – ale warto o tym wspomnieć żeby oszczędzić wam niepotrzebnych nerwów.

Ihpogod3Awwariat

Można też iPhone prawie w całości spolonizować. Proces jest prosty i sprowadza się do zainstalowania paczki z dodatkowymi językami (jeśli klikniecie ten link z iPhone proces będzie niemal automatyczny) niemniej ja sobie ten krok najzwyczajniej w świecie darowałem. Z dwóch powodów – po pierwsze, pamiętam z dużego OS X źródłem jakich dziwnych problemów może być nieoficjalna lokalizacja, po drugie dlatego, że mimo spolonizowania systemu i podstawowych aplikacji iPhona i tak ciągle będziemy mieli do czynienia z programami po angielsku. Chodzi tu zapewne o zaledwie paręnaście słów i kilka buttonów ale sądzę, że taka mieszanka w niczym nie jest lepsza od domyślnego angielskiego interfejsu.

Iphpols365Asa1

Oczywiście są osoby dla których polskie menu będzie wybawieniem – jeśli nie znacie angielskiego pewnie nie macie wyjścia, ale jeżeli znacie niemiecki… już tak – ale jeśli naprawdę nie musicie mieć polskiego w iPhone i nie macie duszy eksperymentatora to raczej dajcie sobie spokój. Przynajmniej na tą chwilę. Za jakiś czas, kiedy paczka przejdzie gruntowne testy w telefonach bardziej niecierpliwych użytkowników i będzie wiadomo jakie problemy stwarza lub że ich nie stwarza wtedy co innego. Ale teraz to moim zdaniem gra nie warta świeczki. Wątek na temat polskiego interfejsu i gotową – a do tego praktycznie rozwijaną z dnia na dzień – polonizację znajdziecie na forum myapple a pakiet z polskim językiem dla leniwych, o którym pisałem przed momentem, na stronie http://glassicstyle.com/iphone/. Uwaga oba projekty powstały niezależnie więc tłumaczenia będą się zapewne od siebie różnić. Jeśli się zdecydujecie dajcie znać które lepsze!

Iphcllfrws2Q1

Być może denerwuje was że iPhone przy każdym wychodzącym i przychodzącym połączeniu głosowym wyświetla okienko z napisem Call forwarding active. Można to na szczęście wyłączyć. Znów logujemy się na iPhona i przechodzimy do katalogu /var/root/Library/Preferences/. Interesuje nas plik com.apple.carrier.plist – właściwie nie jest to plik a skrót do pliku /System/Library/Frameworks/CoreTelephony.framework/ Support/UnknownCarrier.plist. Ta informacja przyda nam się nieco później. Ok. Najpierw robimy sobie jego kopię zapasową a potem zmieniamy zawartość kluczy ShowCallForwarding i ShowCallForwarded z Yes na No. Restartujemy telefon i mamy denerwujący komunikat z głowy. Na marginesie – to najprostsze rozwiązanie problemu z irytującym okienkiem ale też trochę na skróty. Można to jednak zrobić jak trzeba – więcej na ten temat zajdziecie w dalszej części tekstu…

Img 9008

Wiadomo, że iPhone to nie tylko telefon ale także usługi. Odblokowany radzi sobie wcale dzielnie jednak pewne rozwiązania pozostają poza naszym zasięgiem tak jak na przykład nieliniowa poczta głosowa. Jest jednak sposób na to aby przycisk Voicemail całkiem się nie zakurzył. Otóż można do niego przypisać numer zwykłej poczty głosowej. Aby to zrobić przechodzimy do telefonu, wybieramy klawiaturę i wpisujemy sekwencję *5005*86*XXX#. Oczywiście XXX zastępujemy numerem poczty naszego operatora. W Plusie jest to 2222, w Erze 602950 a w Orange 501501501, w Heyah 1111 a w Playu 790200200. Naciskamy Call i gotowe. Od tej pory przycisk Voicemail będzie nas łączył z pocztą głosową. Nie wiem jak działa to u innych operatorów bo nie mogłem sprawdzić zapewniam jednak, że z Plusem działa bez pudła.

Batteiph3Al7Jd

Co jeszcze? Bateria! Bateria głupku! Oto najprostszy sposób na wydłużenie iPhonowi życia pomiędzy kontaktami z ładowarką. Wyłączajcie OpenSSH kiedy go nie używacie! Jest jeszcze drugi powód – cały świat zna hasło roota. Jeżeli więc będziecie chodzić z odpalonym SSH w kieszeni to teoretycznie każdy kinderhaker na ziemi będzie mógł się dostać na waszego iPhona i solidnie narozrabiać. Żeby wygodnie włączać i wyłączać usługę będziecie potrzebować aplikacji Services. Znajdziecie ją w Instalatorze w sekcji Utilities. Ten mały programik ma proste zadanie – pilnuje żeby połączenia EDGE, bluetooth, wifi i serwer SSH działały tylko wtedy kiedy im na to pozwolicie. Po prostu – niezbędna rzecz!

Img 9006

Oprogramowanie w wersji 1.1.1 ma kilka ewidentnych niedoróbek. Jedną z nich są znikające po restarcie telefonu ustawienia EDGE. Problem naprawia łatka EDGE Settings fix którą znajdziecie w repozytorium pod adresem http://i.unlock.no. Wystarczy dodać nowe źródło do Instalatora – opis procedury znajdziecie w końcowej partii drugiej części tego tekstu – a potem zainstalować aplikację. Jest to jednak „brzydki hack” – po prostu nadpisujemy plik konfiguracyjny dla nieznanego operatora (UnknownCarrier.plist) plikiem pustym co wprawdzie rozwiązuje problem znikania ustawień ale też przywraca irytujący komunikat Call forwarding active. Jest jednak i na to niezawodny sposób – wystarczy nauczyć iPhona rozpoznawania polskich sieci!

Img 9007

A robi się to tak… W katalogu /System/Library/Frameworks/CoreTelephony.framework/Support/ znajdziemy plik CarrierMap.plist. Dopisujemy do niego linijkę zawierającą kod MCC/MNC naszego operatora i nazwę pliku z konfiguracją. Dla Plusa winno to wyglądać tak:

Plusiphha26

…czyli mamy 26001, dla Ery będzie to 26002 a dla Orange 26003. Nazwę pliku tworzymy z nazwy naszego operatora i odpowiedniego dla naszego kraju kodu ISO. Na obrazku powyżej zobaczycie ustawienia dla mojego telefonu a więc PLUS_PL.plist. Myślę że już rozumiecie o co chodzi? Zapisujemy plik. Ok. Stworzyliśmy właśnie odnośnik dzięki któremu iPhone rozpozna naszą kartę SIM po numerze MCC/MNC i zacznie szukać danych na temat konfiguracji naszej sieci w pliku o nazwie PLUS_PL.plist. Teraz trzeba więc jeszcze będzie stworzyć sam plik konfiguracyjny! Powiedzmy że powinien wyglądać on mniej więcej tak. Dla waszej sieci musicie zmienić co najmniej te wartości które na obrazkach poniżej zaznaczyłem na niebiesko. Być może jeszcze coś ale tego wam już nie powiem ze stuprocentową pewnością – musicie trochę sami po eksperymentować. Zresztą nawet gdybym chciał to nie pomogę. Niestety a może na szczęście – bo ostatnio niczym innym się nie zajmuje jak tylko iPhonem – nie mam kart SIM innych operatorów i nie mogę tego zweryfikować. To pole dla popisu dla was. Ale na moje oko powinno działać – w każdym razie w Plusie działa. Ok. Do rzeczy!

Apniphha4Q2

Z pierwszym kluczem nie powinno być kłopotów i nie sądzę aby wymagały szerszego wyjaśnienia. Zdecydowanie ważniejsza jest konfiguracja klucza APN. Dla Plusa (i Playa) ustawienia APN to internet i pusty login i hasło, dla Heyah będą to odpowiednio heyah.pl, heyah, heyah, dla Orange będzie to trzy razy internet a dla Ery trzy razy erainternet. Zwróćcie też uwagę że klucze ShowCallForwarding i ShowCallForwarded są już ustawione na false. Po przygotowaniu odpowiednich plików i wrzuceniu ich na iPhone trzeba jeszcze wymusić na telefonie odczytanie nowej konfiguracji. W tym celu wyjmujemy naszą kartę SIM, wkładamy inną (ja użyłem oryginalnej AT&T) a potem znów wracamy do naszej. Telefon zamiast nazwy sieci wyświetli komunikat No service. Teraz wystarczy tylko zrestartować iPhone i w ustawieniach Settings/General/Network/EDGE znajdziecie właśnie wprowadzoną i właściwą dla waszego operatora konfigurację. To rozwiązanie bardziej eleganckie od prostego poprawienia pliku UnknownCarrier.plist o którym pisałem wcześniej. Ma nad nim dużą przewagę choć – to prawda – jest nieco bardziej skomplikowane w realizacji. Teraz jednak gdy włożycie kartę innego operatora lub – co zdarza się zdecydowanie częściej – wyjedziecie za granicę telefon logując się do nieznanej sieci automatycznie przestawi się na tryb unknown – który pozwala skorzystać z dowolnej dostępnej sieci i skonfigurować EDGE ręcznie – a gdy znów zalogujecie się do sieci macierzystej automagicznie powróci do właściwych dla niej ustawień. Milutko prawda?

Snapshot1194184346

To tyle na dziś. W kolejnych częściach – już zapewne sporo krótszych – będę się starał na bieżąco informować was o wszystkich pożytecznych odkryciach. W najbliższych planach polski słownik dla 1.1.1! Przypominam jednak, że wszystkie te podane wyżej sposoby na poprawianie iPhona niosą ze sobą pewne ryzyko. Mimo że nie piszę o niczym czego bym sam wcześniej nie sprawdził niemniej jednak zawsze mogą pojawić się jakieś nieprzewidziane kłopoty. Czasem ktoś zrobi prosty błąd, czasem włączy się siła wyższa lub coś po prostu nie wypali. Jak mówi jedno z praw Murphego, jeśli coś może pójść źle to – prędzej czy później – pójdzie. Pamiętajcie więc o tym żeby zawsze robić backup zanim zaczniecie dłubać w plikach konfiguracyjnych iPhone, i że wszystko robicie na własną odpowiedzialność. Jeżeli powyższe przepisy wydają się wam niezbyt zrozumiałe lepiej sobie darujcie ekspedycję w nieznane – lepszy działający telefon ze starym softem i bez kilku udogodnień niż z najnowszym i martwy.


komentarzy 8