android免root静默卸载

1.静默卸载实现:

 /** * 静默卸载app * * @param context * @param packageName app的包名 * @throws IOException * @throws InterruptedException */ public static void uninstallApp(Context context, String packageName) throws IOException, InterruptedException { List<PackageInfo> packageInfos = context.getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES); for (PackageInfo packageInfo1 : packageInfos) { if (packageName.equals(packageInfo1.packageName)) { String suPath = "/system/xbin/su"; File file = new File(suPath); if (!file.exists()) { suPath = "/system/bin/su"; } Process process = Runtime.getRuntime().exec(suPath); String cmd = "pm uninstall " + packageName + "n" + "exitn"; process.getOutputStream().write(cmd.getBytes()); process.waitFor(); break; } } }

2.静默安装实现:

/** * 静默安装app * * @param filePath * @throws IOException * @throws InterruptedException */ public static void installApp(String filePath) throws IOException, InterruptedException { String suPath = "/system/xbin/su"; File file = new File(suPath); if (!file.exists()) { suPath = "/system/bin/su"; } Process process = Runtime.getRuntime().exec(suPath); String cmd = "pm install -r " + filePath + "n" + "exitn"; process.getOutputStream().write(cmd.getBytes()); process.waitFor(); }

最后加上重启命令:

 /** * 重启系统 * * @return */ public static boolean reboot() { try { String suPath = "/system/xbin/su"; File file = new File(suPath); if (!file.exists()) { suPath = "/system/bin/su"; } Process process = Runtime.getRuntime().exec(suPath); String cmd = "rebootnexitn"; process.getOutputStream().write(cmd.getBytes()); return true; } catch (IOException error) { return false; } }

注意卸载和安装需要在子线程中执行;如果单纯关机则用“reboot -p”命令。

本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023-12-06 16:36
下一篇 2023-12-07 08:55

相关推荐