Welcome to PhantomPilots.com

Sign up for a weekly email of the latest drone news & information

Unofficial software development/reverse-engineering?

Discussion in 'Phantom 2 Vision + Discussion' started by SmoothSwede, Sep 4, 2014.

  1. SmoothSwede

    Joined:
    Aug 23, 2014
    Messages:
    6
    Likes Received:
    0
    Location:
    Sweden
    Hello!

    Is there anyone who have attempted to reverse-engineer the firmwares, and also the Ground-Station softwares, to get some information useful for custom
    application development? Since there is no official SDK, I am very interested in all notes and documents you coders out there might have on the subject.

    Please share :). PM me if you have some information.

    I know for cheaper drones like the AR.Parrot, there were some quite fun possibilites for custom-apps aiming specific puproses.

    Any IDA-database, or just scribbled notes would be appreciated! Actually all/any lowlevel-information you people have on the P2V+, would be appreciated if you shared. :)

    Sinc, SmoothS
     
  2. ilovecoffee

    Joined:
    Aug 13, 2014
    Messages:
    441
    Likes Received:
    17
    I have decompiled all the java source code for the DJI Vision App for Android.

    I'm currently working on removing the waypoint restriction and 500m distance limit. I've figured it out but I am running into re-compiling errors I just have to sort out.
     
  3. Morgon

    Joined:
    Aug 15, 2014
    Messages:
    453
    Likes Received:
    64
    Location:
    Glen Burnie, MD
    A shame that dex2jar had trouble with VisionCmd and VisionGsCmd (dji.midware.tcp.vision).
    Those are likely the most important classes in terms of determining the actual data being communicated.

    ilovecoffee, if you get a chance, perhaps you could try Procyon as well? When I was doing decompiling for another package a while ago, I had some luck using this to get some of the trickier sections of code.
     
  4. SmoothSwede

    Joined:
    Aug 23, 2014
    Messages:
    6
    Likes Received:
    0
    Location:
    Sweden
    Awesome work guys! Will look into your stuff asap ilovecoffee :). Am an aspiring Java-coder myself, mostly been coding x86 assembly for many many years. But time to go up to HLL's. So Java is my first OO language, and messing with drones is a lovely combination of my favorite hobbies. :) (also messing around with my AR.Parrot Drone 2.0)

    Keep up the good work! I hope to see more contributions, maybe we can create a dedicated page or somekind of github for Phantom-projects. :)

    I will upload and share my findings as soon as they are decently useful and cleaned up. :)

    Sinc. SmoothS
     
  5. happydays

    Joined:
    Jul 5, 2013
    Messages:
    1,845
    Likes Received:
    655
    Location:
    Warrenpoint, Ireland
    Blimey, what language are you lot speaking in?

    :D :D :D
     
  6. slothead

    Joined:
    Jun 14, 2014
    Messages:
    485
    Likes Received:
    2
    Location:
    Frederick, MD, USA
    I think this subject deserves a sub-forum of its own (and maybe it already exists - I don't know), and although I am not a S/W freak, I am very interested in this also (along with the detailed schematics of the DJI parts). So I will certainly stay tuned.

    Having said all that, will DJI not resist all this research and potentially (if they monitor this forum) request it not be promulgated/propagated/popularized (not that they have any rights of this sort here - I don't know)?
     
  7. ilovecoffee

    Joined:
    Aug 13, 2014
    Messages:
    441
    Likes Received:
    17
    Depending on what is being done I don't imagine they'd care. In any case, I'm a total n00b when it comes to programming, but I'm clever enough...although not clever enough to figure out why the hell I'm having compiling errors! So close!
     
  8. Morgon

    Joined:
    Aug 15, 2014
    Messages:
    453
    Likes Received:
    64
    Location:
    Glen Burnie, MD
    If you're trying to recompile directly from the dex2jar output, refer to my previous comment - some of the classes couldn't be decompiled, and other methods were converted to assembly.

    If I remember correctly, this is either due to binary instructions embedded in the code, or some sort of encryption on those particular pieces.
     
  9. ilovecoffee

    Joined:
    Aug 13, 2014
    Messages:
    441
    Likes Received:
    17
    That's right. I wasn't trying to recompile based on a dex2jar output, that was only to help my understanding. I then edit the smali files which is more of an assembly language based on what I THINK is the correct edit, but am unable to recompile it. If you have time, please see if you are able to decompile and recompile the DJI Vision apk using apktool without any errors. I've tried it on both my desktop and laptop without success so I'm not sure if it's a configuration error I'm having or if apktool is having issues recompiling it.
     
  10. morph000

    Joined:
    Oct 15, 2014
    Messages:
    155
    Likes Received:
    11
    Location:
    Orstralia is our norf island !
    Now let's decompile the Win apps with Hex-Rays IDA Pro so we can f-i-x things that DJI can't/won't.
     
  11. sbarton

    Joined:
    Jul 28, 2014
    Messages:
    338
    Likes Received:
    10
    Location:
    NJ
  12. morph000

    Joined:
    Oct 15, 2014
    Messages:
    155
    Likes Received:
    11
    Location:
    Orstralia is our norf island !

    Do you fancy sorting out the intermittent failure of the visual low battery (20%) warning ? Sound is ok, but no screen based warning.
    ..and now I too am getting the not enough power to return home problem even at 30% plus battery charge.
    Getting mighty sick of inconsistent performance DJI - ok !!!!!!
    The customer shouldn't have to address fundamental design flaws :evil: