普通应用往不可擦除分区写文件之后,恢复出厂设置
现象:概率性读不到写过之后的文件
12-18 10:57:31.348 7980 7980 W System.err: java.io.FileNotFoundException: /xxx/xxx: open failed: EACCES (Permission denied)
12-18 10:57:31.348 7980 7980 W System.err: at libcore.io.IoBridge.open(IoBridge.java:574)
12-18 10:57:31.348 7980 7980 W System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:259)
12-18 10:57:31.348 7980 7980 W System.err: at java.io.FileWriter.<init>(FileWriter.java:113)
12-18 10:57:31.348 7980 7980 W System.err: at android.util.FileIOUtils.writeFileFromString(FileIOUtils.java:556)
12-18 10:57:31.348 7980 7980 W System.err: at android.util.FileIOUtils.writeFileFromString(FileIOUtils.java:510)
原因:恢复出厂设置之后,组权限变化,导致之前有权限的应用,读不到分组的权限
写文件的时候,给文件赋予666权限
val path: Path = Paths.get(PN_PATH)
val perms: MutableSet<PosixFilePermission> = HashSet()
perms.add(PosixFilePermission.GROUP_WRITE)
perms.add(PosixFilePermission.GROUP_READ)
perms.add(PosixFilePermission.OTHERS_WRITE)
perms.add(PosixFilePermission.OTHERS_READ)
perms.add(PosixFilePermission.OWNER_READ)
perms.add(PosixFilePermission.OWNER_WRITE)
Files.setPosixFilePermissions(path, perms)