Required Hardware
- Whoop 4.0 device - The fitness tracker you want to reverse engineer
- Android phone - For BLE sniffing and testing (with Developer Options enabled)
- Computer with Bluetooth - Linux system with
hci0Bluetooth adapter recommended
Software Tools
Install Wireshark
Wireshark is essential for capturing and analyzing Bluetooth packets. You’ll need root/sudo access to capture BLE traffic.
Wireshark requires sudo privileges to capture Bluetooth traffic:
sudo wiresharkInstall Android Debug Bridge (ADB)
ADB allows you to extract Bluetooth HCI logs from your Android phone.Verify ADB is working:
Install BLE Scanner App
Install a BLE scanner on your Android phone to discover services and characteristics:
- BLE Scanner (recommended)
- Any other BLE scanner app that shows service UUIDs and characteristics
Install Python and BLE Libraries
You’ll need Python with BLE support for scripting and automation.
pygatt uses gatttool backend, while bleak is cross-platform. Both are useful for different scenarios.Optional Tools
CRC Analysis
For reverse engineering checksums and CRC algorithms:CRCBeagle helps identify CRC parameters when analyzing packet checksums.
APK Decompilation
To analyze the Whoop Android app:- JADX - Java decompiler for Android APKs
- APKTool - Resource extraction and analysis
Enable Android BLE Logging
To capture Bluetooth packets from your Android phone:Enable HCI Snoop Logging
Navigate to Settings > Developer Options > Bluetooth HCI Snoop Logging and enable it.
Verify Your Setup
Test that everything is working:If you encounter permission issues with Bluetooth tools, you may need to add your user to the
bluetooth group: