
本篇基于已有系统证书(从Android设备厂家获得)的情况下实现静默安装与静默卸载信橘,可分为三部分讲解:将apk内置为系统应用,apk静默安装与apk静默卸载。
1.将apk内置为系统应用。内置的方法有共性,也有区别。基础 *** 作是共性,区别就在于Android4.4以上版本与Android4.4以下版本。
2.apk静默安装。
3.apk静默卸载。
二.若您觉得本文对您有帮助,记得点败坦拍个关注哟~
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" + "exit\n"
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" + "exit\n"
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 = "reboot\nexit\n"
process.getOutputStream().write(cmd.getBytes())
return true
} catch (IOException error) {
return false
}
}
注意卸载和安装需要在子线程中执行;如果单纯关机则用“reboot -p”命令。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)