Android不可擦除分区写文件恢复出厂设置,无法读写问题

普通应用往不可擦除分区写文件之后,恢复出厂设置

现象:概率性读不到写过之后的文件

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)
相关推荐
江上清风山间明月1 小时前
Flutter开发的应用页面非常多时如何高效管理路由
android·flutter·路由·页面管理·routes·ongenerateroute
子非衣5 小时前
MySQL修改JSON格式数据示例
android·mysql·json
openinstall全渠道统计8 小时前
免填邀请码工具:赋能六大核心场景,重构App增长新模型
android·ios·harmonyos
双鱼大猫8 小时前
一句话说透Android里面的ServiceManager的注册服务
android
双鱼大猫8 小时前
一句话说透Android里面的查找服务
android
双鱼大猫8 小时前
一句话说透Android里面的SystemServer进程的作用
android
双鱼大猫8 小时前
一句话说透Android里面的View的绘制流程和实现原理
android
双鱼大猫9 小时前
一句话说透Android里面的Window的内部机制
android
双鱼大猫9 小时前
一句话说透Android里面的为什么要设计Window?
android
双鱼大猫9 小时前
一句话说透Android里面的主线程创建时机,frameworks层面分析
android