/**
* 静默卸载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”命令。
一.轰隆一声雳响,我闪亮登察羡场。
本篇基于已有系统证书(从Android设备厂家获得)的情况下实现静默安装与静默卸载信橘,可分为三部分讲解:将apk内置为系统应用,apk静默安装与apk静默卸载。
1.将apk内置为系统应用。内置的方法有共性,也有区别。基础 *** 作是共性,区别就在于Android4.4以上版本与Android4.4以下版本。
2.apk静默安装。
3.apk静默卸载。
二.若您觉得本文对您有帮助,记得点败坦拍个关注哟~
各种以android硬件平台为基础的【公示屏】、【广告屏】等等,虽然很少有升级,但是不可避免腊漏的会遇到胡纳,而此类APP的使用场景,一般没人会去帮助你版本更新,点击安装,故而需要:静默安装。
1、确认安装包是否存在,并可读写
2、隐示启动:action和data的schema来控制d出安装工具类APP,然后点击安装...
3、升级完:BootReceiver 监听到Intent.ACTION_PACKAGE_REPLACED,然后自启动裤局没
静默安装apk接口,无需开放root,也无需system权限。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)