Blog (220)
Komentarze (4k)
Recenzje (1)
@djfoxerJak obejść ograniczenia Sklepu Windows Phone?

Jak obejść ograniczenia Sklepu Windows Phone?

19.08.2013 18:14

Każdy z producentów ma własne unikalne aplikacje w sklepie Windows Phone, co więcej, ograniczone często do konkretnych modeli urządzeń (np. Nokia Pro Cam ograniczona do modeli 92x i 1020). Zatem teoretycznie nie zainstalujemy aplikacji od Noki na HTC i na odwrót, także dedykowanej aplikacji do zdjęć dla Lumii 920 nie pobierzmy na Lumię 820. Okazuje się jednak, że można to w prosty sposób obejść, bez magicznej wiedzy.

Przygotowania do pracy

Aby móc działać w jakikolwiek sposób, należy pobrać program Fiddler. Dzięki tej aplikacji będziemy w stanie monitorować ruch jaki generuje nasze urządzenie z Windows Phone. Kiedy już zainstalujemy Fiddlera, czas na konfigurację:

[list] [item]Musimy sprawdzić nasze IP, na którym zainstalowany jest Fiddler. Najszybciej wykonamy to z linii poleceń. Skrótem Windows+R otwieramy okno Uruchamianie, wpisujemy w nim cmd, aby uruchomić linię poleceń. Wpisujemy komendę ipconfig i sprawdzamy nasz adres IP.

479698

[/item][item]Komputer, na którym jest Fiddler, pełnić będzie rolę proxy. Zatem ustawmy w Windows Phone odpowiednie opcje. Połączmy się z sieci WiFi (w której już jest obecny komputer z Fiddlerem) i poprzez przytrzymanie palca na nazwie sieci, dodajmy proxy.

107222
107223

Adres IP ustawimy taki, jaki jest na komputerze z Fiddlerem, zaś nr portu wpisujemy: 8888 (domyślnie dla Fiddlera).

[/item][item]Czas na uruchomienie Fiddlera. W menu opcji Tools->Fiddler Options... w zakładce Connections, zaznaczyć należy Allow remote computers to conect.

479705

[/item] [/list]

Analiza podglądu

Już na tym etapie wszelki ruch sieciowy wykonywany z poziomu telefonu, powinien być wychwytywany przez Fiddlera (jeśli tak nie jest, sprawdź czy opcja File->Capture Traffic jest zaznaczona). Warto teraz wyczyścić okno Fiddlera (ikona krzyżyka i wybieramy Remove all).

Wejdźmy na urządzeniu z Windows Phone do Sklepu i wybierzmy jakąś aplikację do wyświetlenia. W oknie Fiddlera pojawi się m.in. log z hostem marketplaceedgeservice.windowsphone.com. Jest to link, który został wysłany ze smartofnu do Sklepu. Zobaczmy jak wygląda taki przykładowy adres:

http://marketplaceedgeservice.windowsphone.com/v8/catalog/apps/9c3e8cad-6702-4842-8f61-b8b33cc9caf1?os=8.0.10211.0&cc=PL&oc=&lang=pl-PL&hw=50700000&dm=RM-825_eu_poland_295&oemId=NOKIA&moId=&cf=00-0

Szybko zauważymy:

  • ID aplikacji (to ten długi GUID).
  • Wersję systemu urządzenia - znacznik os
  • Język i region - znacznik cc i lang
  • Wersję sprzętu - znacznik hw
  • Wersja firmwareu (określa model urządzenia i operatora) - znacznik dm
  • Producent/OEM - znacznik oemId

Oczywiście to nie wszystkie parametry, jakie są wysyłane, ale te które na daną chwilę mogę się nam przydać.

Jak podmienić wartości?

Wiemy już jak wygląda link do Sklepu i co w nim jest przesyłane. Jak teraz w locie podmienić wartości na takie, jakie zechcemy ustawić? Użyjemy tu Fiddlera. Można to osiągnąć w dwojaki sposób. Z poziomu GUI (zakładka AutoResponder i ustawienie reguł) lub w skrypcie. Opcja pierwsza jest najprostsza, ale najmniej uniwersalna i konfigurowalna, druga zaś ma większe możliwości i nią się właśnie zajmiemy:

[list] [item]Skrótem Ctrl+R otwieramy plik z regułami dla Fiddlera.[/item][item]Znajdujemy linijkę: [code=c#]static function OnBeforeRequest(oSession: Session) {[/code] [/item][item]za tą linijką wklejamy kod:

[code=c#]if(oSession.uriContains("_ORG")) { oSession.url = oSession.url.Replace("_ORG"","_ZMIANA"); }[/code]

Powyższy kod sprawdza, czy w url znajduje się szukany ciąg, jeśli tak jest, podmienia go.

_ORG jest szukanym elementem w stringu, _ZMIANA to wartość na jaką chcemy zamienić.

[/item][item]Po edycji zapisujemy plik.[/item][/list]

Wykorzystanie

Znamy wygląd url wysyłanego do Sklepu oraz z czego się składa, teraz przyszedł czas na kilka przykładów wykorzystania tej wiedzy.

Pobieranie aplikacji OEM od innego producenta, niż producent urządzenia

Sprawa jest prosta. Posiadamy np. Lumię od Nokii, a chcemy pobrać aplikację Photo Enhancer, która dedykowana jest tylko dla urządzeń od HTC. Naszym celem jest podmiana producenta OEM, jaki jest doklejany do url. Oto co należy zrobić:

[list] [item]Wykonać wszystkie kroki opisane w punkcie Przygotowania do pracy[/item][item]W kodzie z punktu Jak podmienić wartości? ustawiamy:

  • _ORG - NOKIA
  • _ZMIANA - HTC

[/item][item]Wchodzimy bezpośrednio do Sklepu z linku: Photo Enhancer [/item][item] Otwiera się okno Sklepu...

107225
107226

... i instalujemy aplikację. [/item][/list]

Dla ułatwienia podaję listę z linkami aplikacji od konkretnych producentów:

Instalacja aplikacji dostępnych tylko dla określonych urządzeń

Na pewno wszyscy kojarzą aplikację Nokia Pro Cam, która wraz z aktualizacją Amber, została udostępniona tylko dla urządzeń Lumia z serii 92x oraz 1020. Nic nie stoi jednak na przeszkodzie, aby pobrać Nokia Pro Cam np. na Lumię 820. W tym celu, podmienimy model urządzenia, jaki przesyłany jest w url. Poszczególne etapy wyglądają następująco:

[list] [item]Wykonać wszystkie kroki opisane w punkcie Przygotowania do pracy[/item][item]Zapisujemy nazwę firmwareu urządzenia. Można to zrobić poprzez analizę linka wysyłanego do Sklepu lub prościej, w opcjach: Ustawienia->info+dodatki, klikamy na więcej i spisujemy nazwę z pola Manufacturer Name.[/item][item]W kodzie z punktu Jak podmienić wartości? ustawiamy:

  • _ORG - nazwa_z_manufacturer_name
  • _ZMIANA - RM-877_nam_att_205 (będziemy przestawiać się jako Lumia 1020 od ATT)

[/item][item]Wchodzimy bezpośrednio do Sklepu z linku: Nokia Pro Cam [/item][item] Otwiera się okno Sklepu...

107227
107228

... i instalujemy aplikację. [/item][/list]

Kilka uwag

W ten sposób mamy dostęp do wszelakich aplikacji umieszczonych w Sklepie Windows Phone. Na koniec kilka uwag i porad:

  • Niektóre aplikacje (jak Hub od HTC z zegarkiem w kafelku) wymagają dodatkowych sterowników/plików, stąd nie będą w pełni funkcjonalne na innych, niż dedykowane urządzenia.
  • W ten sposób można również mieć dostęp do aplikacji ograniczonych przez region/język. Wówczas należy ustawić proxy na zagraniczne (może być niebezpieczne!).
  • Internet Explorer i Sklep na Windows Phone posiadają cache z wynikami zwracanymi z serwera, stąd podmiana nie zawsze będzie natychmiast widoczna.
  • W edytowany pliku w Fiddlerze można dodawać własny kod w C#.
  • Pamiętajmy, aby wyłączyć proxy po zakończonej pracy!

Miłego grzebania! :)

Wybrane dla Ciebie
Komentarze (47)