Root android 是 Android 11 中从后台访问剪贴板的唯一方法吗?

问题描述 投票:0回答:1

我创建了一个 Android 应用程序。我的应用程序是尝试从服务子类(背景)访问剪贴板。 当应用程序尝试从后台访问剪贴板时,会显示以下错误。 #在日志猫中:

ClipboardService   system_server      E  Denying clipboard access to com.android.thekeyboard, application is not in focus nor is it a system service for user 0

从我在网上找到的信息来看,它似乎需要 READ_CLIPBOARD_IN_BACKGROUND。所以我尝试了以下命令,但被拒绝了。

shell pm grant com.android.thekeyboard android.permission.READ_CLIPBOARD_IN_BACKGROUND 

#error
Exception occurred while executing 'grant':
java.lang.SecurityException: Permission android.permission.READ_CLIPBOARD_IN_BACKGROUND requested by com.android.thekeyboard is not a changeable perm
ission type
        at com.android.server.pm.permission.BasePermission.enforceDeclaredUsedAndRuntimeOrDevelopment(BasePermission.java:453)
        at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermissionInternal(PermissionManagerService.java:1491)
        at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:1444)
        at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2300)
        at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:251)
        at android.os.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:98)
        at android.os.ShellCommand.exec(ShellCommand.java:44)
        at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:22246)
        at android.os.Binder.shellCommand(Binder.java:929)
        at android.os.Binder.onTransact(Binder.java:813)
        at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4687)
        at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4452)
        at android.os.Binder.execTransactInternal(Binder.java:1159)
        at android.os.Binder.execTransact(Binder.java:1123)

另外,我尝试执行以下命令。在Android 10中,为了保护隐私,禁止访问剪贴板。所以我发现 adb 命令授予权限让某些剪贴板应用程序在 android 10 中正常工作。我没有检查 android 10 和应用程序。但我在我的应用程序中执行了命令以防万一。但它没有按预期工作。

adb -d shell appops set com.android.thekeyboard SYSTEM_ALERT_WINDOW allow 
adb -d shell pm grant com.android.thekeyboard android.permission.READ_LOGS
adb -d shell pm grant com.android.thekeyboard android.permission.WRITE_SECURE_SETTINGS
adb -d shell pm grant com.android.thekeyboard android.permission.CHANGE_CONFIGURATION

在android 11中有什么方法可以从后台访问剪贴板吗?我不想做路由 Android...

android adb
1个回答
0
投票

拒绝后台剪贴板访问是一项基本的安全和隐私要求,并且不能使用包管理器对其进行妥协(这清楚地解释了为什么它不允许这样做)。 请参阅 https://b.corp.google.com/issues/318032054 了解一些相关背景。 问自己一个问题:为什么 your_app (your_service) 需要剪贴板(当它在后台时)?

© www.soinside.com 2019 - 2024. All rights reserved.