Sha*_*one 8 shell android uninstall administrator adb
我正在尝试从shell卸载应用程序,但是此应用程序作为设备管理员运行,因此shell> adb uninstall com.example.test无法正常工作.
如何从shell禁用设备管理员?
CJB*_*JBS 16
通常,通过"设备管理员"屏幕撤消管理访问权限,然后卸载应用程序.在随后的示例中,我将假设airdroid(com.sand.airdroid)已配置为设备管理员,并将被卸载.因此,要定制此示例,请com.sand.airdroid使用您自己的应用名称替换实例.
要访问设备管理员,请导航:设置 → 安全性 → 设备管理员.然后,取消选中要取消设置管理访问权限的应用程序.
也可以使用shell打开这个活动:
adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"
Run Code Online (Sandbox Code Playgroud)
完成此操作后,可以正常卸载活动:
adb uninstall com.sand.airdroid
Run Code Online (Sandbox Code Playgroud)
确实存在蛮力方法.它涉及搜索/ system和/ data文件系统中的所有文件,并删除每个找到的项目.免责声明:谨慎使用(首先在模拟器上测试).
adb shell
# Switch to root
su -
# Search for all installed files using the fully-qualified app name
find /system /data -name \*com.sand.airdroid\*
Run Code Online (Sandbox Code Playgroud)
...出现一个文件列表(包括目录) - 对于每个文件,通过在前面添加一个文件来删除它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
Run Code Online (Sandbox Code Playgroud)
要允许Android清理其文件,请重新启动设备.
adb reboot
Run Code Online (Sandbox Code Playgroud)
设备重新启动后,可以使用uninstall命令卸载应用程序以完成清理.
adb uninstall com.sand.airdroid
Run Code Online (Sandbox Code Playgroud)
adb shell pm disable-user (package name)将停用 DeviceAdmin 并禁用该应用程序。即使您再次启用该应用程序,它也不会被激活。