使用ADB卸载Android设备管理员

5
我在我的安卓设备(Micromax Canvas A110),安卓版本为4.1.4上安装了快速治愈移动安全软件。我试图卸载它,但无法卸载。通过进一步搜索,我发现我们需要从设置的设备管理员菜单中停用它。
我试着这样做,只发现选项窗口“取消”和“停用”按钮点击后不会消失。
我尝试使用adb shell pm list packages找到已安装的包名为com.quickheal.platform的快速治愈应用程序,然后使用adb uninstall com.quickheal.platform命令卸载该应用程序,但是失败了。
那么我该如何使用adb卸载它呢?

首先,您需要禁用管理员模式,然后才能卸载应用程序。要删除活动管理员,首先运行此命令adb shell dpm remove-active-admin com.kiosk.example/com.kiosk.example.MyDeviceAdminReceiver(com.kiosk.example)是包名称,请将其替换为您自己的包名称。当此命令成功时,您可以卸载应用程序。或者运行此命令以卸载adb uninstall com.kiosk.example。 - Mudassir Khan
3个回答

5

很抱歉,无法通过adb停用设备管理员。有人提出了一个建议,在这篇帖子中开放设备管理员设置以便更快地访问:

adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"

...然而仍需要一些交互。

在某些设备上,在对话框中确认后,设备管理员活动未能正确更新。因此,请尝试完全退出设置菜单并检查是否只是界面问题。

补充:根据下面的评论,如果AndroidManifest.xml文件中缺少android:testOnly="true",则可以删除设备管理员。感谢提供该信息!


该选项在我的设置屏幕中被禁用。我的意思是我可以看到我的应用程序,但我无法取消勾选该选项。 - sorin.silaghi
2
实际上,可以使用以下命令完成:adb shell dpm remove-active-admin "component.name/DeviceOwner"。在这里找到了这个答案:https://dev59.com/flUM5IYBdhLWcg3wOeTz - Stephen M -on strike-
2
需要注意的是,我上面的评论仅适用于AndroidManifest.xml文件中缺少android:testOnly="true"或未设置该属性的情况。否则,Android(至少在6.0版本)会变得很烦躁,并且不允许您将应用程序设置为非活动管理员。 - Stephen M -on strike-

4

只需在您的应用程序中执行此代码!

DevicePolicyManager mDPM = (DevicePolicyManager) this.getSystemService(Context.DEVICE_POLICY_SERVICE);
mDPM.clearDeviceOwnerApp(getPackage());

2
这是可能的,尽管需要一个已经root的设备(su访问),而且有点混乱。它涉及通过完全限定名称搜索应用程序,并手动删除每个找到的条目(rm -f)。
在此处查看详细答案:https://dev59.com/TWzXa4cB1Zd3GeqPQirq#29093349

如果设备主人是谁,为什么有人会对设备进行 root 处理呢? - amalBit
@amalBit 设备所有者不能像 root 一样做任何事情。例如,更换启动动画。 - Stephen M -on strike-
@StephenM 这就是关键。如果您拥有根访问权限,您可以做任何事情。因此,您不需要设备所有者的许可。然而,设备所有者权限主要用于企业设置中,他们希望启用BYOD或COSU(企业拥有的单一用途设备|用于单一目的,接收预订(出租车聚合),信息亭应用程序等)。在第二个用例中,没有人想使其保修失效。 - amalBit
1
@amalBit 啊...我误读了你的帖子。谢谢澄清。 - Stephen M -on strike-

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接