Reverse engineering

Материал из Мой мопеда
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Это специальный раздел, где будет собираться вся информация о возможностях и попытках создать что-то свое или изменить в софте 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"

  ]

Сервера, endpoints

"server": {

    "inland": {

      "php": {

        "dev": "https://api-jhcx-v6-dev-bj.ninebot.com",

        "test": "https://api-jhcx-v6-dev-bj.ninebot.com",

        "release": "https://api-jhcx-v6-release-bj.ninebot.com",

        "migrate_cloud": "https://api6-bj-pre-test.ninebot.com",

        "production": "https://api-jhcx-v6-bj.ninebot.com"

      },

      "java1": {

        "dev": "https://cn-dev-oms-gateway.segwaydiscovery.com",

        "test": "https://cn-test3-oms-gateway.segwaydiscovery.com",

        "release": "https://cn-grey-oms-gateway.segwaydiscovery.com",

        "migrate_cloud": "https://cn-cbu-nc-gateway.ninebot.com",

        "production": "https://cnnx-omsgw.ninebot.com"

      },

      "java2": {

        "dev": "https://cn-test3-oms-gateway.segwaydiscovery.com",

        "test": "https://cn-test3-oms-gateway.segwaydiscovery.com",

        "release": "https://cn-test3-oms-gateway.segwaydiscovery.com",

        "migrate_cloud": "https://cn-cbu-nc-gateway.ninebot.com",

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

      },

      "steeldust": {

        "dev": "https://steeldust-test.ninebot.com",

        "test": "https://steeldust-test.ninebot.com",

        "release": "https://steeldust-release.ninebot.com",

        "migrate_cloud": "https://steeldust-dev.ninebot.com",

        "production": "https://steeldust.ninebot.com"

      },

      "ebike": {

        "dev": "https://ebike-test.ninebot.com",

        "test": "https://ebike-test.ninebot.com",

        "release": "https://ebike-release.ninebot.com",

        "migrate_cloud": "https://ebike-dev.ninebot.com",

        "production": "https://ebike.ninebot.com"

      },

      "assisted_ebike": {

        "dev": "https://cn-test3-oms-gateway.segwaydiscovery.com",

        "test": "https://cn-test3-oms-gateway.segwaydiscovery.com",

        "release": "https://cn-test3-oms-gateway.segwaydiscovery.com",

        "migrate_cloud": "https://cn-cbu-nc-gateway.ninebot.com",

        "production": "https://cnnx-omsgw.ninebot.com"

      },

      "web_url_v1": {

        "dev": "https://api5-h5-app-test-bj.ninebot.com",

        "test": "https://api5-h5-app-test-bj.ninebot.com",

        "release": "https://api5-h5-app-test-bj.ninebot.com",

        "migrate_cloud": "https://api5-h5-app-bj-nc.ninebot.com",

        "production": "https://api5-h5-app-bj.ninebot.com"

      },

      "web_url_v2": {

        "dev": "https://h5-test-bj.ninebot.com",

        "test": "https://h5-test-bj.ninebot.com",

        "release": "https://h5-test-bj.ninebot.com",

        "migrate_cloud": "https://h5-bj-nc.ninebot.com",

        "production": "https://h5-bj.ninebot.com"

      },

      "web_url_service": {

        "dev": "https://test-mobile-service.ninebot.com",

        "test": "https://test-mobile-service.ninebot.com",

        "release": "https://test-mobile-service.ninebot.com",

        "migrate_cloud": "https://support-m-nc.ninebot.com",

        "production": "https://support-m.ninebot.com"

      }

    },

    "overseas": {

      "php": {

        "dev": "https://api6-sg-test.ninebot.com",

        "test": "https://api6-sg-test.ninebot.com",

        "release": "https://api6-sg-release.ninebot.com",

        "migrate_cloud": "https://api6-sg-test.ninebot.com",

        "production": "https://api-jhcx-v6-%@.ninebot.com"

      },

      "java1": {

        "dev": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "test": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "release": "https://sg-grey-oms-gateway.segwaydiscovery.com",

        "migrate_cloud": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "production": "https://eu-oms-gateway.ninebot.com"

      },

      "java2": {

        "dev": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "test": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "release": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "migrate_cloud": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "production": "https://%@-oms-gateway.ninebot.com"

      },

      "steeldust": {

        "dev": "https://os-st-test.ninebot.com",

        "test": "https://os-st-test.ninebot.com",

        "release": "http://os-st-release.ninebot.com",

        "migrate_cloud": "https://os-st-test.ninebot.com",

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

      },

      "ebike": {

        "dev": "https://os-eb-test.ninebot.com",

        "test": "https://os-eb-test.ninebot.com",

        "release": "http://os-eb-release.ninebot.com",

        "migrate_cloud": "https://os-eb-test.ninebot.com",

        "production": "https://ebike-os.ninebot.com"

      },

      "assisted_ebike": {

        "dev": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "test": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "release": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "migrate_cloud": "https://sg-test1-oms-gateway.segwaydiscovery.com",

        "production": "https://eu-oms-gateway.ninebot.com"

      },

      "web_url_v1": {

        "dev": "https://api5-h5-app-test-sg.ninebot.com",

        "test": "https://api5-h5-app-test-sg.ninebot.com",

        "release": "https://api5-h5-app-test-sg.ninebot.com",

        "migrate_cloud": "https://api5-h5-app-test-sg.ninebot.com",

        "production": "https://api5-h5-app-%@.ninebot.com"

      },

      "web_url_v2": {

        "dev": "https://h5-test-sg.ninebot.com",

        "test": "https://h5-test-sg.ninebot.com",

        "release": "https://h5-test-sg.ninebot.com",

        "migrate_cloud": "https://h5-test-sg.ninebot.com",

        "production": "https://h5-%@.ninebot.com"

      },

      "web_url_service": {

        "dev": "https://test-mobile-service-os.ninebot.com",

        "test": "https://test-mobile-service-os.ninebot.com",

        "release": "https://test-mobile-service-os.ninebot.com",

        "migrate_cloud": "https://test-mobile-service-os.ninebot.com",

        "production": "https://service-m.segway.com"

      }

    }

  }