Welcome to InspirePilots.com

Join the leading DJI Inspire community for free!

DJI obliged to provide firmware source code?

Discussion in 'Inspire 1 Discussion' started by Machoman, Nov 3, 2015.

  1. Machoman

    Joined:
    Jul 22, 2015
    Messages:
    316
    Likes Received:
    69
    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.
     
    Chnjab likes this.
  2. JayBurd

    Joined:
    Sep 1, 2015
    Messages:
    164
    Likes Received:
    41
    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.
     
    Chnjab likes this.
  3. Machoman

    Joined:
    Jul 22, 2015
    Messages:
    316
    Likes Received:
    69
    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: ?
     
  4. JayBurd

    Joined:
    Sep 1, 2015
    Messages:
    164
    Likes Received:
    41
    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.
     
  5. Machoman

    Joined:
    Jul 22, 2015
    Messages:
    316
    Likes Received:
    69
    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.
     
  6. Kilrah

    Joined:
    Feb 3, 2015
    Messages:
    1,879
    Likes Received:
    728
    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.
     
    The Editor likes this.
  7. The Editor

    The Editor Moderator
    Staff Member

    Joined:
    Aug 7, 2013
    Messages:
    6,708
    Likes Received:
    3,870
    Absolutely spot on and DJI most certainly will not nor are they under any sort of obligation to make their code public.
     
  8. purezerg

    Joined:
    Mar 26, 2015
    Messages:
    77
    Likes Received:
    13
    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.