Welcome Inspire Pilots!
Join our free DJI Inspire community today!
Sign up

DJI obliged to provide firmware source code?

Joined
Jul 22, 2015
Messages
316
Reaction score
70
Age
53
Comparing travis...master · probonopd/phantom-licensecheck · GitHub


-Rumors are that OpenWrt is used in the Phantom firmware. If so, parts of the Phantom firmware would have to be provided by DJI in soure form. This project is to check the Phantom firmware for any open source code that might have such requirements.

+This shows that Linux and other GPL code is used in the Phantom firmware. Hence, parts of the Phantom firmware would have to be provided by DJI in soure form, however I could not locate the source code downloads on the DJI site. This project is to check the Phantom firmware for any open source code that might have such requirements.

Results

+See [findings.txt](https://github.com/probonopd/phantom-licensecheck/releases/download/travis/findings.txt) for a dump of strings found in relevant parts of the firmware. This shows that Linux and other GPL code is used in the Phantom firmware.

+As we can see below, the firmware contains references to Ambarella. According to [this](ttp://www.investopedia.com/stock-analysis/061115/4-things-ambarella-management-wants-you-know-amba.aspx) article, the Ambarella CEO noted that DJI "brought to market its Phantom 3 drones, both powered by Ambarella's A9 camera systems-on-chip". This fits to the fact that strings like `autobuild_A9_Ambalink_AR6004/ambalink_sdk/host/usr/arm-buildroot-linux-gnueabi` are found in the Phantom 3 Advanced firmware. According to the [Product Brief](http://www.ambarella.com/uploads/docs/A9 Product Brief.pdf), the Ambarella A9 has two ARM® CORTEX-A9 and one ARM® 11 cores and can do 4K.

+As we can also see below, the firmware contains references to ThreadX, a proprietary Real Time Operating System (RTOS). Most interestingly, a dissection of the firmware shows many signs of Linux and Linux kernel drivers, which suggests that GPL code is most likely included in the Phantom 3 firmware.
 
  • Like
Reactions: Chnjab
Not sure I follow the points you are trying to make referencing Ambarella and ThreadX. But if your post is primarily about GPL I think you will need more specific details -- which string in the dump are evidence of using GPL'ed code and proof that DJI did not acquire a commercial license for the code in question already.
 
  • Like
Reactions: Chnjab
First it would help to identify the firmware. There is no "one firmware" actually its 20-25 firmwares in one file. Most of them it makes no sense to change but some does.

m0100: camera
m0101: camera
m0305: ?
m0306: main controller
m0400: gimbal
m0500: ?
m0800: lightbridge 720p
m0801: lightbridge 1080p
m0900: image transmitter
m1100: battery
m1200: ESC1
m1201: ESC2
m1202: ESC3
m1203: ESC4
m1300: ?
m1400: remote controller
m1500: ?
m1600: ?
m1700: ? optical sensor or sonar
m1701: ? optical sensor or sonar
m1900: ?
m2000: ?
 
I have a thought. DJI provides an SDK for the bird. Would analyzing the SDK give us any additional clue on how software interfaces with firmware and thereafter allow us to get a better idea what modules in each firmware does what.
 
I have a thought. DJI provides an SDK for the bird. Would analyzing the SDK give us any additional clue on how software interfaces with firmware and thereafter allow us to get a better idea what modules in each firmware does what.

Not directly. There is no clue about this.

But probably a programmer could lift restrictions if he removes the communications regarding this between plane and Rc out of the SDK files. However I am not a programmer and I dont know what are the exact functions to be removed. 3rd party app devs claim its not possible because future limits will be firmware restricted I just wonder how they could work if you cut the communication about this with the RC.

We would need to hire a cheap programmer in India or Pakistan to make a app without limits to find out if its possible.
 
DJI provides an SDK for the bird. Would analyzing the SDK give us any additional clue on how software interfaces with firmware and thereafter allow us to get a better idea what modules in each firmware does what.
No, the purpose of that is the exact opposite, the SDK provides your app with a doSomething() method that you can call but with no way to know what is actually done behind by the various layers to make it happen.

Regarding open source what they would have to disclose is the foundation on which things run (and is probably already public), but none of the actual applications that run on it and where all the application specific stuff is.
Just like Sony provides the sources of the Linux kernel that runs of their cameras as required... but supposing you had the tools to build and transfer the binary onto the camera, which is unlikely as proprietary tools are likely involved it would not make it a camera, but just a dumb computer.
What makes it a camera is well closed proprietary app and relies on specifically developed hardware you won't find any documentation to make use of.
 
  • Like
Reactions: The Editor
No, the purpose of that is the exact opposite, the SDK provides your app with a doSomething() method that you can call but with no way to know what is actually done behind by the various layers to make it happen.

Regarding open source what they would have to disclose is the foundation on which things run (and is probably already public), but none of the actual applications that run on it and where all the application specific stuff is.
Just like Sony provides the sources of the Linux kernel that runs of their cameras as required... but supposing you had the tools to build and transfer the binary onto the camera, which is unlikely as proprietary tools are likely involved it would not make it a camera, but just a dumb computer.
What makes it a camera is well closed proprietary app and relies on specifically developed hardware you won't find any documentation to make use of.
Absolutely spot on and DJI most certainly will not nor are they under any sort of obligation to make their code public.
 
you have to consider that DJI is a china company. if it's a US company, I'm sure DJI would have to release the source code to the china to ensure further business operations in china.
 

Members online

No members online now.

Forum statistics

Threads
22,277
Messages
210,655
Members
34,326
Latest member
BobbyeriGop