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)
相关推荐
2501_915909063 小时前
HTTPS 错误解析,常见 HTTPS 抓包失败、443 端口错误与 iOS 抓包调试全攻略
android·网络协议·ios·小程序·https·uni-app·iphone
程序猿陌名!6 小时前
Android开发 AlarmManager set() 方法与WiFi忘记连接问题分析
android
骐骥17 小时前
2025-09-08升级问题记录: 升级SDK从Android11到Android12
android·android12·sdk31
CV资深专家10 小时前
Android 各分区模块编译配置(mk/bp)总结
android
louisgeek12 小时前
Java 线程池取消的方式
android
Billy_Zuo13 小时前
人工智能机器学习——模型评价及优化
android·人工智能·机器学习
tangweiguo0305198713 小时前
Flutter与原生混合开发:实现完美的暗夜模式同步方案
android·flutter
雨白14 小时前
深入理解 Android 触摸事件:以实现 ViewPager 为例
android
shenshizhong14 小时前
看懂鸿蒙系统源码 比较重要的知识点
android·harmonyos
一只修仙的猿16 小时前
再谈性能优化,一次项目优化经历分享
android·性能优化