Cordova file management
Interesting question,

it is of course not good to fill up memory with copies of pictures. Especially with this scandal in recent memory where deleted pictures haunt users.

It seems from reading your code that you take a copy of the file whether or not you have the extension and MIME type. At least only copy if you see no other way.

Furthermore, from the documentation ( and I could be wrong ), the FileEntry object has a method called file which creates a File Object which has a type property which is the mime type of the file. Could this solve your conundrum ? If that does not work, you should see if you can file a bug.

From a real code review perspective, this is my quick once over:


Respect for dealing with this immature API
JsHint has nothing on this, except for 1 missing semicolon
Have you considered using 'use strict' ?
The multi-line comments definitely stop the reading flow, but removing them would reduce the value of your commenting. I wonder if those multi-liners can be part a narrative on top of your function..
You are at the limit of having to break things up into helper functions, as per this arrow half:

                            });
                        }, fail);
                    }, fail);
                }, fail);
            } else {
                resolve(false);
            }
        });
    }, 0);

}, function (fail_message) {