`

android静默安装的实现(turn)

 
阅读更多
有时候我们需要软件实现静默安装,但是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"

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无需root实现apk的静默安装

    Android的静默安装似乎是一个很有趣很诱人的东西,但是,用普通做法,如果手机没有root权限的话,似乎很难实现静默安装,因为Android并不提供显示的Intent调用,一般是通过以下方式安装apk: Intent intent = new ...

    android 7.0非root下 实现静默安装 多种方式

    在Android 7.0(Nougat)版本中,虽然默认对非root用户的静默安装进行了限制,但仍然有一些方法可以实现这一目标。本文将详细介绍在具有system权限的非root环境下,实现静默安装和静默卸载的多种方式。 1. ADB...

    Android 实现静默安装并自动重启(需要root)

    本篇文章将深入探讨如何在Android设备上实现静默安装以及在安装完成后自动重启设备。 首先,我们需要理解root权限的概念。在Android系统中,root权限类似于Linux系统中的超级用户权限,拥有它可以访问和修改系统...

    Android 无需root实现APK静默安装

    使用Android5.0的环境编译的,不同版本之间,aidl文件可能会有差异,具体还需参照Android...详细参考我的博客文章《Android 无需root实现APK静默安装》:http://blog.csdn.net/yyh352091626/article/details/50533137

    android 静默安装代码

    本篇将深入探讨如何实现Android的静默安装,并基于源码进行改造。 首先,理解Android的安装流程至关重要。当一个APK文件被传递给`PackageInstaller`服务时,系统会执行一系列步骤,包括权限检查、签名验证、安装...

    Android10.0 静默安装、卸载接口.zip

    在Android系统中,静默安装...总之,Android 10.0对静默安装和卸载接口的调整是为了加强安全控制,对于开发者来说,这意味着在设计和实现这类功能时需要更加谨慎,遵循最佳实践并充分考虑用户的隐私和系统的安全性。

    Android4.4静默安装应用的一种实现方式

    本文将详细探讨在Android 4.4(KitKat)平台上实现静默安装的应用程序的方法。 首先,要实现静默安装,你需要具备设备的管理员权限。在Android中,通过Device Administration API,开发者可以创建设备管理器应用,...

    Android批量静默安装程序,无权限提示框

    在Android系统中,批量静默安装程序是一种自动化部署应用的方式,尤其在企业级环境中非常有用。这种方式能够避免在安装过程中出现用户交互界面,比如权限请求提示框,从而提高效率。以下是对这个主题的详细说明: 1...

    android 静默安装和普通安装版本更新

    在Android系统中,静默安装需要特定的权限(如`INSTALL_PACKAGES`),一般只有系统应用或拥有系统签名的应用才能实现。对于版本更新,静默安装可以实现无缝升级,提高用户体验,尤其适用于不需要用户交互的内部测试...

    安卓安装卸载相关-android静默安装和智能安装的实现本人测试的5.0的系统.rar

    提供的压缩包包含了作者在Android 5.0系统上测试的静默安装和智能安装的实现。由于每个Android版本和设备都有所不同,代码可能需要针对具体环境进行调整。开发者可以通过阅读代码、运行并分析日志来学习和调试相关...

    Android静默安装和自动安装的演示代码,SlinetInstallTest

    在Android系统中,静默安装(Silent Install)和自动安装是两种特殊的安装方式,它们主要用在批量部署或者后台服务中,以便在用户无感知的情况下进行应用的部署和更新。这里我们将深入探讨这两个概念,并结合提供的...

    Android静默安装和自启动

    3. **编程实现**:在Android应用中,可以通过JNI(Java Native Interface)或者SystemServer级别的服务来执行adb命令,从而实现静默安装。需要注意的是,这通常需要对Android源码有一定程度的了解,并且可能需要root...

    Android静默安装

    本文将详细介绍Android的静默安装原理、实现方式以及注意事项。 1. **静默安装原理** 静默安装的核心在于绕过用户界面,直接调用Android系统的安装API。在Android系统中,这个API是`PackageInstaller`类中的`...

    android 5.1静默安装、卸载patch

    支持android5.1静默安装、卸载代码,封装在PackageInstaller模块内,在执行时可能需要修改部分framework代码使功能正常使用。

    android应用后台安装,静默安装的代码实现方法

    总之,静默安装是Android系统提供的一种功能,通过`PackageInstaller`接口可以实现后台、无提示的安装操作。它对于批量部署应用或者自动化测试场景非常有用,但在使用时要确保遵循Android的权限机制和最佳实践。

    Android静默安装Demo

    本篇将详细讲解如何通过反射机制实现Android的静默安装和卸载功能,并探讨其他两种方法。 首先,静默安装的基本原理是利用Android系统的Intent接口,通过隐式启动一个特定的安装Intent来实现。但是,从Android 6.0...

    android 静默安装

    4. **自定义ROM和权限**:在部分自定义的Android ROM中,可能会有更开放的API或者权限,允许没有设备管理器权限的普通应用也能实现静默安装,但这通常存在安全风险,不推荐在公开的、未经用户许可的情况下使用。...

    Android 静默安装和静默卸载(SilentInstaller)

    详情见:Android 静默安装和静默卸载(系统层) http://blog.csdn.net/zhouyuanjing/article/details/78507606 安装: Intent intent = new Intent("android.intent.action.SILENT_PACKAGE_INSTALL"); intent....

    Android静默 安装卸载应用程序文档

    在Android系统中,静默安装和卸载应用程序是一种无需用户交互的方式,通常用于自动化测试、设备管理或系统级服务。这种方式涉及到对系统API的深度利用,因为某些接口是隐藏的,需要通过Android系统的源码来访问。...

Global site tag (gtag.js) - Google Analytics