我试图卸载从外壳的应用程序,但是该应用程序正在运行的设备管理员,因此shell> adb uninstall com.example.test
没有工作。
如何禁用从外壳的设备管理?
我试图卸载从外壳的应用程序,但是该应用程序正在运行的设备管理员,因此shell> adb uninstall com.example.test
没有工作。
如何禁用从外壳的设备管理?
一般而言,管理访问是通过设备管理员屏幕撤销,然后应用程序被卸载。 在随后的实施例中,我将假设airdroid( com.sand.airdroid
),已被配置作为器件管理员,并且将被卸载。 因此,要调整这个例子中,更换的情况下com.sand.airdroid
用自己的应用程序名称。
要访问设备管理员 ,导航: 设置 → 安全 → 设备管理员 。 然后,取消申请为未设置的管理权限。
也有可能使用shell来打开这个活动:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
一旦做到这一点,该活动可以正常卸载:
adb uninstall com.sand.airdroid
蛮力方法确实存在。 它涉及到搜索中/系统中的所有文件和/数据文件系统,并删除每个发现的物品。 免责声明:小心(测试模拟器上进行第一次)使用。
adb shell
# Switch to root
su -
# Search for all installed files using the fully-qualified app name
find /system /data -name \*com.sand.airdroid\*
...出现的文件(包括目录)的列表-每个文件,导致其通过用前缀它被删除rm -f
:
rm -r /data/media/0/Android/data/com.sand.airdroid
rm -r /data/data/com.sand.airdroid
rm -r /data/app-lib/com.sand.airdroid-1
rm -r /data/app/com.sand.airdroid-1.apk
rm -r /data/dalvik-cache/data@app@com.sand.airdroid-1.apk@classes.dex
# Run the find command again to ensure nothing was missed
find /system /data -name \*com.sand.airdroid\*
# exit root
exit
# exit Android shell
exit
为了让Android的清理其文件,重启设备。
adb reboot
一旦设备重新启动,应用程序可以与卸载uninstall
命令来完成清理。
adb uninstall com.sand.airdroid
“亚行外壳时禁用用户PKGNAME”将取消激活DeviceAdmin和冻结的应用程序。 它不会再被激活即使启用应用程序。
(测试三星Galaxy S7 8.0奥利奥)
你无法卸载应用程序直接将其设置为管理员。首先你必须禁用管理模式,那么你将能够卸载应用程序。 删除管理员主动先运行此命令
adb shell dpm remove-active-admin com.kiosk.example/com.kiosk.example.MyDeviceAdminReceiver
(com.kiosk.example)是包的名字换成你自己的,并MyDeviceAdminReceiver是接收器名称。 当此命令给成功,那么你可以卸载应用程序。 或运行此命令卸载
adb uninstall com.kiosk.example
。