解决方案:永久授权Root Explorer访问外部存储
引言
对于Rooted设备而言,有时需要让某些应用程序(如Root Explorer)持续获得对外部存储(例如SD卡或OTG设备的读写权限)。这通常涉及到手动修改系统文件或使用一些自动化工具。
手动授予权限的方法
在Android Nougat中,根授权外部存储访问可以通过编辑packages.xml
文件实现。此操作需要Root权限。
步骤一:备份系统文件
为了避免数据丢失,在进行任何更改之前,请先手动或使用工具(如Backup Helper)创建一个完整的系统文件备份。步骤二:使用ADB获得Shell访问路径
使用以下命令连接到你的设备:
bash
adb shell步骤三:打开
packages.xml
文件进行编辑
内存卡中的存储可暂不考虑,因内部Storage的权限修改更为直观。
bash
vi /data/system/packages.xml步骤四:添加特定App的写入外置存储权限行
找到你希望永久授予权限的应用包名对应的<perms>
标签,在里面加入以下内容:
xml
<item name="android.permission.WRITE_MEDIA_STORAGE" granted="true" flags="0"/>步骤五:应用改动并重启设备
保存文件后,使用重新启动命令使更改生效。
bash
reboot撤销权限:要取消上述操作,找到该行进行删除。
注意点:
– 这种做法虽然可以实现应用程序永久性获取外部存储的写入权限,但必须在每次对packages.xml
做出修改后重启设备才能生效。
– 对packages.xml
直接编辑存在一定风险,请务必将改动控制在一个合理范围。
自动化方法:使用Xposed框架
如果你不想手动编辑packages.xml
文件并且已经安装了Xposed框架,可以通过启用XInternalSD模块来更方便地实现权限分配。操作步骤如下:
- 启动并开启 Xposed 框架。
- 进入XInternalSD模块设置,禁用所有选项除了“全权访问外部SD卡”。
尽管这种方法可能带来的风险低于手动修改packages.xml
, 但仍有可能对系统产生意想不到的影响。
总结:
以上提供了两种方法以达到让应用程序(例如Root Explorer)永久获取外部存储访问权限的目的。建议使用者根据自身需求及舒适度进行选择。不过,不推荐普通用户尝试此类操作,除非完全理解其中蕴含的风险与后果。