Возможно ли увидеть данные приложения из оболочки adb так же, как я вижу, что она монтирует SD-карту?

Я тестирую приложение для Android.
Я хотел бы следить за содержанием

/sdcard/Android/data/com.myapplication 

Пока приложение работает.
Но мое приложение работает неправильно, если SD-карта смонтирована как диск на ПК (доступ к изображениям и видео).
Поэтому я подумал, что могу использовать оболочку adb. Но он не позволяет мне получить доступ к той же папке:

 ls /sdcard/Android/data/com.myapplication /sdcard/Android/data/com.myapplication: Permission denied 

Глядя на переполнение стека, я нашел этот способ увидеть данные приложения через оболочку adb:

 run-as com.myapplication 

И поэтому я попадаю в папку

 /data/data/com.myapplication 

Я запутался в том, что данные, которые я вижу здесь, отличаются от данных, которые я просматриваю при просмотре содержимого sdcard с помощью ПК.

 $ ls ls files databases shared_prefs lib 

Я вижу под файлами что-то, что также было в папке sdcard Android / data / com.myapplication, но не то, что я искал. Кроме того, все остальные папки разные.
Существует ли корреляция между этим

 /data/data/com.myapplication 

Доступную через adb и

 /sdcard/Android/data/com.myapplication 

Доступную через ПК?
Есть ли способ увидеть в оболочке adb файлы, присутствующие в последнем?

Solutions Collecting From Web of "Возможно ли увидеть данные приложения из оболочки adb так же, как я вижу, что она монтирует SD-карту?"

Как правило, файлы, хранящиеся во Internal storage и хранящиеся в вашем приложении (по умолчанию не WORLD_READABLE ), будут доступны только для чтения вашего приложения. Когда вы пытаетесь pull эти файлы с помощью adb pull вы получите разрешение, отклоненное на НЕ внедренном устройстве. Есть способ обойти это, я объясню позже. Файлы с External storage с другой стороны, доступны для пользователя и для всех других приложений для чтения. Так что это зависит от того, что вы после.

Теперь, чтобы читать файлы во внутреннем хранилище ( /data/data/com.app.name ), вы не можете читать эти файлы напрямую, но то, что вы можете сделать, это переместить их во внешнее хранилище и затем прочитать их там.

 adb shell "run-as com.yourappName cat /data/data/com.yourappName/files/myfile.txt > /sdcard/Downloads/myfile.txt" 

Затем вы можете вытащить файл из внешнего хранилища без каких-либо проблем с разрешением.

 adb pull /sdcard/Downloads/myfile.txt 

Если вы не уверены в том, какой файл или хотите просмотреть все файлы, тогда вы можете использовать оболочку для просмотра всех ваших файлов приложений.

 adb shell run-as yourappPackageName cd /data/data/youappPackageName ls -all 

Вы можете получить к нему доступ через утилиту, которая была опубликована ранее в блоге. Это утилита java, благодаря которой вы можете получить все папки в папке данных вашего приложения, просто указав имя пакета вашего приложения. Просто приложение должно быть отлаживаемым.

Извлечь файлы Android

Действительно работает