Ковыряясь с GPS-трекером Topin G03

Введение

Собственно производитель этой какашки: Shenzhen Zhongxun Chuangzhi Technology Co., Ltd. (даже сайт у них ламерский, насквозь ублюдочный). Вкратце, это GPS-трекер, который, по идее, должен отправлять информацию о своём положении по GSM-каналу (для работы требуется nano-SIM-карта). Есть слот для карточки памяти (TF card (micro-SD) ёмкостью до 32GB), на которую возможна запись звука со встроенного микрофона. Умеет подавать звуковые сигналы (довольно громкие). На самом деле, эти китайские жопорукие мудаки сотворили очередную лажу:

Подмеченное, возможно, полезное

Кое-что не (пр)описанное в приложенной инструкции:
Включение
Кнопка включения находится внутри, под крышечкой. Доступиться до неё можно, только сняв (отколупнув!) крышку. Индикаторы (светодиоды) также снаружи не видны.
Включается нажатием и недолгим (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. Очередной подарок от безмозглых ровшанов и джамшутов гонгконгского разлива.

Железо

Потроха

Посокольку для управления устройством требуется отколупывать крышечку (лучше делать это со стороны отверстия для крепления шнурка), при открытии её и первом же взгляде внутрь становится очевидно, что:

Софт (прошивка)

Если прицепить трекер к компьютеру по USB, то его видно как USB-storage совершенно убогого объёма. Увы, там пусто. Прошивку просто так не слить.

SMS-команды

Проверенные

Nota Bene

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-трекеры.

Если же приходится это чудо-иудо использовать, то, по большому счёту, возможны два варианта:

Тупой:
Чуть поумнее:

Кстати, у мегавнофона выключить Internet-доступ в „личном кабинете“ (на вебсайте опсоса) нельзя. Единственный вариант — USSD-коды, которые можно использовать только через телефон (не очень старой модели, иначе выданные меню откажутся воспринимать нажатия кнопок для выбора пунктов). И чтобы вырубить Internet-доступ нужно набрать *105*4*4# и нажать „вызов“ — выдаст (голосовое?) меню в духе „Для получения информации нажмите "1". Для выключения Internet-доступа нажмите "2"…“ и т.д. Обратно включается аналогично.


Tonop T