问题描述
设备安装了新的 ROM(CyanogenMod 12.1)之后,使用 adb push 命令将一些备份目录推送到内部存储。然而,在完全启动的系统中,并非以 root 用户登录的情况下,这些目录下的文件只能读取而无法写入或删除;但在 TWRP 恢复模式下,这些操作是可行的。初步怀疑问题可能出在 SELinux 上,但相关权限显示正常且执行了修复命令。
解决方案
请注意以下操作需要注意版本差异及修改前做好备份。
方案1:恢复模式检查调整文件权限
从恢复模式重新检查和调整文件权限可以有效地解决问题。
步骤一:使用adb推送到设备的目录
首先通过 adb 命令将文件或目录推送至设备:
$ adb push your_directory /internal_storage/
步骤二:在恢复模式(recovery)下检查和调整文件权限
- 重启进入 TWRP 恢复模式。
- 手动选择“命令行”启动项:
- 使用引导菜单进入命令行模式
- 列出新推送的目录及文件权限情况:
shell
$ ls -l /internal_storage/your_directory/ - 如果发现存在不正确的权限如用户和组ID,可以手动调整:
shell
chown 1023.1023 /internal_storage/your_directory/ -R
chmod 770 /internal_storage/your_directory/
方案2:完全启动系统中检查文件权限
在设备完全启动的系统中,由于某些原因当前报告的权限可能不如实际准确。
步骤一:进行全权验证操作
在已经启动的操作系统中尝试进行写入删除操作以确认问题所在部分:
1. 尝试以下命令获取文件详细信息:
shell
$ ls -l /internal_storage/your_directory/
2. 确认当前报告的权限与实际是否一致;如果有不一致之处,可以使用 chown
和 chmod
修复。
注意!这些操作仅适用于在 root 权限环境下执行。
方案3:恢复设备至出厂设置
如果以上两种方法仍无法解决问题,则可能需要更彻底的方法来重新启动:
1. 在 TWRP 恢复模式中,选择“擦除数据/清除所有数据”选项进行重置。
2. 之后重新安装 ROM 并按需导入备份文件。
通过上述解决方案希望能帮助解决与该问题相关的困惑。如问题仍存在请考虑寻求设备开发者或社区支持进一步处理。
正文完