我无法从我的 Android 12.1 设备中删除设备所有者。
当我在 adb shell 中使用
dpm list-owners
时,我得到以下输出:1 owner:\n User 0: admin=package.name/app.receivers.DeviceAdminReceiver,DeviceOwner,Affiliated
当我在 adb shell 中使用 dpm remove-active-admin package.name/app.receivers.DeviceAdminReceiver
时,我得到以下输出:
Exception occurred while executing 'remove-active-admin':
java.lang.SecurityException: Attempt to remove non-test admin ComponentInfo{package.name/app.receivers.DeviceAdminReceiver} 0
at com.android.server.devicepolicy.DevicePolicyManagerService.lambda$forceRemoveActiveAdmin$9$DevicePolicyManagerService(DevicePolicyManagerService.java:3712)
at com.android.server.devicepolicy.DevicePolicyManagerService$$ExternalSyntheticLambda20.runOrThrow(Unknown Source:6)
at android.os.Binder.withCleanCallingIdentity(Binder.java:390)
at com.android.server.devicepolicy.DevicePolicyManagerService$Injector.binderWithCleanCallingIdentity(DevicePolicyManagerService.java:1554)
at com.android.server.devicepolicy.DevicePolicyManagerService.forceRemoveActiveAdmin(DevicePolicyManagerService.java:3708)
at com.android.server.devicepolicy.DevicePolicyManagerServiceShellCommand.runRemoveActiveAdmin(DevicePolicyManagerServiceShellCommand.java:280)
at com.android.server.devicepolicy.DevicePolicyManagerServiceShellCommand.onCommand(DevicePolicyManagerServiceShellCommand.java:93)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.devicepolicy.DevicePolicyManagerService.onShellCommand(DevicePolicyManagerService.java:9818)
at android.os.Binder.shellCommand(Binder.java:950)
at android.os.Binder.onTransact(Binder.java:834)
at android.app.admin.IDevicePolicyManager$Stub.onTransact(IDevicePolicyManager.java:6980)
at android.os.Binder.execTransactInternal(Binder.java:1184)
at android.os.Binder.execTransact(Binder.java:1143)
我还尝试从设置中的安全性禁用设备管理应用程序,但禁用文本也显示为灰色。 我该怎么办?
将此行添加到 Android 清单应用程序标记中:
android:testOnly =“true”
像这样:
<application
android:name=".presentation.DpcApplication"
android:icon="@mipmap/ic_launcher"
android:testOnly="${testOnly}"/>
在 build.gradle 中:
buildTypes {
debug {
isDebuggable = true
defaultConfig {
manifestPlaceholders["testOnly"] = "true"
}
}
release {
isDebuggable = false
defaultConfig {
manifestPlaceholders["testOnly"] = "false"
}
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
signingConfig = signingConfigs.getByName("debug")
}
}
不要在生产中使用 android:testOnly="true"