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

  • Post author:
  • Post category:其他




解决安卓软件读取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



版权声明:本文为iampeijiao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。