This project is dead, the method used to get access to the device has been fixed. I will leave this here simply for posterity.
Usage: java -jar bodybuggbypass.jar
The program writes all retrieved data to a file named: {timestamp of last data retrieval}.log
Once all data has been read, the device's memory is cleared and internal time as well as data retrieval times are set to the current date/time.
Building the parser requires golang. Steps to build are as follows:
go get github.com/bemasher/errhandler
go build parser.go
Usage: parser [INFILE] [[OUTFILE]]
Parameters:
INFILE
is required.OUTFILE
is optional and defaults to "data.json"
The input file is parsed and written as a json encoding to OUTFILE
. The basic structure of the file is a list of the following object:
Session {
Channel string
Epoch int64
Divisor uint32
Payload []arbitrary
}
Channel
represents the channel name of the session.Epoch
is the unix timestamp of the time the first data point was recorded.Divisor
is used for determining the time interval between records, 1 divisor = 1/32 sec.Payload
is a homogeneous list of any of the following types:uint16
int64
{Timestamp int64, I int, J int}
To avoid the same fate as the FreeTheBugg project, I am not packaging any of the jars this program depends on which belong to BodyMedia. Instead you'll need to download and place them in the directory bodybuggbypass_lib which must be in the same directory as the executable jar bodybuggbypass.jar:
- armband-applets-1.11.0-SNAPSHOT.jar
- common-applets-1.11.0-SNAPSHOT.jar
- common-shared-1.11.0-SNAPSHOT.jar
This project was developed using version 1.10.0 of the jar's. I have not had time to add compatibility with version 1.11.0 and will not work. Links to version 1.10.0 no longer work.
Sample dump and parsed data are found in sample.log
and sample.json
.