Reverse engineering: различия между версиями

Материал из Мой мопеда
Нет описания правки
Строка 38: Строка 38:


==== API первый уровень ====
==== API первый уровень ====
<blockquote>https://cn-cbu-gateway.ninebot.com/
"ApiList": [
    "/app-api/survey/v1/info",
    "/app-api/ad/v1/list",
    "/app-api/system-time/v1/get-time",
    "/app-api/settings/v1/set-pushid",
    "/app-api/settings/v1/set-deviceinfo",
    "/app-api/privacy-policy/v1/latest",
    "/app-api/app-version/v1/check",
    "/app-api/device/bind/is-binding",
    "/app-api/device/bind/my-vehicle",
    "/app-api/common-user/get-invited-list",
    "/app-api/common-user/user-accept",
    "/app-api/common-user/common-vehicle-info",
    "/app-api/common-user/user-refuse",
    "/sun-portal/api/circle/v1/tab-config/list-tab",
    "/sun-portal/api/circle/v1/tab-config/get-tab-config",
    "/sun-portal/api/circle/v1/tab-config/get-search-config",
    "/sun-portal/api/circle-label/v1/label-detail",
    "/sun-portal/api/circle-label/v1/search-label-list",
    "/app-api/road-book/participate/v1/status",
    "/app-api/offline-activity/v1/pre-check",
    "/app-api/offline-activity/user/v1/check",
    "/app-api/offline-activity/theme/v1/list",
    "/app-api/system-config/v1/detail",
    "/app-api/task-center/v1/finish",
    "/app-api/circle/v1/get-short-url",
    "/app-api/circle/v1/share-callback",
    "/app-api/circle/v1/circle/set-top",
    "/app-api/circle/v1/circle/cancel-top",
    "/app-api/circle/v1/circle/hide",
    "/app-api/circle/v1/circle/cancel-hide",
    "/app-api/circle/home/v1/list"
  ]</blockquote>

Версия от 16:40, 21 сентября 2026

Это специальный раздел, где будет собираться вся информация о возможностях и попытках создать что-то свое или изменить в софте Ninebot и "мозгах" скутеров.

Куда копать

  1. Любое неаккуратное изменение приложение или прошивки может привести к бану
  2. Самое простое решение, чтобы заработала телеметрия - перепаять esim и поставить слот для обычной сим. При этом нужно конфигурить модем АТ командами.
  3. Самое интересное решение - слушать CAN и сделать свою "коробочку" вместо модема ninebot
  4. Самое сложное решение - сделать свою прошивку
  5. Самое правильное решение - добиться официального импорта в РФ и РБ и получить готовое работающее приложение от производителя

Что надо узнать и что уже знаем

Полный разбор протокола BLE (лучшая на сегодня статья)

https://nootnooot.codeberg.page/segway-ninebot-ble/

Куда, как и каким образом модем отправляет данные телеметрии.

https://steeldust.ninebot.com https://steeldust-os.ninebot.com

Маппинг кана

·       0x100-0x1FF:电机控制相关 - МК

·       0x200-0x2FF:电池管理相关 - Батарея / BMS

·       0x300-0x3FF:车辆状态相关 - Общее состояние скута

·       0x400-0x4FF:诊断和维护 - Диагностика и ТО

Зависимость и привязка модулей (даш, модем, контроллер) по серийнику

Как вытищать код привязки BLE из Android

Где искать информацию

https://csdn.net

https://baidu.com :)

Всякая всячина не разобранная

API первый уровень

https://cn-cbu-gateway.ninebot.com/

"ApiList": [

    "/app-api/survey/v1/info",

    "/app-api/ad/v1/list",

    "/app-api/system-time/v1/get-time",

    "/app-api/settings/v1/set-pushid",

    "/app-api/settings/v1/set-deviceinfo",

    "/app-api/privacy-policy/v1/latest",

    "/app-api/app-version/v1/check",

    "/app-api/device/bind/is-binding",

    "/app-api/device/bind/my-vehicle",

    "/app-api/common-user/get-invited-list",

    "/app-api/common-user/user-accept",

    "/app-api/common-user/common-vehicle-info",

    "/app-api/common-user/user-refuse",

    "/sun-portal/api/circle/v1/tab-config/list-tab",

    "/sun-portal/api/circle/v1/tab-config/get-tab-config",

    "/sun-portal/api/circle/v1/tab-config/get-search-config",

    "/sun-portal/api/circle-label/v1/label-detail",

    "/sun-portal/api/circle-label/v1/search-label-list",

    "/app-api/road-book/participate/v1/status",

    "/app-api/offline-activity/v1/pre-check",

    "/app-api/offline-activity/user/v1/check",

    "/app-api/offline-activity/theme/v1/list",

    "/app-api/system-config/v1/detail",

    "/app-api/task-center/v1/finish",

    "/app-api/circle/v1/get-short-url",

    "/app-api/circle/v1/share-callback",

    "/app-api/circle/v1/circle/set-top",

    "/app-api/circle/v1/circle/cancel-top",

    "/app-api/circle/v1/circle/hide",

    "/app-api/circle/v1/circle/cancel-hide",

    "/app-api/circle/home/v1/list"

  ]