Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Jak obejść ograniczenia Sklepu Windows Phone?

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ę:

  • 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.
  • 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.

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

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

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:

  • Skrótem Ctrl+R otwieramy plik z regułami dla Fiddlera.
  • Znajdujemy linijkę: static function OnBeforeRequest(oSession: Session) {
  • za tą linijką wklejamy kod:

    if(oSession.uriContains("_ORG")) { oSession.url = oSession.url.Replace("_ORG"","_ZMIANA"); }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ć.

  • Po edycji zapisujemy plik.

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ć:
  • Wykonać wszystkie kroki opisane w punkcie Przygotowania do pracy
  • W kodzie z punktu Jak podmienić wartości? ustawiamy:
    • _ORG - NOKIA
    • _ZMIANA - HTC

  • Wchodzimy bezpośrednio do Sklepu z linku: Photo Enhancer
  • Otwiera się okno Sklepu...
    ... i instalujemy aplikację.

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:

  • Wykonać wszystkie kroki opisane w punkcie Przygotowania do pracy
  • 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.
  • 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)
  • Wchodzimy bezpośrednio do Sklepu z linku: Nokia Pro Cam
  • Otwiera się okno Sklepu...
    ... i instalujemy aplikację.

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! :) 

oprogramowanie porady urządzenia mobilne

Komentarze

0 nowych
FaUst   11 #1 19.08.2013 16:26

Obejść ;) nie objeść :)

FaUst   11 #2 19.08.2013 16:30

A wpis ciekawy - nie sądziłem że jest to aż tak "prymitywnie" rozwiązane. Muszę sprawdzić jak to jest w Androidzie :)

xomo_pl   20 #3 19.08.2013 16:35

"objeść" głodnemu chleb na myśli chyba :P

a co do tematu to niezły patent, szkoda, że nie da się w ten sposób wymusić darmowej nawi od nokii na hTC/samsungu etc- tzn. chyba się nie da bo nie widzę nawi w liście aplikacji nokii...

djfoxer   17 #5 19.08.2013 17:47

Dziękuję za podmiankę, chyba faktycznie byłem głodny jak pisałem ten wpis.

@FaUst @zomo_prl
Nie wszystkie aplikacje da się tak zainstalować. Jak pisałem, część z nich, jak chociażby zegarek od HTC, wymaga dodatkowych plików, dostępnych na telefonie. W przypadku nawigacji od Nokii dla Nokii (nie chodzi mi tu o wersję płatna, udostępniona dla wszystkich urządzeń z WP8) aplikacja przy uruchomieniu sprawdza dodatkowo, czy system spełnia określone wymogi, stąd nie zainstalujemy jej na urządzeniach innych niż Nokia. W WP7, na odblokowanych urządzeniach interop+, można było w rejestrze zmienić oemId, wówczas taka nawigacja startowała wszędzie.

djfoxer   17 #6 19.08.2013 17:48

*nie zainstalujemy = nie uruchomimy

  #7 19.08.2013 18:07

Grozi to czymś? Blokadą telefonu? Konta microsoft? Innymi przykrościami?

mktos   9 #8 19.08.2013 18:27

Cały czas zastanawia mnie czy jeśli ten proceder stanie się popularny to czy Microsoft nie przyblokuje na przykład konta, z którego to są wysyłane "zmodyfikowane" żądania.

tfl   8 #9 19.08.2013 18:38

@mktos

Ze zdecydowana pewnoscia moge powiedziec: nie.

  #10 19.08.2013 19:09

Mniej zabawy zdecydowanie byłoby z "alternatywnym" sklepem :P

Dragonk   8 #11 19.08.2013 19:13

Już dawno w custom romach są takie cuda :) Ba nawet można w locie zmieniać w aplikacjach identyfikator telefonu i to z jakiego sklepu korzystać.

djfoxer   17 #12 19.08.2013 20:28

@mktos
Jeśli nawet, to zapewne wcześniej MS da znak ostrzegawczy, aczkolwiek wątpię. Łatwo zwyczajnie podczas uruchomienia sprawdzić jeszcze raz wersję sprzętu/oprogramowania.

@Dragonk
Dokładnie, ale tylko dla WP7, a ten trik działa również dla WP8. Poza tym zabawa w podmianę oemId w rejestrze Windows Phone (7), może się skończyć problemami z certyfikatami aplikacji na urządzeniu. Miałem tak raz i wówczas pomaga tylko hard reset.

anzelmo   1 #13 19.08.2013 20:39

opis jak to zrobić już dawno pojawił się na windowsmania.pl

  #14 19.08.2013 20:43

idzta juz z ta nokia bo to sa jakies kpiny z userow

djfoxer   17 #15 19.08.2013 21:26

@anzelmo
Temat krąży już od jakiegoś czasu w portalach o WP (np. forum wpcentrum)

  #16 19.08.2013 21:43
Krogulec REDAKCJA  20 #17 19.08.2013 22:19

@anzelmo: Hmmm.... Niech zgadnę - i w związku z tym obowiązuje zakaz pisania na ten sam temat gdzie indziej? :P

  #18 20.08.2013 09:16

chyba łatwiej kupić smartfona z Androidem ... :)

djfoxer   17 #19 20.08.2013 09:24

@Nerf
Na dzień dzisiejszy nie, więc można spokojnie się pobawić.

@Domker_
Jest chociażby Bazaar, ale to tylko na WP7, zaś opisana sztuczka działa na WP7 i WP8.

@ghostec
Tak jak pisałem, wgrywanie obcego proxy to raczej nie jest dobry pomysł.

@dav_ubu
Wiesz, masz Nokię, więc dlaczego miałbyś mieć taki łatwy dostęp do dedykowanych apek od chociażby Samsunga :)

dzikiwiepsz   11 #20 20.08.2013 09:46

A ta metoda jest w 100% legalna? tak z ciekawości się pytam.

foreste   14 #21 20.08.2013 10:08

no właśnie to legalne ?

aderas   5 #22 20.08.2013 10:17

Bardzo ciekawy wpis. Aczkolwiek nie wierzę, że Microsoft nie będzie sprawiał trudności w rozpowszechnianiu tego procederu.

tfl   8 #23 20.08.2013 10:37

@aderas

Przede wszystkim jest to nieweryfikowalne, dopoki uzywany w czasie komunikacji jest protokol http

ErnstLodz   4 #24 20.08.2013 13:13

Tyle czasu Windows Phone jest na rynku a nadal nie dorobił się odtwarzacza wideo zdolnego odtwarzać napisy. Żenada :)

AntyHaker   17 #25 20.08.2013 16:08

@ErnstLodz
I nie dorobi, bywa.
@Krogulec (redakcja)
Niby można, ale jak DjTonka to zauważy to płacz będzie jak zawsze.

djfoxer   17 #26 20.08.2013 18:08

@dzikiwiepsz @foreste @aderas
To zwykła podmiana urla, myślę, że jeśli MS zechciałby to zabezpieczyć to by to zrobił. Ważne apki dla Noki czy innych producentów są zabezpieczane przy uruchomieniu.

@ErnstLodz
Oj, nie będzie prędko, jeśli w ogóle :)

@silvax
Któż to taki? Opisany sposób widziałem na wpcentral i z tego co widzę był on pierwszy, a nie portal wymieniony wcześniej. Poza tym, większość newsów na wszystkich portalach jest ta sama, nie bądźmy niepoważni :) :P Jakieś linki może podaj?

  #27 20.08.2013 19:03

A jest coś co pozwoli mi użyć mp3 jako dzwonka? irytujace jest korzystanie tylko z gotowych utworów.

msnet   18 #28 20.08.2013 20:30

Sprawdziłem działanie zamieszczonych tu porad na Nokii 820. Udało mi się zainstalować aplikację Nokia Pro Cam. Teraz tylko muszę poczekać na aktualizację GDR2, by sprawdzić, czy jak apka działa :)

dzikiwiepsz   11 #29 20.08.2013 22:42

@djfoxer
dzieki za odpowiedź.

djfoxer   17 #30 20.08.2013 23:28

@msnet
Działa wyśmienicie, aczkolwiek wysypuje się, kiedy chcemy zrobić zdjęcie przednią kamerką (mały szczegół myślę). Widać również dużą poprawę w jakości zdjęć robionych przy niewielkim oświetleniu.

msnet   18 #31 21.08.2013 00:01

@djfoxer - akurat przednia kamerka mnie mało interesuje... Bardziej interesuje mnie jakość zdjęć z głównego aparatu, bo nie chce mi się wszędzie lustrzanki dźwigać )

  #32 21.08.2013 12:41

Szkoda że się nie da tak zainstalować Nokia Drive, bo ma zabezpieczenie w aplikacji i pokazuje błąd. Próbowałem też podmienić XAP aplikacji ale niestety jak dam mu xapa innego niż oryginalny z aplikacji nie chce się zainstalować, pewnie suma kontrolna przesyłana jest przez https

djfoxer   17 #33 21.08.2013 22:28

@radar
Proszę: http://www.windowsphone.com/pl-pl/how-to/wp8/start/add-ringtones-to-my-phone

@msnet
Szału nie ma, do L92x daleko, aczkolwiek widzę postęp. Jestem bardzo zadowolony z aktualizacji GDR2+Amber i aplikacji Nokia Pro Cam (choć faktycznie czasem robi zdjęcia zbyt żółtawe, pewnie będzie niedługo update)

@anonim
Tego typu apki są chronione z poziomu kodu programu. Są zbyt ważne dla Twórców, by ich nie zabezpieczać.

Michalk001   6 #34 22.08.2013 18:33

Równie ciekawą rzeczą jest to, iż w Windows 8 programy(w wersji modern), które w ich sklepie kosztują XXzł, po pobraniu wersji próbnej(która jest przy większości apek), można przerobić na oryginał edytując jeden plik.Z tego co wiem to chyba dalej to działała.
To powinni naprawić w pierwszej kolejności, jeśli chcą przyciągnąć deweloperów.

Over   9 #35 23.08.2013 08:52

W androidzie jest mniej kombinacji i więcej można zrobić, ale dobrze że opisujesz takie obejścia bo z WP nie mam najmilszych wspomnień i przeżyć.

djfoxer   17 #36 23.08.2013 14:31

@Michalk001
To już jest o krok za daleko wg mnie.

@Over
To jest tylko sposób na pobranie darmowych aplikacji, które i tak są darmowe z ograniczeniem na sprzęt. Cenny soft jest zabezpieczony :)

Co do przeżyć, jakieś przykłady możesz podać? :)

  #37 29.08.2013 19:25

Czy mógłby mi ktoś podlinkować gotową konfigurację z HTC na Nokię ? Grzebię się z tym już dłuższy czas i w dalszym ciągu nic.

  #38 07.09.2013 20:22

Mógłby mi ktoś powiedzieć jak wykonać podmianę wartości krok po kroku? Ciągle wywala mi jakiś błąd. Albo nawias nie tam gdzie trzeba, albo jeszcze coś innego. Kod mam wkleić za linijką, czy pod linijką?

djfoxer   17 #39 08.09.2013 13:47

@fazaprzemek @Greg1977

Jak znajdziecie linijkęw pliku:
"static function OnBeforeRequest(oSession: Session) {"
robicie pod nią kilka enterów, tak, aby po klamrze było kilka wolnych linijek. Teraz w te wolne linijki wklejacie kod z wpisu, podmiana z HTC na Nokię będzie wyglądała tak:

if(oSession.uriContains("HTC"))
{
oSession.url = oSession.url.Replace("HTC"","NOKIA");
}

(aczkolwiek musisz sprawdzić czy ma być HTC, czy Htc (wielkość liter ma znaczenie))

  #40 14.09.2013 13:41

Dzięki za pomoc, ale i tak mi nie chce tego wczytać. Pojawia się błąd, że jest niewłaściwa ścieżka. Próbowałem już na wszelkie możliwe sposoby i cały czas jest to samo: albo "}" albo "or"

djfoxer   17 #41 14.09.2013 20:19

@Greg1977
Podeślij zawartość pliku.

  #42 15.09.2013 15:22

Już działa. Jeden znak za dużo miałem. Tylko że teraz nie umiem się połączyć ze sklepem...

  #43 18.09.2013 12:56

mi nie działa :(((
static function OnBeforeRequest(oSession: Session) {

if(oSession.uriContains("_RM-825_eu_poland_296"))

oSession.url =oSession.url.Replace("_RM-825_eu_poland_296"','_RM-877_nam_att_205");
}
// Sample Rule: Color ASPX requests in RED

djfoxer   17 #44 29.09.2013 14:26

@janusz33345
Coś źle pozamykałeś stringi:
Zamiast: "_RM-825_eu_poland_296"','_RM-877_nam_att_205"
Powinno być: "_RM-825_eu_poland_296","_RM-877_nam_att_205"

msnet   18 #45 03.11.2013 01:22

@djfoxer - nie znasz przypadkiem wartości "manufacturer_name" dla HTC 8S lub HTC 8X?

djfoxer   17 #46 03.11.2013 15:48

@msnet
Niestety nie, ale jeśli masz HTC to za pomocą fiddlera możesz podsłuchać jakie ma on oznaczenie.

msnet   18 #47 04.11.2013 03:11

@djfoxer - w tym problem, że już nie mam. Chciałem na Lumii przetestować pogodynkę od HTC, ale niestety sama zamiana Nokii na HTC nie wystarczyła (jak w przypadku kilku aplikacji od Samsunga).