我认为立即卸载应用程序并不是解决方案,你必须找出根目录所在位置,并注意Magisk Manager应用程序,它可以绕过根检测。你可以尝试使用Rootbeer、roottools或创建根类进行根检测。使用Rootbeer来检测Magisk Manager
//root example you can call this class.
public static boolean findBinary(String binaryName) {
boolean found = false;
if (!found) {
String[] places = { "/sbin/", "/system/bin/", "/system/xbin/",
"/data/local/xbin/", "/data/local/bin/",
"/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/",
"/system/app/Superuser.apk", "/sbin/su", "/sbin/su/", "/system/bin/su","/system/bin/su/",
"/system/xbin/su", "/system/xbin/su/", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su",
"/system/bin/failsafe/su", "/data/local/su", "/su/bin/su", "/su/",
"/data/local/xbin/",
"/system/bin/.ext/",
"/system/bin/failsafe/",
"/system/sd/xbin/",
"/su/xbin/",
"/su/bin/",
"/magisk/.core/bin/",
"/system/usr/we-need-root/",
"/system/xbin/",
"/system/su","/system/bin/.ext/.su","/system/usr/we-need-root/su-backup",
"/system/xbin/mu",
"/system/su/","/system/bin/.ext/.su/","/system/usr/we-need-root/su-backup/",
"/system/xbin/mu/"};
for (String where : places) {
if (new File(where + binaryName).exists()) {
found = true;
break;
}
}
}
return found;
}
private static boolean isRooted() {
return findBinary("su");
}
使用此代码卸载应用程序(已测试)
Intent intent=new Intent(Intent.ACTION_DELETE);
String packageName = "yourpackagename";
intent.setData(Uri.parse("package:"+packageName));
startActivity(intent);
adb pull
从设备上拉取APK文件,尽管我最近几年没有这样做的需要。 - CommonsWare