在进行拷贝过程中,发现 :
System.err: java.io.FileNotFoundException: /data/xgimilog/logcat.log: open failed: EACCES (Permission denied)
具体如下:
06-02 08:03:19.786 8195 8533 D BugxxxService: copyFile: /data/xxxxxlog/logcat.log;destFile:/storage/738B-6C66/xxxxxlog/xxxxxlog/logcat.log
06-02 08:03:19.787 8195 8533 W System.err: java.io.FileNotFoundException: /data/xxxxxlog/logcat.log: open failed: EACCES (Permission denied)
06-02 08:03:19.788 8195 8533 W System.err: at libcore.io.IoBridge.open(IoBridge.java:492)
06-02 08:03:19.789 8195 8533 W System.err: at java.io.FileInputStream.<init>(FileInputStream.java:160)
06-02 08:03:19.789 8195 8533 W System.err: at com.xxxxx.bugxxxsender.Utils.FileUtils.copyFile(FileUtils.java:43)
06-02 08:03:19.790 8195 8533 W System.err: at com.xxxxx.bugxxxsender.BugreportService.copyFiles(BugxxxService.java:94)
06-02 08:03:19.790 8195 8533 W System.err: at com.xxxxx.bugxxxsender.BugxxxService.onHandleIntent(BugxxxService.java:58)
06-02 08:03:19.790 8195 8533 W System.err: at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:77)
06-02 08:03:19.790 8195 8533 W System.err: at android.os.Handler.dispatchMessage(Handler.java:106)
06-02 08:03:19.790 8195 8533 W System.err: at android.os.Looper.loop(Looper.java:223)
06-02 08:03:19.790 8195 8533 W System.err: at android.os.HandlerThread.run(HandlerThread.java:67)
06-02 08:03:19.790 8195 8533 W System.err: Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
06-02 08:03:19.790 8195 8533 W System.err: at libcore.io.Linux.open(Native Method)
06-02 08:03:19.790 8195 8533 W System.err: at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
06-02 08:03:19.790 8195 8533 W System.err: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:254)
06-02 08:03:19.790 8195 8533 W System.err: at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
06-02 08:03:19.791 8195 8533 W System.err: at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7542)
应用是系统应用,且sharedUserId为:android.uid.system;该给的权限也都给了,selinux关闭后也有同样的问题。
最后分析是跟要打开的文件(data/xxxxxlog/logcat.log)的权限有关,查看文件的权限,只是普通的-rw-------;通过chmod 777 /data/xxxxxlog/logcat.log后,可以拷贝不会报错。
最终通过修改权限解决此问题: