Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mjarkk/decode-vanmoof-blt-packages
A helper program for inspecting bluetooth sniff files when communicating with vanmoof bikes
https://github.com/mjarkk/decode-vanmoof-blt-packages
Last synced: about 1 month ago
JSON representation
A helper program for inspecting bluetooth sniff files when communicating with vanmoof bikes
- Host: GitHub
- URL: https://github.com/mjarkk/decode-vanmoof-blt-packages
- Owner: mjarkk
- License: mit
- Created: 2022-10-09T10:36:03.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-12-25T10:18:10.000Z (almost 2 years ago)
- Last Synced: 2024-06-20T11:12:26.369Z (5 months ago)
- Language: Go
- Homepage:
- Size: 535 KB
- Stars: 13
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Decode Bluetooth sniffs from and to a VanMoof bike
**NOT** an offical VanMoof service/product!
![Preview](/preview.png?raw=true "Preview")
### Usage
```sh
# Make sure you have installed golang and have setup your $GOPATH correctly
go install github.com/mjarkk/decode-vanmoof-blt-packagesdecode-vanmoof-blt-packages \
-encryptionKey "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
-bikeId "34 56 78 9a bc de" \
-file "bt_snoop.log"
```### Arguments
#### `-file` _Required_
This is the bluetooth sniff file you want to inspect.
This file should be in the BTSnoop file format.
#### `-encryptionKey` _Recommended_
Tries to decrypt the bluetooth packet values. Without this argument you can see wich characteristics that are send/recived but cannot really see the values unless you want to decrypt them yourself.
This should be the encryption key of your bike
This value can be obtained from the vanmoof api.
#### `-bikeId`
This property can be set if multiple vanmoof bikes are in your bluetooth sniff.
This should be the mac address of your bike, the mac address can be seperated with ` ` or `:`
### `-hideChallenges`
Hide challenge requests and hide the challenge / nonce inside the write requests
### `-showOnlyFirstPartOfUuid`
Only shows the first part of UUIDs as the remainder of the uuid always seems to stays the same.
### Obtain bikeId and encryptionKey
1. Login to [mooovy.app](https://mooovy.app/) using chrome
2. Open the developer tools (F12)
3. Go to the Application tab
4. Go to the Local Storage tab and select Select the `https://mooovy.app` entry
5. Click on `vm-bike-credentials`
6. Copy the following values:
- `encryptionKey` = `encryptionKey`
- `mac` = `bikeId`![HowTo](/howto.png?raw=true "Chrome browser how to What to look for in chrome")
### How to sniff bluetooth?
#### Host: Macos, Client: Macos & IOS
1. Download [XCode Additional Tools](https://developer.apple.com/xcode/resources/)
2. Open `Hardware > PacketLogger`
3. Start logging (Make sure your bike was not connected to your **device** at the moment you started logging!)
4. In the menu bar select `File > Export > BTSnoop..` or ⇧ Shift + ⌘ Command + E