最近更新于 2026-02-13 20:15
在使用 adb 给一个 APP 授权 android.permission.WRITE_SECURE_SETTINGS 时报错:
PS C:\Users\iyatt> adb shell pm grant com.catech.wifiroamconfig android.permission.WRITE_SECURE_SETTINGS
Exception occurred while executing 'grant':
java.lang.SecurityException: grantRuntimePermission: Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS.
at android.app.ContextImpl.enforce(ContextImpl.java:2448)
at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:2476)
at com.android.server.permission.access.permission.PermissionService.setRuntimePermissionGranted(PermissionService.kt:856)
at com.android.server.permission.access.permission.PermissionService.setRuntimePermissionGranted$default(PermissionService.kt:805)
at com.android.server.permission.access.permission.PermissionService.grantRuntimePermission(PermissionService.kt:764)
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:609)
at android.permission.PermissionManager.grantRuntimePermissionInternal(PermissionManager.java:685)
at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:648)
at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2732)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:325)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:7022)
at android.os.Binder.shellCommand(Binder.java:1158)
at android.os.Binder.onTransact(Binder.java:960)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4729)
at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:7006)
at android.os.Binder.execTransactInternal(Binder.java:1433)
at android.os.Binder.execTransact(Binder.java:1372)
后面发现需要打开 USB调试(安全设置),如果还是报一样错,就把 USB调试 关闭再打开,这样 adb 就重连刷新状态了

设置后再查看权限,可以看到已经给这个 APP 加上权限了
adb shell dumpsys package com.catech.wifiroamconfig | findstr "WRITE_SECURE_SETTINGS"

手机系统版本:
Xiaomi HyperOS 3.0.8.0(Android 16)
ADB 授权报错“java.lang.SecurityException: grantRuntimePermission: Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS.”
