在进行拷贝过程中,发现 :
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.(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后,可以拷贝不会报错。
最终通过修改权限解决此问题:



