42 thoughts on “The new DJI Assistant 2 1.1.6 removes our ability to mod! Lets talk ..

  1. Made an update about an hour ago. Still a work in progress, but I think I'm figuring out what I can reenable.

    https://youtu.be/1WJwiqUyw6k

  2. When we go to your link it says it has been shut down, possibly by DJI "dickheads joining incompetence", so what now…. are we just screwed ? I have a non flying bird that needs esc calibration. Thanks a lot DJI….you could screw up a wet dream.

  3. Link no longer works.. ARGHHH I reinstaleld windoze and forgot to back up old assistant app please help
    chrisneibauer@gmail.com

  4. Why do these guys release crap versions of the tools in the first place , we paying so much as it is for these drones. I also came across installing and running the DJI Assist 2 program with the option to launch the program at the end of the installer , but through the installer.
    Now i cant not launch it in when i want to.
    Seems to be a windows 10 common issue, why is windows 10 blocking it, and why do we have to jump through all these hoops to get USB drivers installed and also even launch the .exe when the setup is done, this is ridiculous.

  5. I stopped updating firmware on my DJI drone long ago as well as PC software and Go4 app. It is flying the way I want it to and is not controlled by DJI anymore thanks to your videos. I am pretty sure if I buy another drone, it won't be from DJI. The lost what initially made me go for their products (DJI NAZA and the freedom to be yourself).

  6. FYI – Links in the Video Description no longer work but you can find that version of DJI Assistant 2 here https://www.drones4.life/dji-assistant-2-download/

  7. Hi,
    Not able to get access to the Mac version ?!!
    AccessDeniedAccess Denied222BF94C0C1AF34CPF3aKU39Z96t2DO22DhzCGJNQhnfrFLfeU+7UV2m48ni6FnDLwlf3Jz6udP9MbSQZSi6kRZGXM0=
    Have found it here : https://www.drones4.life/dji-assistant-2-download/

  8. I just find the way to activate developer mode (debug) DJI Assistant 2 (1.2.4) just download the "app.asar" and replace it with new one. [Just in case back up old one]
    https://goo.gl/bgAxqc

  9. https://dl.djicdn.com/downloads/dji_assistant/20170619/DJI+Assistant+2+1.1.2_2.exe is not working…shows XML error…im sad;

  10. Main.js file contents from DJI Assistent 2 V.1.2.4 for MAC. As you can see it is different, any way to mod this one?

    const electron = require('electron');
    const app = electron.app;
    const dialog = electron.dialog;
    const shell = electron.shell;
    const Menu = electron.Menu;

    const fs = require('fs');
    const path = require('path');
    const url = require('url');

    // Quit when all windows are closed and no other one is listening to this.
    app.on('window-all-closed', function() {
    if (app.listeners('window-all-closed').length == 1)
    app.quit();
    });

    // Parse command line options.
    var argv = process.argv.slice(1);
    var option = { file: null, help: null, version: null, webdriver: null, modules: [] };
    for (var i = 0; i < argv.length; i++) {
    if (argv[i] == '–version' || argv[i] == '-v') {
    option.version = true;
    break;
    } else if (argv[i].match(/^–app=/)) {
    option.file = argv[i].split('=')[1];
    break;
    } else if (argv[i] == '–help' || argv[i] == '-h') {
    option.help = true;
    break;
    } else if (argv[i] == '–test-type=webdriver') {
    option.webdriver = true;
    } else if (argv[i] == '–require' || argv[i] == '-r') {
    option.modules.push(argv[++i]);
    continue;
    } else if (argv[i][0] == '-') {
    continue;
    } else {
    option.file = argv[i];
    break;
    }
    }

    // Create default menu.
    app.once('ready', function() {
    if (Menu.getApplicationMenu())
    return;

    var template = [
    {
    label: 'Edit',
    submenu: [
    {
    label: 'Undo',
    accelerator: 'CmdOrCtrl+Z',
    role: 'undo'
    },
    {
    label: 'Redo',
    accelerator: 'Shift+CmdOrCtrl+Z',
    role: 'redo'
    },
    {
    type: 'separator'
    },
    {
    label: 'Cut',
    accelerator: 'CmdOrCtrl+X',
    role: 'cut'
    },
    {
    label: 'Copy',
    accelerator: 'CmdOrCtrl+C',
    role: 'copy'
    },
    {
    label: 'Paste',
    accelerator: 'CmdOrCtrl+V',
    role: 'paste'
    },
    {
    label: 'Select All',
    accelerator: 'CmdOrCtrl+A',
    role: 'selectall'
    },
    ]
    },
    {
    label: 'View',
    submenu: [
    {
    label: 'Reload',
    accelerator: 'CmdOrCtrl+R',
    click: function(item, focusedWindow) {
    if (focusedWindow)
    focusedWindow.reload();
    }
    },
    {
    label: 'Toggle Full Screen',
    accelerator: (function() {
    if (process.platform == 'darwin')
    return 'Ctrl+Command+F';
    else
    return 'F11';
    })(),
    click: function(item, focusedWindow) {
    if (focusedWindow)
    focusedWindow.setFullScreen(!focusedWindow.isFullScreen());
    }
    },
    {
    label: 'Toggle Developer Tools',
    accelerator: (function() {
    if (process.platform == 'darwin')
    return 'Alt+Command+I';
    else
    return 'Ctrl+Shift+I';
    })(),
    click: function(item, focusedWindow) {
    if (focusedWindow)
    focusedWindow.toggleDevTools();
    }
    },
    ]
    },
    {
    label: 'Window',
    role: 'window',
    submenu: [
    {
    label: 'Minimize',
    accelerator: 'CmdOrCtrl+M',
    role: 'minimize'
    },
    {
    label: 'Close',
    accelerator: 'CmdOrCtrl+W',
    role: 'close'
    },
    ]
    },
    {
    label: 'Help',
    role: 'help',
    submenu: [
    {
    label: 'Learn More',
    click: function() {
    shell.openExternal('http://electron.atom.io');
    }
    },
    {
    label: 'Documentation',
    click: function() {
    shell.openExternal(
    `https://github.com/atom/electron/tree/v${process.versions.electron}/docs#readme`
    );
    }
    },
    {
    label: 'Community Discussions',
    click: function() {
    shell.openExternal('https://discuss.atom.io/c/electron');
    }
    },
    {
    label: 'Search Issues',
    click: function() {
    shell.openExternal('https://github.com/atom/electron/issues');
    }
    }
    ]
    },
    ];

    if (process.platform == 'darwin') {
    template.unshift({
    label: 'Electron',
    submenu: [
    {
    label: 'About Electron',
    role: 'about'
    },
    {
    type: 'separator'
    },
    {
    label: 'Services',
    role: 'services',
    submenu: []
    },
    {
    type: 'separator'
    },
    {
    label: 'Hide Electron',
    accelerator: 'Command+H',
    role: 'hide'
    },
    {
    label: 'Hide Others',
    accelerator: 'Command+Alt+H',
    role: 'hideothers'
    },
    {
    label: 'Show All',
    role: 'unhide'
    },
    {
    type: 'separator'
    },
    {
    label: 'Quit',
    accelerator: 'Command+Q',
    click: function() { app.quit(); }
    },
    ]
    });
    template[3].submenu.push(
    {
    type: 'separator'
    },
    {
    label: 'Bring All to Front',
    role: 'front'
    }
    );
    }

    var menu = Menu.buildFromTemplate(template);
    Menu.setApplicationMenu(menu);
    });

    if (option.modules.length > 0) {
    require('module')._preloadModules(option.modules);
    }

    function loadApplicationPackage(packagePath) {
    try {
    // Override app name and version.
    packagePath = path.resolve(packagePath);
    var packageJsonPath = path.join(packagePath, 'package.json');
    if (fs.existsSync(packageJsonPath)) {
    var packageJson = JSON.parse(fs.readFileSync(packageJsonPath));
    if (packageJson.version)
    app.setVersion(packageJson.version);
    if (packageJson.productName)
    app.setName(packageJson.productName);
    else if (packageJson.name)
    app.setName(packageJson.name);
    app.setPath('userData', path.join(app.getPath('appData'), app.getName()));
    app.setPath('userCache', path.join(app.getPath('cache'), app.getName()));
    app.setAppPath(packagePath);
    }

    // Run the app.
    require('module')._load(packagePath, module, true);
    } catch(e) {
    if (e.code == 'MODULE_NOT_FOUND') {
    app.focus();
    dialog.showErrorBox(
    'Error opening app',
    'The app provided is not a valid Electron app, please read the docs on how to write one:n' +
    `https://github.com/atom/electron/tree/v${process.versions.electron}/docsnn${e.toString()}`
    );
    process.exit(1);
    } else {
    console.error('App threw an error when running', e);
    throw e;
    }
    }
    }

    function loadApplicationByUrl(appUrl) {
    require('./default_app').load(appUrl);
    }

    // Start the specified app if there is one specified in command line, otherwise
    // start the default app.
    if (option.file && !option.webdriver) {
    var file = option.file;
    var protocol = url.parse(file).protocol;
    var extension = path.extname(file);
    if (protocol === 'http:' || protocol === 'https:' || protocol === 'file:') {
    loadApplicationByUrl(file);
    } else if (extension === '.html' || extension === '.htm') {
    loadApplicationByUrl('file://' + path.resolve(file));
    } else {
    loadApplicationPackage(file);
    }
    } else if (option.version) {
    console.log('v' + process.versions.electron);
    process.exit(0);
    } else if (option.help) {
    var helpMessage = "Electron v" + process.versions.electron + " – Cross Platform Desktop Application Shellnn";
    helpMessage += "Usage: electron [options] [path]nn";
    helpMessage += "A path to an Electron application may be specified.n";
    helpMessage += "The path must be one of the following:nn";
    helpMessage += " – index.js file.n";
    helpMessage += " – Folder containing a package.json file.n";
    helpMessage += " – Folder containing an index.js file.n";
    helpMessage += " – .html/.htm file.n";
    helpMessage += " – http://, https://, or file:// URL.n";
    helpMessage += "nOptions:n";
    helpMessage += " -r, –require Module to preload (option can be repeated)n";
    helpMessage += " -h, –help Print this usage message.n";
    helpMessage += " -v, –version Print the version.";
    console.log(helpMessage);
    process.exit(0);
    } else {
    loadApplicationByUrl('file://' + __dirname + '/index.html');
    }

  11. There's an easy way to workaround it. The .asar file is just an archive containing some app files. You can simply install the "asar" nodejs package, exatract the .asar file into specific directory, edit the necessary files and compress them back into app.asar. To bypass the "auto close" behaviour, you need to simply open build/utils.js in some editor and search for "banDevTools:function", then return true at the very beginning of the function to bypass the rest code in the function body. Unfortunately, even with dev tools enabled and debug=true, debug_enabled=true and factory_enabled=true – the hidden menus are not shown for some reason. Probably there is something else that needs to be changed.

  12. in the mac version you can view the .pkg file contents and you can browse to the main.js file (/contents/resources/default_app). Sadly however there isn't anywhere that you can toggle the console.
    there is a section of the code where you can toggle the dev console:

    label: 'Toggle Developer Tools',
    accelerator: (function() {
    if (process.platform == 'darwin')
    return 'Alt+Command+I';
    else
    return 'Ctrl+Shift+I';
    })(),
    click: function(item, focusedWindow) {
    if (focusedWindow)
    focusedWindow.toggleDevTools();

    however I'm unable to get it to fire up on the MAC; perhaps you guys on a windoze pc can give it a try

  13. Wou I was wondering how to fix the problem with new version until I got crazy and I decided to look for help at YouTube and I have found you! Great! your videos are great and as I can se we have the same problem… do you know if there is a fix for that? or do we have to rollback to a previus version?…
    To get the old one I tryed your link but there is a problem on it, do you know where can I find the 1.1.2 version?
    Thanks! and keep on making this comunity great!

  14. not working this ? https://dl.djicdn.com/downloads/dji_assistant/20170619/DJI+Assistant+2+1.1.2_2.exe

  15. Hope this will help
    thanks mate for sharing and giving me a lead… I'm a newbie into DJI ASS(istant) , never installed yet, and trying by all means to recover ancient firmwares so I can have control over my mavic rather than feeling limited by DJI's sheriffs .

  16. I have the 2.0 version for Mac, and I can still get to the main.js but the code is different from what you show, there is no // to remove next to the devtool code. im not a programer so I don't know what to modify….any info would be great thanks, great videos

  17. Hi great video. I wanted to know I'm on 01.03.1000 firmware do I need to downgrade or is this firmware fine to change parameters?
    Tnx

  18. Hello. Use DJI Assistant 2. Ver. FW Mavic 01.03.0800. I have correctly entered all the parameters suggested by you except: g_config_airport_limit_cgf_cfg_disable_airport_fly_limit because I do not have that line command. and g.config_cfg_max_speed because even bringing it to 20 when I restart Mavic, I find it again at 10. How can I do? There is a command to make the front sensor brakes act first (Mavic always stops at the edge of the obstacle, it should stop first). Thank you many and congratulations

  19. Will the process of modification still work with assistant 1.1.2 after the recent dji go app update + the new inspire 2 update? I posted this comment on another video of yours as well cause I'm eager for an answer. I'm worried that if I try to use assistant 1.1.2 that it will force me to update it to 1.1.6.

  20. I installed the NLD client with hopes of being able to change some of the locked settings on my bird. It didn't work right and I just don't have the time to commit to fiddling around for several more hours. I tried to uninstall the NLD client from my pc but the folders will not delete. I can clearly see the folders in windows explorer but when click on delete is has an error " File not found" or something similar. How do i completely remove NLD from my PC???
    Thanks

  21. Unable to edit the MAIN.js file now, try to with note pad, wont allow it to be saved once i delete the 2 slashes. keeps saying something about the owner, cant remember, but im not getting the administrator chance to save it now whatever is going on. download v2.1.12 from your link, no joy, damn it lol.

  22. DJI is up to some sneaky stuff alright, so much so that the US military has ordered ALL DJI products to be scrapped, including ALL DJI software.

  23. would be nice if we could just write a new alternative to the assistant 2 program, one that would give full modability to parameters no matter which FW version you were running.

  24. So I figured out a way to do it…

    V1.1.6 with dev tools available

    You have to change two files slightly… They have added a piece of code which actually closes the dev tools again, even after you have modified the .asar file to open it. Sneaky buggers.

    I'll make a little video if I get a chance 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *