[DJI-log-discuss] DJI TXT file format

Brett Spell tbspell at verizon.net
Sat Jan 18 15:18:01 PST 2020


Ross,

 

I've been looking at these files and had some success with figuring out the
files using what you posted as a starting point. There's too much for me to
provide in one email, so I'll spread the information out over time and start
with some basic stuff.

 

For example, the logs generated by the Fly app for the Mavic Mini are
essentially the same as what's generated by GO, with an important
difference: the order of the "records" and "details" areas are reversed as
follows:

 

Header

Details

Records

 

This is also reflected in those first bytes in the header, which still
(generally) points past the end of the "records" area as it does in GO, so
it might be better to describe it as "the end of the records area" instead
of "the size of the header and the records area combined".

 

Also, "The next 4 bytes of the file [that] appear to be a version number"
aren't really a version number (I believe this information came from the
DROP paper
<https://www.sciencedirect.com/science/article/pii/S1742287617302001> ). The
first two bytes generally are the length of the "details" area (typically
400 bytes, hence the typical value of 190 hexadecimal / little endian 9001).
I'm not sure about the fourth byte (it's typically zero) but the third byte
does appear to be some sort of enumeration representing the application
generation or file format, and I've listed below what I think some mappings
may be. Note that - at least so far - the Fly app has one code that's used
on both (Android and iOS) operating systems, but some of the earlier
generations of the GO application seem to have separate codes per OS. That
may be because it's actually an indicator of the file format and the OS
mapping is incidental, but in any case here are some codes I've seen and a
guess of what each one represents in reverse order, with the lower values
apparently corresponding to earlier versions of the GO app and / or their
associated file formats:

 

12: Fly

11: GO 4 Android (circa 4.2.8?)

10: GO 4 Android (ca. 4.2.0?)

9: GO 4 Android (ca. 4.0?)

8: GO 4 iOS

7: GO Android

6: GO

4: GO Android

3: GO iOS

 

As you mentioned on your website, those first 12 bytes of the header are the
only ones present in older files. As best I can tell, the header was
expanded to 100 bytes at the same time that DJI started "scrambling" the
record payloads, but the basic content and structure of those earlier
records is the same as what's still generated by GO (and now Fly). I believe
the type 7 file format is the earliest one in which the payloads are
scrambled, but it looks like there are at least a couple of people signed up
for this mailing list that I'm sure know more about this than I do, so maybe
one of them will chime in and confirm or dispute what I've written.

 

Brett

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ns.live555.com/pipermail/dji-log-discuss/attachments/20200118/12395c1a/attachment.htm>


More information about the DJI-log-discuss mailing list