ADB模拟按键触发SecurityException权限问题求助
解决ADB模拟按键输入的INJECT_EVENTS权限报错问题
问题原因
你遇到的java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission报错,核心是部分MIUI版本收紧了ADB Shell的输入注入权限,而Redmi 9的MIUI版本默认放开了该权限,因此可以正常执行命令。
解决方案
开启USB调试安全设置
进入设备「设置」→「开发者选项」,找到「USB调试(安全设置)」(部分MIUI版本显示为「允许模拟点击」)并开启。该权限是Android 10+新增的授权项,用于允许ADB执行输入类操作,部分MIUI机型默认处于关闭状态。使用Root权限执行命令
若设备已解锁BL并获取Root权限,先执行:adb root再重新运行按键模拟命令:
adb -s devicenumber shell input keyevent KEYCODE_DELRoot权限可直接绕过INJECT_EVENTS的权限校验。
验证ADB Shell权限状态
执行以下命令检查ADB Shell是否拥有INJECT_EVENTS权限:adb -s devicenumber shell dumpsys package com.android.shell在输出中查找
android.permission.INJECT_EVENTS,如果未找到,重新插拔USB连接并确认「USB调试(安全设置)」已正确开启。调整MIUI隐私权限
进入「设置」→「隐私保护」→「权限管理」,搜索「shell」或「adb shell」,确保其拥有「模拟输入」相关权限。部分MIUI版本会默认限制系统Shell的输入权限,手动开启即可。
内容的提问来源于stack exchange,提问作者matoz
相关产品推荐
相关产品推荐

