Skip to content

Packet Anatomy

Protobuf

The messages exchanged between the Android app and the camera use Protocol Buffers, which is an open standard by Google. To decode the messages, you need the specific language description files (*.proto files) which can be extracted from the compiled binary file libOne.so from the official Insta360 app by decompiling it.

Sent Packets

Sync Packet

Offset Content Bytes Description
0 Packet Length 4 Overall length of the packet
4 0x06 0x00 0x00 3 Message Type: Sync Packet
7 syNceNdinS 10 Magic String

Keep Alive Packet

Offset Content Bytes Description
0 Packet Length 4 Overall length of the packet
4 0x05 0x00 0x00 3 Message Type: Keep Alive

Phone Commands

Offset Content Bytes Description
0 Packet Length 4 Overall length of the packet
4 0x04 0x00 0x00 3 Message Type: Phone Command
7 Message Code 2 PHONE_COMMAND_GET_OPTIONS, PHONE_COMMAND_TAKE_PICTURE, etc
9 0x02 1 Unknown
10 Sequence Number 3 Each command sent to the camera has an incrementing sequence number. The camera will respond with the same sequence number.
13 0x80 0x00 0x00 3 Unknown
16 Protobuf Message Variable Protobuf encoded message

Received Packets

Notifications or Response to Phone Commands

Offset Content Bytes Description
0 Packet Length 4 Overall length of the packet
4 0x04 0x00 0x00 3 Response Type: Phone Command
7 Response Code 2 200: OK, CAMERA_NOTIFICATION_CURRENT_CAPTURE_STATUS, etc
9 0x02 1 Unknown
10 Sequence Number 3 Same as the sequence number sent in the Phone command
13 0x80 1 Unknown
14 Unknown 2 Unknown
16 Protobuf Message Variable Protobuf encoded message