有时候我们需要软件实现静默安装,但是Android并未提供相应的API,然而我们知道命令行安装android的时候是不会提示用户的,所有要实现这个功能,我们就可以从执行命令行的方式实现。android提供的安装命令是
pm install package
ps : pm install /sdcard/android.apk
但是执行这个命令需要前提条件,需要是系统级应用或者具有ROOT权限。我们先介绍通过ROOT权限的方式执行。
1,通过获取ROOT权限静默安装APK
看代码:
new Thread() {
public void run() {
Process process = null;
OutputStream out = null;
InputStream in = null;
try {
// 请求root
process = Runtime.getRuntime().exec("su");
out = process.getOutputStream();
// 调用安装
out.write(("pm install -r " + currentTempFilePath + "\n").getBytes());
in = process.getInputStream();
int len = 0;
byte[] bs = new byte[256];
while (-1 != (len = in.read(bs))) {
String state = new String(bs, 0, len);
if (state.equals("Success\n")) {
//安装成功后的操作
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.flush();
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}.start();
当然也可以通过NDK实现,代码就不放了。
第二种方式,同样是通过pm命令实现,不用请求ROOT,但是需要系统的签名。这里附上模拟器的的签名,用这个签名的APK安装在模拟器上可以实现不请求ROOT而静默安装的效果。
//首先在manifest标签加入
android:sharedUserId="android.uid.system"
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
new Thread() {
public void run() {
Process process = null;
InputStream in = null;
try {
// 请求root
process = Runtime.getRuntime().exec("pm install -r " + currentTempFilePath + "\n");
in = process.getInputStream();
int len = 0;
byte[] bs = new byte[256];
while (-1 != (len = in.read(bs))) {
String state = new String(bs, 0, len);
if (state.equals("Success\n")) {
//安装成功后的操作
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}.start();
分享到:
相关推荐
"Android 静默安装实现方法" Android 静默安装是指在 Android 设备上绕过安装程序时的提示窗口,直接在后台安装应用程序的方法。这种方法需要设备有 ROOT 权限,否则无法实现静默安装。 Android 静默安装的实现...
在Android 7.0(Nougat)版本中,虽然默认对非root用户的静默安装进行了限制,但仍然有一些方法可以实现这一目标。本文将详细介绍在具有system权限的非root环境下,实现静默安装和静默卸载的多种方式。 1. ADB...
静默安装使用方法详解 静默安装是一种特殊的安装方式,它可以在不需要用户交互的情况下安装驱动程序或软件。这种安装方式非常有用, especialmente 在需要批量安装驱动程序或软件的情况下。 在 Windows 操作系统中...
通过解压并导入Android Studio,你就可以查看和运行代码,进一步理解静默安装的实现细节。 总之,静默安装是Android系统提供的一种功能,通过`PackageInstaller`接口可以实现后台、无提示的安装操作。它对于批量...
在Android系统中,静默安装(Silent Installation)和智能安装(Smart Installation)是两种用于自动化和批量处理应用程序安装的方法,特别适用于企业级部署或测试环境。这些技术可以帮助开发者和管理员更有效地管理...
本文将详细探讨在Android 4.4(KitKat)平台上实现静默安装的应用程序的方法。 首先,要实现静默安装,你需要具备设备的管理员权限。在Android中,通过Device Administration API,开发者可以创建设备管理器应用,...
如果用过一些手机助手的朋友都知道,手机助手下载其他软件的更新程序后会自动静默更新。APK静默安装是指实现了在APK文件...压缩包里有两种实现apk静默安装的方法说明和详细的操作文档与源码。 涉及模块&技术 静默安装
在IT行业中,静默安装(Silent Installation)是一种在用户无须交互参与的情况下自动完成软件安装的方法。这对于系统管理员批量部署软件或者自动化脚本执行安装任务时尤其方便。"静默安装参数生成"就是指创建特定的...
**静默安装的方法:** 1. **Adb命令**:通过连接设备到电脑,使用adb shell命令执行`pm install -t -s /path/to/your.apk`,其中`-t`表示允许测试签名,`-s`表示存储在外部存储卡上,`/path/to/your.apk`为APK路径。...
此外,静默安装违反Google的Play Store政策,因此这种方法通常用于开发和测试环境,而非面向普通用户的发布版本。 在提供的压缩包文件`AutoInstaller-master`中,可能包含了实现这一功能的完整代码库或示例。解压后...
导入jar包。即可使用PackAgeManager的installPackage方法进行静默安装。注意复写回调来回馈安装结果。
3. **编程实现**:对于批量安装或自动化场景,可以编写脚本或程序,利用Android的Java API或JNI(Java Native Interface)来实现静默安装。例如,通过反射调用PackageInstaller接口的install方法。 4. **利用root...
一、静默安装实现步骤 1. 获取安装权限:首先,你需要确保你的应用拥有`INSTALL_PACKAGES`权限,这通常需要在AndroidManifest.xml中添加如下代码: ```xml ``` 注意,这个权限是系统级别的,一般的应用无法获取,...
具体使用方法可能需要查看文件的文档或直接尝试运行,并结合相关的命令行参数来实现静默安装。 总之,静默安装是IT领域中一个重要的自动化工具,尤其在批量部署和测试中具有显著优势。通过了解其原理、应用场景以及...
**dm数据库静默安装方法详解** DM数据库,全称为达梦数据库管理系统,是一款由中国达梦公司研发的高性能、高安全性的国产关系型数据库。在IT领域,静默安装(Silent Installation)是一种自动化安装方式,它能显著...
提供的压缩包包含了作者在Android 5.0系统上测试的静默安装和智能安装的实现。由于每个Android版本和设备都有所不同,代码可能需要针对具体环境进行调整。开发者可以通过阅读代码、运行并分析日志来学习和调试相关...
以下是实现Android APK静默安装的方法: 首先,要进行静默安装,你需要拥有设备的管理员权限。这是因为从Android 4.4(KitKat)版本开始,系统对应用程序的安装进行了限制,非系统应用无法在后台静默安装其他应用,...