Xiaoyi – Xiaomi Ants / Smart / Home – usunięcie blokady regionalnej!

Przypominacie sobie sporą dyskusję, która toczyliśmy w komentarzach pod recenzją kamery IP od ? Jeśli nie to tutaj możecie sobie przypomnieć: KOMENTARZE. Wielu z Was interesowało jak zdjąć blokadę regionalną z tej kamery. Oto rozwiązanie.

Square-Logo2-2-1024x1024

Wszystkie problemy świata zaczęły się gdy Xiaoyi/ zaczęło wypuszczać swoje międzynarodowe wersje sprzętu. Każdy z nas kupował je w chińskich wersjach bo były po prostu tańsze o co najmniej 20%. Jak do tej pory pomimo ciągłego nacisku i wielu aktualizacjach firmware i aplikacji nie udało się osiągnąć celu: czyli namówić wszystkich właścicieli chińskiego sprzętu poza Chinami do zakupu wersji międzynarodowych.

Wyjątkiem od reguły była kamera Xiaoyi Ants/Home/Smart. W której deweloperzy umieścili aplikację, która sprawdza w jakiej wersji jest kamera (CN czy INT) isprawdza w jakiej części świata jest używana. Jeśli w Chinach – OK. Jeśli poza Państwem Środka – dostajemy informację od mile brzmiącej pani, że kamera może być używana tylko na terenie Chin i kamera wyłącza się... Cykl się powtarza przy każdym włączeniu do sieci.

Odpowiednie ostrzeżenie umieściliśmy jako dodatkową aktualizację Recenzji,która możecie podejrzeć TUTAJ.

W felietonie o tym jak zainstalować dodatkowe usługi – RTSP, telnet, www czy ftp – opisaliśmy z których wersji firmware korzystać aby uniknąć zbanowania.

Wpis możecie podejrzeć TUTAJ.

Rozwiązanie problemu


Pewnie i tak nikt z Was nie przeczytał wstępu, tylko od razu polecieliście do tego akapitu żeby poznać rozwiązanie 🙂 A więc nie będę przedłużał.

W pierwszej kolejności potrzebujemy mieć dostęp do połączenia przez telnet, więc na kartę microSD sformatowaną w FAT32 musicie załadować folder test wraz z jego zawartością, cała procedura jest opisana w TYM artykule, więc nie będę jej tutaj opisywał ponownie.

Następnie zaktualizujcie sobie kamerę przez aplikację. Po zrestartowaniu odpalcie putty czy inny klient telnetowy, połączcie się (root/1234qwer) i teraz wystarczy uruchomić te 3 komendy, jedna po drugiej i zrestartować kamerę:

ps | grep /home/watch_process | grep -v "grep" | awk '{print $1}' | xargs kill -9
ps | grep /home/cloud | grep -v "grep" | awk '{print $1}' | xargs kill -9
sed -i 's|api.xiaoyi.com/v4/ipc/check_did|api.xiaoyi.cox/v4/ipc/check_did|g' /home/cloud
reboot

I to tyle! Kamera uruchomi się i będzie już działać na najnowszym firmware.

Moja chińska kamera z najbardziej aktualnym firmware:

Screenshot_2016-05-24-19-59-18

Dla ciekawych


Jak działa blokada regionalna?

Kamera komunikuje się z serwerami api.xiaoyi.com przez binarkę cloud podczas parowania oraz uruchamiania kamery po stracie napięcia. Wysyła Twoje ip do swoje serwera matki i dostaje odpowiedź:

[/home/cloud][4/29/22:51:48:52]: req_info=https://api.xiaoyi.com/v4/ipc/check_did?hmac=XXXXXXXXXXXXXXX%3D&seq=9
&uid=XXXXXXXXXXXXXX&timestamp=4294938554
{"allow":false,"code":"20000"}

allow:false oznacza że kamera zostanie zbanowana. Jest kilka sposobów aby to oszukać. Można postawić swój serwer DNS, który będzie przekierowywał zapytania do api.xiaoyi.com na jakikolwiek adres, najciekawsze jest to, że kamera nie oczekuje odpowiedzi allow:true, brak odpowiedzi jest równoznaczny z pozwoleniem na dalsze użytkowanie.

W ten sposób Xiaomi zabezpieczyło się na wypadek jakby serwer-matka miał chwilową awarię. Raczej nikt, kto kupił kamerę w wersji międzynarodowej nie chciałby usłyszeć że jego kamera jest zbanowana tylko dlatego że na kilka sekund serwer na którym stoi api.xiaoyi.com stracił połączenie ze światem.

Można się też pobawić i przekierować DNS na prawdziwą stronę – utworzoną przez siebie, która zawsze generowała by odpowiedź allow:true, ale w tej chwili nie ma takiej potrzeby 🙂

No i trzecim rozwiązaniem są te trzy komendy, które należy uruchomić.

  • Pierwsza z nich zabija watch_process, czyli aplikację która sprawdza inne procesy, czy działają niezakłócone, czy akurat zaliczyły crash i trzeba je resuscytować.
  • Druga – zabija aplikację cloud abyśmy mogli bezproblemowo ją edytować
  • Trzecia podmienia adres api.xiaoyi.com na api.xiaoyi.cox – aby dostać odpowiedź o niedostępności serwera.

Tyle i aż tyle.

Otwarte punkty, pytania


  • Czy w związku z tym będzie działać oficjalna aplikacja z Google Play?
  • Nie, nadal trzeba mieć zainstalowaną wersję chińską. Najnowszą wersję możecie ściągnąć z tej strony: http://app.mi.com/detail/75646
  • Jakie jest aktualnie najnowszy firmware i czy działa nań RTSP?
  • Najbardziej aktualny fw to 1.8.6.1B, nie działa RTSP. Serwer RTSP działa do wersji M włącznie. Firmware wraz ze skryptami możecie pobrać z tej strony: http://xiaoyi.querex.be/
  • Czy te zmiany są bezpieczne i kamera mi się nie „zepsuje” ?
  • Nikt nie daje gwarancji na tą zmianę, ale jest ona odwracalna w każdej chwili, wystarczy zainstalować inny/starszy firmware.

Podziękowania


Autorem tego opracowania jest blog: https://diy.2pmc.net/

Udostępnij na:

15 thoughts on “Xiaoyi – Xiaomi Ants / Smart / Home – usunięcie blokady regionalnej!

  1. Bartek Barczak

    Thx ale ja mam wersję kamery którą bez problemu da się zaaktualizować do najnowszej wersji (sprzed 2016) ale czekam na opcję gdy można połączyć ją z wersją z GP gdzie jest więcej ustawień np. ustawienia wybranego pola do aktywacji ruchu i przesłania alertu.

  2. reddccrew

    Pośpieszyłem się 🙁 kamerka ściągnęła nowy soft pochodziła 5 minut i „this camera can be used only in china” 🙁 Pytanie dlaczego ??

    Oczywiście te skrypty wykonałem.

    1. Spokojnie 🙂 Jesteś już drugą osobą z tym problemem, muszę zaktualizować wpis.
      Musisz po prostu jeszcze raz wykonać procedurę wpisania tych 3 komend przez telnet. Czyli wyłącz kamerę, włącz ponownie i po kilku sekundach spróbuj się połączyć przez telnet, jak tylko uda Ci się zalogować wpisz ponownie te 3 komendy i wpisz reboot żeby zrestartować kamerę. Po tym restarcie już będzie śmigać na najnowszym firmware.

      Możliwe że za każdym razem przy aktualizacji trzeba będzie powtarzać tą procedurę ( fw nadpisuje plik cloud).

          1. lee.loo

            Czy najnowszy soft w wersji C obsługuje rtsp?

          2. Niestety. Ostatnia wersja która obsługuje rtsp na ten moment to wersja M.

  3. Hej. Po przejsciu przez wszystkie kroki kamerka na razie (2h) dziala.

    Probowalem podejrzec plik /home/cloud i to co mnie troche dziwi to ze nie moge w nim znalezc zadnego odniesienia do api.xiaoyi.cox

    # grep api.xiaoyi /home/cloud
    %s -c 136 -url http://api.xiaoyi.com/v2/ipc/sync_time
    %s -c 304 -url https://api.xiaoyi.com/v4/alert/event -uid %s -keySec %s -EventTime %lu -EventStat %s -pic_url „%s” -video_url „%s” -pic_pwd „%s” -video_pwd „%s”
    %s -c 140 -url https://api.xiaoyi.com/vmanager/upgrade -uid %s -version %s
    /home/cloudAPI -c 301 -url „https://api.xiaoyi.com/vmanager/upgrade/get_md5”
    %s -c 138 -key %s -keySec %s -url https://api.xiaoyi.com/v4/ipc/on_line -uid %s -version %s -mac %s -packetloss %d -p2pconnect %d -p2pconnect_success %d -tfstat %d
    %s -c 139 -keySec %s -url https://api.xiaoyi.com/v4/ipc/reset -uid %s -version %s -mac %s
    # grep check_did /home/cloud
    # grep api.xiaoyi.cox /home/cloud

    Chociaz wstepne komendy zostaly wykonane bez bledow:
    None of nfsroot found in cmdline.
    # ps | grep /home/watch_process | grep -v „grep” | awk ‚{print $1}’ | xargs kill
    -9
    # ps | grep /home/cloud | grep -v „grep” | awk ‚{print $1}’ | xargs kill -9
    # sed -i ‚s|api.xiaoyi.com/v4/ipc/check_did|api.xiaoyi.cox/v4/ipc/check_did|g’ /home/cloud
    # ps

Skomentuj

This site uses Akismet to reduce spam. Learn how your comment data is processed.