Ковыряясь с GPS-трекером Topin G03
Введение
Собственно производитель этой
какашки:
Shenzhen Zhongxun Chuangzhi Technology Co., Ltd.
(даже сайт у них ламерский, насквозь ублюдочный).
Вкратце, это GPS-трекер, который, по идее,
должен отправлять информацию о своём положении по GSM-каналу
(для работы требуется nano-SIM-карта).
Есть слот для карточки памяти
(TF card (micro-SD) ёмкостью до 32GB),
на которую возможна запись звука со встроенного микрофона.
Умеет подавать звуковые сигналы (довольно громкие).
На самом деле, эти китайские жопорукие мудаки сотворили очередную лажу:
-
Эта хрень GPS-спутники ловит еле-еле, постоянно их теряет,
глючит, пердит и мозга компостирует.
Особенно хреново ловит GPS-спутники G03s
(уменьшенная модель:
с маленьким аккумулятором и без возможности подачи SOS).
-
Та же хрень с GSM: плохо держит сигнал, постоянно отваливается от соты.
-
Жрёт GPRS траффик тоннами, шлёт какое-то дерьмо на сайт
365gps.net,
без которого толком работать не умеет.
-
У этой гниды есть приложения для смартфонов
(андроедовские и пидорские),
которые при установке для своей работы запрашивают
совершенно отмороженные привилегии и права доступа,
которые подобным приложениям никак не могут быть нужны:
- Phone
-
- directly call phone numbers
- read phone status and identity
- Photos/Media/Files
-
- access USB storage filesystem
- read the contents of your USB storage
- modify or delete the contents of your USB storage
На кой хрен этой дряни всё это нужно?
Это приложение для работы с GPS-трекером
или это
„закладка“
для слежки за самим пользователем?
-
Не умеет отдавать свои GPS-координаты просто в виде пары чисел в SMS.
Есть, конечно, SMS-команда
999,
которая присылает в ответ SMS со
ссылкой
на какие-то уродские серверы 08gps.com,
на коих следует
перенаправление
на Google Maps.
Однако из этой ссылки эти самые
координаты
вычленить просто так нельзя
— это не просто изврат, это мудизм,
т.к. для получения текущих координат трекера требуется не только GSM-связь,
но ещё и наличие GPRS-канала.
Вместо того, чтобы просто создать простенький SMS-протокол
для общения двух конечных GSM устройств и соответствующие
прошивку для трекера и приложение для телефона (смартфона, планшета),
отображающее точку (соответствующую полученным из SMS координатам)
на какой-нибудь локальной карте смартфона (в приложениях типа osmand),
эти безмозглые пидарасы слабали своими кривыми руками систему,
которая работает только при наличии доступа в Internet
и у трекера, и у клиентского устройства,
и только через этот их дебильный сайт
(365gps.net).
Причём, безо всякого HTTPS — никаких мыслей о безопасности!
Впрочем, у этих ровшанов и джамшутов с мыслями вообще туго.
Уроды!
-
Бывали случаи,
когда эта мутотень просто зависала напрочь:
постоянно светятся все индикаторы,
ни на какие нажатия кнопки питания не реагирует,
на подключение к USB тоже ноль внимания,
sms-ки не принимает
(отвалилась от сотовой сети)…
Пришлось ждать, пока разрядится аккумулятор, блѣ†.
-
-
-
Подмеченное, возможно, полезное
Кое-что не (пр)описанное в приложенной инструкции:
- Включение
-
Кнопка включения находится внутри, под крышечкой.
Доступиться до неё можно, только сняв (отколупнув!) крышку.
Индикаторы (светодиоды) также снаружи не видны.
-
Включается нажатием и недолгим (3сек) удержанием кнопки Power.
Выключается нажатием и долгим (9сек) удержанием той же кнопки.
-
Topin G03 имеет „кнопку“ SOS,
но это не отдельная кнопка,
а та же самая кнопка Power (вкл/выкл питания).
И поскольку для выключения устройства следует
нажать и долго (9сек) удерживать эту самую кнопку,
между делом срабатывает сигнал SOS („гениально“!),
и эта тупая железяка издаёт пиликание.
-
-
-
Сигналы светодиодов
Сигналы светодиодов и их значения аналогичны,
лишь относятся они к разным функциональным блокам:
- Синий
- Показывает состояние GPS.
- Жёлтый
- Показывает состояние GSM.
- Красный
- Показывает заряд батареи.
Значения сигналов:
- Светится
-
Нормальным такое поведение является только для индикатора заряда батареи
при подключённом разъёме micro-USB
— собственно, показывает, что процесс зарядки идёт.
Для индикаторов GPS и GSM такое поведение встречалось только
при полном охренении — зависании — аппарата
и проблемах с SIM-кой,
т.е. непрерывное свечение для индикаторов GPS и GSM совершенно не нормально.
- Частое мигание
-
Поиск сигнала: спутников, сотовой сети, GPRS-канала и связи с сервером 365gps.net.
Или же (у индикатора заряда) малый заряд батарейки.
- Редкое мигание
-
Спутники найдены, координаты определены /
Связь установлена /
Батарея заряжена.
- Выключен
-
Сон/выкл.
Например, индикаторы GPS и GSM не будут светиться,
если подать sms-команду отключения GPRS-канала данных и позиционирования:
link#0#.
Nota Bene.
Если подать команду
link#0#,
сразу погаснут светоиндикаторы GPS и GSM,
но в действительности сотовая связь будет продолжать работать,
отключится лишь передача данных по GPRS-каналу.
Причём, через некоторое время погаснет (перестанет моргать) и индикатор заряда,
но это не значит, что устройство выключится
— оно по-прежнему будет на связи (и принимать sms-ки).
Как при этом по внешнему виду понять,
продолжает ли трекер работать или тупо вырубился — X3.
Очередной подарок от безмозглых ровшанов и джамшутов гонгконгского разлива.
Железо
Потроха
Посокольку для управления устройством требуется отколупывать крышечку
(лучше делать это со стороны отверстия для крепления шнурка),
при открытии её и первом же взгляде внутрь становится очевидно, что:
-
Крепление для шнурка в корпусе очень убогое и хлипкое.
-
Никаких изолирующих и герметизирующих причиндалов нет вообще,
т.е. о пыле-влагозащищённости речи не идёт.
-
G03 и G03s отличаются только ёмкостью аккумуляторов
и, соответственно, размерами (G03s поменьше).
-
Железяки (G03 и G03s) собраны на одной и той же плате (PCBA) ZX303,
которая используется в нескольких других продуктах бренда Topin.
Таким образом при поисках инструкций, информации и решений проблем
можно использовать данные по этим родственным железкам
(и искать по ключевому слову "zx303").
-
В Сети была нарыта инструкция для аналогичной железки:
Tracker-GF21.docx.
-
-
Софт (прошивка)
Если прицепить трекер к компьютеру по USB,
то его видно как USB-storage совершенно убогого объёма.
Увы, там пусто.
Прошивку просто так не слить.
SMS-команды
Проверенные
Nota Bene
-
Далеко не все эти команды описаны в официальной документации
— убогой бумажке с мелким шрифтом из комплекта поставки трекера
(иные удалось найти в Internet среди информации по плате ZX303).
Все приведённые ниже команды опробованы на G03 и G03s — работают.
-
Обратите внимание, многие команды оканчиваются на
#.
Казалось бы, это разделитель команд,
и при наличии такого в синтаксисе было бы логично допускать возможность
слать несколько команд в одном SMS-сообщении
и, соответственно, ожидать последовательного ответа на них.
Хрен!
Эти уроды ни о чём подобном и не подумывали.
-
Никакой защиты от несанкционированного доступа к управлению трекером
sms-командами (заданием номера телефона, которму разрешено управлять,
или каким-нибудь паролем) НЕТ!
SMS-команды проверенные на G03 и G03s:
- 000#+71111111111#+72222222222#+73333333333#
-
Установка телефонных номеров срочного вызова:
т.н. SOS-номера и двух дополнительных.
В приведённом примере команды, соответственно,
+71111111111 — SOS-номер,
а +72222222222
и +73333333333 — дополнительные контакты.
Nota Bene.
Эта поделка в заданных этой командой номерах телефонов
съедает начальные плюсики, заменяя их на пробелы!
Работоспособность таких кастрированных номеров телефонов неизвестна.
- 1122
-
Сброс всех настроек на заводские (default-ные).
- 123#1/0#
-
Открыть/закрыть данные о местоположении автоматической загрузки.
123#0# — закрыть.
123#1# — открыть.
Что тут имели ввиду эти безмозглые долбоклюи? — Загадка природы.
И это не одно и то же, что команда
link
— та точно вырубает функции GPS и GPRS,
соответствующие этим подсистемам светодиоды просто гаснут,
но трекер продолжает отвечать на запрос местоположения
по команде 999,
хотя и выдаёт LBS-лажу — данные позиционирования
по сигналам базовых станций сети сотовой связи.
А тут, если выдать 123#0#,
индикаторы GPS и GPRS продолжают моргать,
но на команду 999
эта коряга откликаться перестаёт напрочь.
Причём, команда 123#1#,
казалось бы, долженствующая возвращать status quo,
не восстанавливает доступ к координатам через
999:
приходится ещё задвинуть
link#1#
— и только после этого трекер начинает отвечать
на запрос своего местоположения командой
999.
- 111
-
Запись звука на карточку памяти (TF card (micro-SD)), 10 минут.
- 222
-
Запись звука на карточку памяти (TF card (micro-SD)), 10 минут.
Плюс в дальнейшем автоматическое повторение действия по звуку голоса,
т.е. запись ещё 10-минут звука при его появлении.
- 333
-
Активируемый голосом обратный звонок (вызов по голосовому каналу)
на „привязанные“ номера
(список номеров срочного вызова, ранее установленный sms-командой
000).
- 444
-
Стирание всего содержимого памяти (TF-карточки (micro-SD)).
- 555
-
Отключение всех функций.
- 666
-
Вибро SMS-сигнализация:
отослать SMS на номер из списка срочного вызова
(„привязанные“ номера)
при появлении вибрации (срабатывании датчика сотрясения прибора).
- 777
-
Вибро сигнализация:
вызвать номер (звонок по голосовому каналу) из списка срочного вызова
при обнаружении тряски прибора (сигнала с сенсора вибрации).
- 888
-
Возпроизвести аудиозаписи из памяти (TF-карточки (micro-SD)) трекера.
Записи проигрываются одна за другой с небольшими паузами между ними
(якобы имеется возможность приостановить воспроизведение,
нажав „паузу“(?)).
Для работы требует наличия динамика (спикера) в данной версии прибора.
- 999
-
Запрос GPS-координат.
Как уже было сказано
выше,
этот уродец присылает ответ в виде какой-то дебильной ссылки
на какой-то имбецильный 08gps.com,
из которой просто так извлечь географические координаты не получается.
Если же пойти по этой ссылке (т.е. нужен Internet на телефоне),
то либо выдаётся уродская картинка с ублюдочной картой baidu
(это такой олигофренический картографический сервис от дядюшки Ляо),
либо идёт перенаправление на Goodle Maps
— это зависит от использованного в данном случае метода
определения географического положения:
GPS или LBS.
LBS-метод на этих дегенератских трекерах может врать
на 100 (сто!) с лишним
километров
(реально наблюдалось такое!),
а GPS антенна и чипсет убоги, работают еле-еле, через пень-колоду.
Ладно хоть у этой лажи по виду самой ссылки можно понять,
сработало ли у неё GPS-позиционирование,
или же она в этот раз прислала LBS-дерьмо.
Соответственно, если по присланной ссылке видно,
что координаты были определены не через GPS (а по LBS или WiFi),
нужно подождать и попробовать послать запрос снова.
Nota Bene.
Перед запросом координат у трекера сто́ит убедиться,
что GPRS и GPS в нём активированы
(link#1#),
и у него было достаточно времени,
чтобы „найти спутники“ и определить своё положение через GPS.
- 789
-
Загрузить 10-секундный отрывок аудиозаписи на сервер ftp.365gps.net.
- 6666#on/off#
-
Вкл/выкл вибросигнализации.
6666#on# — включить.
6666#off# — выключить.
- pwrst
-
Сброс пароля в default-ное значение (по умолчанию, заводское).
Что это за пароль, для чего и где он там используется?
— Очередная загадка от безмозглых рукожопов.
- sysrst
-
Удалённая перезагрузка устройства.
- imei
-
Запрос IMEI устройства.
- imei#123456789012345#
-
Установка IMEI (если родной заводской не устраивает).
- led#on/off#
-
Вкл/выкл светодиодной индикации.
led#on# — включить.
led#off# — выключить.
- link#1/0#
-
Вкл/выкл позиционирования и GPRS-канала данных.
link#0# — выключить.
link#1# — включить.
Nota Bene.
При отключении этой функции sms-команда запроса координат
999
продолжает работать и присылать в ответ свою ублюдочную ссылку,
но положение определяется БЕЗ GPS,
т.е. только по LBS, соответственно точность координат отвратительная,
ошибка определения местоположения может достигать
более сотни километров [sic!]
(собственнолично наблюдал такую лажу).
Поэтому перед запросом у трекера его местоположения
следует убедиться, что GPS и GPRS включены
(командой link#1#),
и у него было достаточно времени для „поиска спутников“
и определения своих координат через GPS.
- md#36#
-
Установка периода отсылки (по GPRS-каналу) данных на сервер.
Эта команда устанавливает временн́ой интервал в секундах,
значения: 10–60.
- time#66#
-
Установка периода отсылки (по GPRS-каналу) данных на сервер.
Эта команда устанавливает временн́ой интервал в минутах,
значения: 1–120.
- heartbeat#55#
-
Установка интервала периодической посылки „тика“
— маленького пакета данных для обозначения своего присутствия
(сигнализирования,
что устройство „живо“ и находится „на связи“).
- domain#365gps.net#8005#
-
Установка сервера (доменного имени или IP адреса и порта) для связи
— туда отсылаются данные отслеживания положения по GPRS-каналу.
Тут для примера использованы заводские предустановленные значения:
доменное имя 365gps.net
и номер TCP-порта 8005
(раньше, вроде бы, было 8002).
Если после установки нестандартных сервера-порта возникли проблемы,
можно вернуть значения в default-ные, используя пустые значения:
domain## или domain###.
- server#120.76.241.191#8005
-
Установка сервера данных
— команда аналогична команде
domain.
Так же эти установки сбрасываются к исходным значениям:
server## или server###.
- apn#internet.mts.ru#mts#mts#
-
Установка APN опсоса
(необходимо для работы GPRS).
Тут для примера использованы значения для МТС
(apn#имя_apn#login#пароль).
Если у опсоса APN не требует логина-пароля,
можно задать просто apn#имя_apn#.
- pwonoff#дни,часы,минуты#дни,часы,минуты
-
Установка автоматического включения-выключения трекера.
Первая тройка значений —
продолжительность периода работы от сего момента
(после истечения которого устройство выключится),
вторая тройка —
продолжительность срока пребывания в выключенном состоянии
(по истечению которого устройство автоматически включится).
Например,
pwonoff#0,0,36#0,6,0:
трекер проработает 36 минут, выключится
и после сам включится через 6 часов.
- monitor#+71234567890#
-
Установка номера телефона т.н. pickup-режима.
При звонке с этого номера телефона
трекер автоматически „снимет трубку“,
и звонящий будет иметь возможность прослушать звуковую обстановку.
Полезно для мониторинга подопечных (больных, стариков, детей).
Для отключения функции следует использовать пустой номер,
т.е. monitor##.
-
-
-
-
-
Возможно поддерживаемые
Непроверенные, возможно, неподдерживаемые команды,
имеющиеся в других аналогичных устройствах:
-
-
-
-
-
-
-
-
Как эта ерунда работает
С помощью программы netcat (nc -l 8005)
и SMS-команды server#
удалось выяснить совершеннейшую тупизну этой системы.
Итак, эта ерунда просто открывает TCP-коннекцию на указанный сервер:порт
(никаких защит, шифрований, аутентификаций и в помине нет)
и ляпает туда открытым текстом
и после некоторого ожидания коннекцию закрывает.
Подобные короткие сообщения шлются периодически
даже в отсутствие входящих команд по SMS.
Долгий поиск по плате ZX303 привёл на форумы,
из информации на которых удалось понять,
что эта мутота работает по т.н.
Zhongxun Locator Communication Protocol.
Похоже, для сообщений серверу это чудо-иудо
часто открывает не только отдельную TCP-коннекцию,
но и отдельный сеанс связи GPRS
(по крайней мере,
IP-адрес источника TCP-соединения клиент→сервер
довольно часто меняется — это видно в логах на сервере).
Соответственно, каждый такой сеанс тарфицируется опсосом отдельно,
а т.к. у большинства из них объёмы квантуются посеансово и покилобайтно,
то каждая такая строчечка отъедает минимум килобайт траффика в плане оплаты.
Причём этот засранец чуть ли не каждую минуту
(в отсутствие поступающих SMS-команд)
лупит т.н. heartbeat-ы (тики) для извещения, что оно, мол, живо и на связи.
Однако, это означает,
что эта ублюдина просто так жрёт, как минимум, 60KB в час
— соответственно, это выливается в более одного мегабайта в сутки
или около 45MB в месяц (в смысле учёта траффика и его оплаты)
на „холостом ходу“.
На самом деле,
зачастую ситуация оказывается ещё хуже благодаря жлобству опсосов.
Например,
мегавнофон на тарифе без абонентской платы
поставляет GPRS-трафик блоками по 100МБ,
которые активируются автоматически при появлении GPRS-активности клиента
и действуют в течение одних суток!
Т.е., даже если эта херотень реально потребит 1–2МБ в сутки,
платить вы будете как за 100МБ каждые сутки!
И такие вот уроды претендуют на то, чтобы их считали людьми?
Это же гниды, кровопийцы
— паразиты,
которых следует изводить под корень.
NB по поводу netcat:
socat
для данной цели подходит лучше:
socat -v -D -u TCP4-LISTEN:8005,reuseaddr,fork,so-timestamp OPEN:/tmp/in-tcp-8005.log,create,append
Или, чтобы информация доходила до их уродского сервера слежения:
socat -v -D -lf '/tmp/in-tcp-8005.log' 'TCP4-LISTEN:8005,range=31.173.80.0/21,reuseaddr,fork,so-timestamp' 'TCP4:www.365gps.net:8002,so-timestamp'
Вывод
В общем, если кратко: дерьмо.
Впрочем, как и все попадавшиеся мне GPS-трекеры.
Если же приходится это чудо-иудо использовать,
то, по большому счёту, возможны два варианта:
- Тупой:
-
-
ставим это ламерзкое приложение 365gps на смартфон;
-
находим опсоса с тарифом с самым дешёвым Internet-доступом
(учитывая наличие/отсутствие абонентской платы И стоимость трафика);
-
используем эту сиволапую поделку через приложение на смартфоне.
-
Всегда помним,
что без наличия Internet-доступа эта приблуда превращается в тыкву.
- Чуть поумнее:
-
-
находим опсоса с тарифом без абонентской платы и дешёвыми SMS-ками;
-
выключаем в настройках тарифа сотовой связи Internet-доступ,
чтобы эта хрень не могла жечь наши деньги,
пожирая трафик по GPRS-каналу
— это можно сделать, например,
через „личный кабинет“ на сайте опсоса
или засовывание SIM-карты в телефон и управление тарифом USSD-кодами,
или же даже через голосовое меню;
-
выключаем на трекере GPS и GPRS командой
link#0#
(синий и жёлтый индикаторы должны погаснуть);
-
при возникновении необходимости отыскать трекер
включаем обратно GPS и GPRS
(хотя нам GPRS в этом случае и не нужен)
командой
link#1#,
ждём некоторое разумное время,
чтобы трекер прочухался в плане GPS (нашёл спутники и т.п.),
и запрашиваем координаты командой
999;
-
смотрим внимательно на присланную в ответ ссылку,
убеждаемся (по виду ссылки),
что это не LBS-туфта и не WiFi-лажа,
запихиваем её в браузер и выходим по ней на карту с отметкой
— эта косоглазая чучундра имеет обыкновение выдавать
картинку с сервиса baidu, поэтому ищем там сноску на Google Maps;
-
смотрим на карту/снимки на Google Maps,
а также найденные там координаты метки
и находим трекер;
-
вырубаем взад GPS и GPRS, чтобы не жрали батарейку:
link#0#.
Кстати,
у мегавнофона выключить Internet-доступ в „личном кабинете“
(на вебсайте опсоса)
нельзя.
Единственный вариант — USSD-коды,
которые можно использовать только через телефон
(не очень старой модели,
иначе выданные меню откажутся воспринимать нажатия кнопок для выбора пунктов).
И чтобы вырубить Internet-доступ нужно набрать
*105*4*4#
и нажать „вызов“
— выдаст (голосовое?) меню в духе
„Для получения информации нажмите "1".
Для выключения Internet-доступа нажмите "2"…“ и т.д.
Обратно включается аналогично.
Tonop T