User Tools

Site Tools


howto:dumlrub

DUMLrub

This document describes DUMLrub and some associated components. Essentially, DUMLrub is a ruby implementation of pyduml. But, there are some other components in the tool kit that take this one step further. The instructions below assume you are running on OSX. Most of these instructions will readily translate to most Linux variants.

1. Toolchain

Install your toolchain as per the instructions here. You only need to do this once… but check the instructions to see if there are any new tools that you may need.

2. Get the DUMLrub magic

If this is your first time using DUMLrub, you will need to checkout the code from git.

cd ~/Documents/
git clone https://github.com/MAVProxyUser/DUMLrub.git
cd DUMLrub

If you have done this before and you want to make sure you have the latest code, you just need to sync to the most recent version

cd ~/Documents/DUMLrub
git pull

3. BackDatAssUp

This command will make a backup copy of all firmware on your connected equipment. During the process, it will:

  1. Login to your equipment via FTP
  2. Get a list of all files in /upgrade/upgrade/backup
  3. Get all of the files found
  4. AES Decrypt the files
  5. Do some XOR magic to undo the final DJI file tampering
  6. Stick it all in the backup directory
ruby BackDatAssUp.rb 

Once it is complete, you will find a firmware file dji_system.bin in the current directory.

4: RubaDubDUML

RubaDubDUML is designed to upload a firmware image to your device. It takes two parameters. One being the comm port to use, and the other being the firmware to upload.

ruby RubaDubDUML.rb /dev/tty.usbmodem1445 dji_system.bin

5: LogJammer

LogJammer is designed to pull upgrade log files from your aircraft and decrypt them automatically.

ruby LogJammer.rb

6: CherryPicker

CherryPicker allows you to pick individual firmware modules to allow you to “roll your own” firmware image.

It needs a module installed that is not in the toolchain page. This module is a little “demanding” to install. OSX commands listed below SHOULD work.

xcode-select --install
sudo gem install nokogiri  -v '1.6.7.2' -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.*.sdk/usr/include/libxml2 --use-system-libraries
ruby CherryPicker.rb

Contribute

  • Update toolchain page and bash script for install details for nokogiri
  • Video or other explanation of what comes next
howto/dumlrub.txt · Last modified: 2017/08/12 12:07 by czokie