使用实时输入法:sonic输入法 时,提示java.lang.SecurityException提示
shlixuefu@lixuefu-virtual-machine:~$ adb shell ime enable org.cloud.sonic.android/.keyboard.SonicKeyboard
Exception occurred while executing 'ime':
java.lang.SecurityException: uid 2000 does not have android.permission.WRITE_SECURE_SETTINGS.
at android.app.ContextImpl.enforce(ContextImpl.java:2189)
at android.app.ContextImpl.enforceCallingPermission(ContextImpl.java:2207)
at com.android.server.inputmethod.InputMethodManagerService$ShellCommandImpl.lambda$onCommand$0$InputMethodManagerService$ShellCommandImpl(InputMethodManagerService.java:5590)
at com.android.server.inputmethod.InputMethodManagerService$ShellCommandImpl$$ExternalSyntheticLambda0.accept(Unknown Source:4)
at java.util.Arrays$ArrayList.forEach(Arrays.java:3805)
at com.android.server.inputmethod.InputMethodManagerService$ShellCommandImpl.onCommand(InputMethodManagerService.java:5590)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.inputmethod.InputMethodManagerService.onShellCommand(InputMethodManagerService.java:5564)
at android.os.Binder.shellCommand(Binder.java:971)
at android.os.Binder.onTransact(Binder.java:855)
at com.android.internal.view.IInputMethodManager$Stub.onTransact(IInputMethodManager.java:535)
at com.android.server.inputmethod.InputMethodManagerService.onTransact(InputMethodManagerService.java:1819)
at com.android.server.inputmethod.OplusInputMethodManagerService.onTransact(OplusInputMethodManagerService.java:186)
at android.os.Binder.execTransactInternal(Binder.java:1227)
at android.os.Binder.execTransact(Binder.java:1164)
lixuefu@lixuefu-virtual-machine:~$ adb shell ime set org.cloud.sonic.android/.keyboard.SonicKeyboard
Exception occurred while executing 'ime':
java.lang.SecurityException: uid 2000 does not have android.permission.WRITE_SECURE_SETTINGS.
at android.app.ContextImpl.enforce(ContextImpl.java:2189)
at android.app.ContextImpl.enforceCallingPermission(ContextImpl.java:2207)
at com.android.server.inputmethod.InputMethodManagerService$ShellCommandImpl.lambda$onCommand$0$InputMethodManagerService$ShellCommandImpl(InputMethodManagerService.java:5590)
at com.android.server.inputmethod.InputMethodManagerService$ShellCommandImpl$$ExternalSyntheticLambda0.accept(Unknown Source:4)
at java.util.Arrays$ArrayList.forEach(Arrays.java:3805)
at com.android.server.inputmethod.InputMethodManagerService$ShellCommandImpl.onCommand(InputMethodManagerService.java:5590)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.inputmethod.InputMethodManagerService.onShellCommand(InputMethodManagerService.java:5564)
at android.os.Binder.shellCommand(Binder.java:971)
at android.os.Binder.onTransact(Binder.java:855)
at com.android.internal.view.IInputMethodManager$Stub.onTransact(IInputMethodManager.java:535)
at com.android.server.inputmethod.InputMethodManagerService.onTransact(InputMethodManagerService.java:1819)
at com.android.server.inputmethod.OplusInputMethodManagerService.onTransact(OplusInputMethodManagerService.java:186)
at android.os.Binder.execTransactInternal(Binder.java:1227)
at android.os.Binder.execTransact(Binder.java:1164)
lixuefu@lixuefu-virtual-machine:~$ adb shell pm grant org.cloud.sonic.android 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:2189)
at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:2217)
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermissionInternal(PermissionManagerService.java:1497)
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:1479)
at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:378)
at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2419)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:260)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:25926)
at android.os.Binder.shellCommand(Binder.java:971)
at android.os.Binder.onTransact(Binder.java:855)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4818)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:9006)
at android.os.Binder.execTransactInternal(Binder.java:1227)
at android.os.Binder.execTransact(Binder.java:1164)
lixuefu@lixuefu-virtual-machine:~$ adb shell ime enable org.cloud.sonic.android/.keyboard.SonicKeyboard
Input method org.cloud.sonic.android/.keyboard.SonicKeyboard: now enabled for user #0
lixuefu@lixuefu-virtual-machine:~$ adb shell pm grant org.cloud.sonic.android android.permission.WRITE_SECURE_SETTINGS
Exception occurred while executing 'grant':
java.lang.SecurityException: Package org.cloud.sonic.android has not requested permission android.permission.WRITE_SECURE_SETTINGS
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermissionInternal(PermissionManagerService.java:1563)
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:1479)
at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:378)
at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2419)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:260)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:25926)
at android.os.Binder.shellCommand(Binder.java:971)
at android.os.Binder.onTransact(Binder.java:855)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4818)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:9006)
at android.os.Binder.execTransactInternal(Binder.java:1227)
at android.os.Binder.execTransact(Binder.java:1164)
经对比分析,是OV类开发者中开关:禁止权限监控,没打开,打开后,可以发现能正常设置
shlixuefu@lixuefu-virtual-machine:~$ adb shell ime set org.cloud.sonic.android/.keyboard.SonicKeyboard
Input method org.cloud.sonic.android/.keyboard.SonicKeyboard selected for user #0
lixuefu@lixuefu-virtual-machine:~$ adb shell ime set org.cloud.sonic.android/.keyboard.SonicKeyboard
Input method org.cloud.sonic.android/.keyboard.SonicKeyboard selected for user #0
本文作者:lixf6
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!