Case study
Even G2 protocol: reverse-engineering Even Realities G2 smart-glasses BLE traffic
Documents the Bluetooth Low Energy protocol between the Even app and Even Realities G2 smart glasses, worked out from captured traffic: GATT characteristic UUIDs, an 8-byte transport header with sequence, multi-packet and two-byte service-ID fields, a CRC-16/CCITT over the payload, and protobuf payloads with draft .proto definitions. A Python example built on bleak sends the seven-packet session handshake and drives the teleprompter service to show custom text. The README’s status table marks connection, handshake, teleprompter and calendar widget as working, notifications as partial, and Even AI and navigation as still under research.
- Targets
- Protocol
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- The reviewed main commit of 2026-01-03 is a documentation snapshot with no releases or tags. Only the teleprompter has example code, and docs/teleprompter.md is marked work in progress; the .proto header says field numbers and types are inferred from captured packets and may be incomplete or wrong, and several field meanings carry question marks. The README reports the calendar widget working but includes no calendar example or detailed format, and CONTRIBUTING.md labels Even AI “Cracked!” with its request format unclear while the README still lists it as research.
- Using the example needs Even G2 glasses and a host with BLE and Python with bleak 0.21+; it scans for device names containing G2 and connects to the left arm’s device, or the right one with --right. The README says the glasses use standard BLE with no special pairing, and the example’s handshake consists of fixed capability messages and the current time, with no keys. The repository contains no Even app or glasses firmware.
- CONTRIBUTING.md describes collecting Android Bluetooth HCI snoop logs while using features in the official app, and the repository commits four such raw logs from the author’s sessions; they are not limited to the glasses’ traffic. No tests or verification beyond the README’s status table are provided.
- No license file is present and GitHub detects none, so the documentation and code carry no reuse grant. The README calls this an unofficial community project for educational purposes, not affiliated with Even Realities, and credits the Even Realities community with the protocol research.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · i-soxi/even-g2-protocol · Revision b227335
- docs/ble-uuids.md GitHub · i-soxi/even-g2-protocol · Revision b227335
- docs/packet-structure.md GitHub · i-soxi/even-g2-protocol · Revision b227335
- docs/services.md GitHub · i-soxi/even-g2-protocol · Revision b227335
- docs/teleprompter.md GitHub · i-soxi/even-g2-protocol · Revision b227335
- proto/g2_protocol.proto GitHub · i-soxi/even-g2-protocol · Revision b227335
- examples/teleprompter/teleprompter.py GitHub · i-soxi/even-g2-protocol · Revision b227335
- examples/teleprompter/README.md GitHub · i-soxi/even-g2-protocol · Revision b227335
- CONTRIBUTING.md GitHub · i-soxi/even-g2-protocol · Revision b227335
More in Protocols
- fuji-cam-wifi-tool: reconstructing Fujifilm X-series Wi-Fi remote control · Case study
- Gymnasticon: bridging proprietary exercise-bike data to standard cycling sensors · Case study
- garmin-ble: a Python client for Garmin's GFDI watch protocol · Case study
- bosectl: reconstructing Bose’s BMAP headphone protocol · Case study
- lib-osmo-ble: DJI Osmo Pocket 3 Bluetooth LE protocol library · Case study
- DJI MIMO BLE artifacts: reconstructing the DJI Osmo control protocol · Case study