Today I learned I should include the app package name after shell in my ADB command, if for example I want to list files under the “subdirectory/media” directory of an app, like so:
adb -s emulator-5556 shell run-as com.domain.my.app ls -al /data/user/0/com.domain.my.app/subdirectory/media
First try’s command below failed with a Permission Denied error message:
adb -s emulator-5556 shell ls -al /data/user/0/com.domain.my.app/subdirectory/media
Makes sense, right? Because part of Android OS’ security is limiting access to app directories. But if you “run-as” the package owner app itself, it should grant you access.