Unable to copy files from one /data/data/ directory to another (Root) I'm trying to copy one file from /data/data/com.application1/myfile to /data/data/com.application2/myfile

The file arrives with owner and group set to the app that it came from. I then changed the owner and group the application running it (A SSH application).

The permissions change, but I still get access denied. I tried using chattr -i myfile but the issue is still there. Even chmod 777 still gives access denied.

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/whoami
u0_a149

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/ls -la
-rwx------ u0_a149  u0_a149        10 2018-06-23 16:23 myfile

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/echo test &gt; testfile

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/ls -la
-rwx------ u0_a149  u0_a149        10 2018-06-23 16:23 myfile
-rw------- u0_a149  u0_a149         5 2018-06-23 16:37 testfile

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/cat testfile
test

user@htc_m8:/data/data/org.galexander.sshd/home $ /system/bin/cat myfile
cat: myfile: Permission denied


I have busybox installed, but in the example I'm using native commands, however the busybox commands give the same output.

I just can't see what is different about the file I created compared to the one I copied. Same owner/group/permissions.
Android runs in "SELinux" mode. More information here SELinux concepts

This means in addition to the standard linux permissions it also has additional attributes attached.

Running attr -l myfile showed the following Attribute "selinux" has a 38 byte value for myfile

Using /system/bin/ls -alZ you can see the selinux attribute value.

-rwx------ u0_a141  u0_a141           u:object_r:app_data_file:s0 myfile
-rw------- u0_a141  u0_a141           u:object_r:app_data_file:s0:c512,c768 testfile


The file I copied was missing some extra data on the end, c512,c768, I presume this is something like an AppID. 

Running su -c restorecon myfile fixed this and restored the file to the correct attribute value. Ref: Explanation of the chcon command - Post