My app doesn't have storage permissions, yet I can read/write files in /data/user/0/com.myapp/files .
When on emulator connected as root I can push a file to this directory, but then the app cannot read it.
After I chown it to my app's uid:gid it still cannot read/write to it.
If I do run-as com.myapp touch newfile
and then as root cat pushedfile >> newfile
, then my app can read newfile
.
What kind of dark magic is that? Why regular unix file permissions don't seem to work, and what mechanism prevents the app to read pushedfile
even after it was chown
ed?
I tried reading the docs™ but they don't seem to clarify anything.