从shell关闭DeviceAdmin?(Disable DeviceAdmin from shel

2019-07-05 13:06发布

我试图卸载从外壳的应用程序,但是该应用程序正在运行的设备管理员,因此shell> adb uninstall com.example.test没有工作。

如何禁用从外壳的设备管理?

Answer 1:

一般而言,管理访问是通过设备管理员屏幕撤销,然后应用程序被卸载。 在随后的实施例中,我将假设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


Answer 2:

“亚行外壳时禁用用户PKGNAME”将取消激活DeviceAdmin和冻结的应用程序。 它不会再被激活即使启用应用程序。

(测试三星Galaxy S7 8.0奥利奥)



Answer 3:

你无法卸载应用程序直接将其设置为管理员。首先你必须禁用管理模式,那么你将能够卸载应用程序。 删除管理员主动先运行此命令

adb shell dpm remove-active-admin com.kiosk.example/com.kiosk.example.MyDeviceAdminReceiver 

(com.kiosk.example)是包的名字换成你自己的,并MyDeviceAdminReceiver是接收器名称。 当此命令给成功,那么你可以卸载应用程序。 或运行此命令卸载

adb uninstall com.kiosk.example



文章来源: Disable DeviceAdmin from shell?