Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Viewing private files created by an android app

Tags:

I have an xml file being written by an app that is set to MODE_PRIVATE, but I now want to read that file outside of the phone, for debugging purposes. In Eclipse, I can access other files made by the app and copy them to my computer, but I can't even see this private file. Merely changing the file to MODE_WORLD_READABLE file doesn't seem to help. I think the file is being stored on an internal "SD card" that can not be removed from the phone, but there are also two other folders in the File Explorer that are either empty or inaccessible: asec and secure.

Does anyone know how the file can be accessed?

like image 223
AlbeyAmakiir Avatar asked Feb 28 '11 03:02

AlbeyAmakiir


People also ask

Where is private data of all applications stored in Android?

Every application in the device has some private storage in the internal memory and you can find this in android/data/your_package_name directory. Apart from this internal storage, the rest of the storage is called the Shared Storage i.e. every application with the storage permission can access this part of the memory.


2 Answers

If your app is installed in debug mode, you can get your private files on a device without rooting.

  1. Go to [android-sdk]/platform-tools folder and run adb shell.
  2. run-as com.example.yourapp
  3. cp -r /data/data/com.example.yourapp /sdcard/

(Where com.example.yourapp is the package name of your application.) After executing the steps above, the private folder of your application is copied into the root of your sdcard storage, under your package name, where you have permission to download and view them.

Note 1: If you don't need to download them, then instead of step 3, you can use unix commands to navigate around and list files and folders.

Note 2: Starting from Android Studio 2.0, you'll find more files in the cache and files/instant-run folder, related to the Instant Run and the GPU Debugger features, placed there by the IDE.

like image 79
Attila Tanyi Avatar answered Oct 13 '22 21:10

Attila Tanyi


You will need to connect the phone and do some magic to let your sdk work with it (I think put it in debugging mode?). Go to where you unzipped the android sdk:

C:\android-sdk_r10-windows\android-sdk-windows\platform-tools>adb shell #cd data/data/com.yourpackage.yourapp/files #ls 

You should see your file listed. You may need to run "ls data/data" if you're not sure what the fully-qualified name of your app is. From here if the file is small and you just want to see what's inside it you can run:

#cat yourfilename.xml 

Alternatively:

#exit C:\android-sdk_r10-windows\android-sdk-windows\platform-tools>adb pull /data/data/com.yourpackage.yourapp/files/yourfile.xml 

Note: I have only tried this on the emulator, I don't know how to use adb with a physical phone.

like image 37
ueouoeuoeu Avatar answered Oct 13 '22 23:10

ueouoeuoeu