Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

I am using open-gpstracker to track routes. After quite some time I have collected a large number of tracks that I like to export as GPX files. The application allows to do that, however, there is no export option for all tracks at once.

I am using a device without root access. Is there any way I could access the SQLite database of the application? I also thought of modifying the source code of the opensource application to my requirements, but I am afraid of losing my data when I install the customized version of the app on my device. Am I right, that this can be a problem?


Update: I came up with the idea that I could use the ContentProvider of the application, if there is one included and if it is public. I could write another application that uses the interface to access the database. Do you think this is possible? How can I see if there is a public ContentProvider?

share|improve this question

1 Answer 1

up vote 1 down vote accepted

Each app on Android stores its data on internal storage by default, below the /data/data/<package_name> directory. Due to the sandbox princip, except the app itself and root nobody has access to that if not explicitly defined otherwise by the developer (e.g. Skype currently has a serious security flaw giving everybody read/write access to all its data, including plain-text passwords). So no, you won't be able to get access to the database, which most likely is located in the /data/data/nl.sogeti.android.gpstracker/databases/ directory without having root access to your device.

As for your second question: You are assuming correctly. As you don't have access to the developers certificate (for good reasons), you cannot "update" the original app with your modified version. You would have to uninstall and then re-install -- or giving your modified version a different package name. In both cases, you won't have access to the original apps data.

share|improve this answer
    
You can backup the app data using TitaniumBackup and restore (only the app data) onto a differently signed app with the same package name though (root required). –  ce4 Sep 3 '12 at 10:35
    
Good point -- I didn't consider that. Sure, that should do -- thanks for pointing it out! –  Izzy Sep 3 '12 at 10:49
    
@ce4 Interesting option. However, I do not have root access. How about my updated question regarding the ContentProvider? –  JJD Sep 25 '12 at 21:52
1  
The full path of the database file should be /data/data/nl.sogeti.android.gpstracker/databases/GPSLOG.db. Source: 1 –  JJD Apr 29 '13 at 13:06
    
There is a solution for debuggable apps. Another post here. –  JJD Jul 21 at 9:50

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.