准备工作

第一步: 下载ADB工具,解压到文件夹;

第二步: 手机进入开发者模式,并开启USB调试功能;

  • 进入设置-关于手机-连续点击版本号多次(一般是7次,会有提示)开启开发者模式。小米是连续点击MIUI版本号。
  • 开启后进入设置-更多设置-开发者选项 找到USB调试,点击开启它,同时有些系统会有子项-USB调试(安全设置)也需要一起开启,否则授权会无效。

第三步: 将手机通过USB连接到电脑上,手机上会弹框提示是否授权USB调试,点击确定即可。

第四步: 打开电脑上的cmdterminal或者powershell,进入到第一步解压的ADB所在的文件夹,输入以下命令:

1
adb devices

如果一切正常会显示如下内容:

1
2
List of devices attached
d8cfe91f device

ADB授权脚本自动开启无障碍权限

获取包名

1
toastLog(context.getPackageName());

开启无障碍权限

$packageName$替换成实际的AutoJS包名;

1
adb shell pm grant '$packageName$' android.permission.WRITE_SECURE_SETTINGS

例如:

1
adb shell pm grant org.autojs.autojs6 android.permission.WRITE_SECURE_SETTINGS

撤销无障碍权限

1
adb shell pm revoke '$packageName$' android.permission.WRITE_SECURE_SETTINGS

投影媒体权限

1
adb shell appops set org.autojs.autojs6 PROJECT_MEDIA allow

检验ADB权限

1
2
importClass(android.content.pm.PackageManager)
toastLog('是否有ADB权限' + (PackageManager.PERMISSION_GRANTED === context.getPackageManager().checkPermission('android.permission.WRITE_SECURE_SETTINGS', context.getPackageName())))

报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Exception occurred while executing 'set':
java.lang.SecurityException: uid 2000 does not have android.permission.MANAGE_APP_OPS_MODES.
at android.app.ContextImpl.enforce(ContextImpl.java:2189)
at android.app.ContextImpl.enforcePermission(ContextImpl.java:2198)
at com.android.server.appop.AppOpsService.enforceManageAppOpsModes(AppOpsService.java:2575)
at com.android.server.appop.AppOpsService.setMode(AppOpsService.java:2905)
at com.android.server.appop.AppOpsService.setMode(AppOpsService.java:2900)
at com.android.server.appop.AppOpsService.onShellCommand(AppOpsService.java:5680)
at com.android.server.appop.AppOpsService$Shell.onCommand(AppOpsService.java:5449)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.appop.AppOpsService.onShellCommand(AppOpsService.java:5621)
at android.os.Binder.shellCommand(Binder.java:971)
at android.os.Binder.onTransact(Binder.java:855)
at com.android.internal.app.IAppOpsService$Stub.onTransact(IAppOpsService.java:1198)
at com.android.server.appop.OplusAppOpsService.onTransact(OplusAppOpsService.java:38)
at android.os.Binder.execTransactInternal(Binder.java:1227)
at android.os.Binder.execTransact(Binder.java:1164)

解决办法

设置 –> 开发者选项 –> 禁用监控权限

参考链接