Android 11设备使用ADB Shell授予存储权限的替代命令求问
Android 11 设备adb授予外置存储写入权限替代方案
原命令失效原因
Android 11(API 级别30)正式落地分区存储机制,android.permission.WRITE_EXTERNAL_STORAGE权限已被废弃,仅对目标SDK版本低于29的旧应用有限兼容,直接执行原命令无法获得外置存储写入权限。
可用替代方案
方案1:授予所有文件访问权限(适用于需要读写全量外置存储的场景)
Android 11及以上版本新增特殊权限MANAGE_EXTERNAL_STORAGE,获取该权限后可访问外置存储所有目录,对应adb命令如下:adb shell appops set com.adobe.reader MANAGE_EXTERNAL_STORAGE allow部分系统执行命令后需要手动进入应用权限设置页,确认「所有文件访问权限」处于开启状态即可生效。
方案2:开启旧版存储兼容(适用于未适配分区存储的旧版应用)
如果使用的是未适配Android 11的老版本Adobe Reader,可以开启旧版存储兼容模式,再授予传统存储权限:# 开启该应用的 legacy storage 兼容模式 adb shell appops set com.adobe.reader LEGACY_STORAGE allow # 授予读写存储权限 adb shell pm grant com.adobe.reader android.permission.READ_EXTERNAL_STORAGE adb shell pm grant com.adobe.reader android.permission.WRITE_EXTERNAL_STORAGE
授权结果验证
执行完对应命令后,可通过以下命令检查权限状态:
adb shell dumpsys package com.adobe.reader | grep -E 'MANAGE_EXTERNAL_STORAGE|LEGACY_STORAGE|EXTERNAL_STORAGE'
对应权限项显示allow或granted=true即为授权成功。
内容的提问来源于stack exchange,提问作者Varun Bhatia
相关产品推荐
相关产品推荐

