【解决安卓软件读取OTG存储没有权限的问题】

解决安卓软件读取OTG存储没有权限的问题

安卓系统新版本不希望第三方软件获取OTG的权限,设计了一个新的权限 WRITE_MEDIA_STORAGE,拥有这个权限才能流畅使用OTG的相关设备,然而这个权限第三方应用是无法申请到的,只有系统级别的应用才能申请到,这就导致了很多软件会有OTG权限问题。

最近研究了一下,在索尼5ii上(安卓10)测试成功读取了OTG存储卡。
条件:已root,安装了面具。
原理:将OTG的路径从 WRITE_MEDIA_STORAGE 权限转移到SD卡权限 WRITE_EXTERNAL_STORAGE
修改的文件:/system/etc/permissions/platform.xml

原内容:(3处地方需要修改)

<permission name="android.permission.WRITE_MEDIA_STORAGE" >
    <group gid="media_rw" />
</permission>
<permission name="android.permission.READ_EXTERNAL_STORAGE" />
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" />

修改后:(3处)

<permission name="android.permission.WRITE_MEDIA_STORAGE" >
    <group gid="sdcard_r" />
    <group gid="sdcard_rw" />
    <group gid="media_rw" />
</permission>
<permission name="android.permission.READ_EXTERNAL_STORAGE" >
    <group gid="sdcard_r" />
    <group gid="media_rw" />
</permission>
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
    <group gid="sdcard_r" />
    <group gid="sdcard_rw" />
    <group gid="media_rw" />
</permission>

可优化点:

由于问题解决了,我就没有继续折腾了(过程中有一次写错文件了,卡在logo进不去了)
1,WRITE_MEDIA_STORAGE 应该可以不用改变,毕竟没有用到。
2,READ_EXTERNAL_STORAGE "sdcard_r"可能不用加,"media_rw"可能用"media_r"就行。
3,WRITE_EXTERNAL_STORAGE "sdcard_r"和"sdcard_rw"可能不用加。
4,可以自己做一个面具模块包含上述修改即可。

实际操作:

方法1,直接改文件:如果解锁了system,就直接用RE管理器将 platform.xml 文件直接修改,获取复制出来修改了再覆盖回去,然后重启。
方法2,用面具(安全):
1,选择一个已经验证过的面具模块。
2,用7z打开这个模块,增加修改后的文件 /system/etc/permissions/platform.xml,如果模块没有 system 就新建文件夹这些文件夹。
3,打开面具,从本地加载这个模块,重启手机即可。
注意:增加 platform.xml 后,在加载模块时可能提示解压失败,换别的压缩软件重新压缩就行,我就失败了好几种。

面具加载模块后卡在logo进不去的解决办法:

索尼5ii:
在卡logo界面,长按开机键加音量,感觉震动时松手,手机会重启。
此时一直按住音量减,直到启动完成,进入了安全模式。此时的面具会自动禁用所有模块
重启手机就能正常进入系统
再将模块修改回来,重新用面具打开模块,重启手机。
注:在/data/adb/moduals 文件夹下,应该是所有面具模块安装后的路径,保险起见在这里也删除掉相应模块中的 /system/etc/permissions/platform.xml

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值