macOS执行ADB时出现‘Operation Not Permitted’错误求助
macOS 12.6.1下ADB权限问题(Operation Not Permitted/permission denied)的解决思路
以下是针对该问题的具体排查和解决步骤:
检查ADB所在目录的权限链
仅修改adb文件权限可能不够,需确保父目录权限正常:- 执行命令查看platform-tools目录权限:
ls -ld /Users/my_username/Library/Android/sdk/platform-tools/ - 若当前用户无读写执行权限,执行修正命令:
chmod 755 /Users/my_username/Library/Android/sdk/platform-tools/ - 逐层检查上层目录(如
Android/、Library/)的权限,确保无异常权限锁。
- 执行命令查看platform-tools目录权限:
验证系统完整性保护(SIP)状态
macOS的SIP可能限制ADB执行:- 执行命令查看SIP状态:
csrutil status - 若显示
enabled,临时禁用测试:重启Mac并按住Command+R进入恢复模式,打开终端输入:csrutil disable - 重启后测试ADB,问题解决后建议重新启用SIP(恢复模式下执行
csrutil enable)。
- 执行命令查看SIP状态:
补充终端的开发者工具权限
除全磁盘访问外,需确保终端拥有开发者工具权限:
打开「系统偏好设置→安全性与隐私→隐私→开发者工具」,勾选你的终端(如Terminal/iTerm2)。直接使用完整路径执行ADB
规避PATH环境变量可能的冲突:/Users/my_username/Library/Android/sdk/platform-tools/adb devices若此命令可正常运行,检查
.zshrc/.bash_profile中的PATH配置,确保platform-tools目录已正确加入,且无其他版本ADB干扰。移除文件的互联网隔离属性
macOS会给下载文件添加隔离标记:- 检查文件属性:
xattr /Users/my_username/Library/Android/sdk/platform-tools/adb - 若存在
com.apple.quarantine标记,执行移除命令:xattr -d com.apple.quarantine /Users/my_username/Library/Android/sdk/platform-tools/adb
- 检查文件属性:
Flutter Doctor崩溃的关联处理
Flutter设备检查崩溃多因无法调用ADB,解决ADB权限问题后重新运行flutter doctor即可。若仍有异常,检查Flutter缓存目录(如~/.flutter、~/.pub-cache)的读写权限,确保当前用户拥有访问权限。
内容的提问来源于stack exchange,提问作者batacon
相关产品推荐
相关产品推荐

