APP流氓大法之apk 静默安装

老大要我弄个自动更新,要用到静默安装,网上找到了些大拿的代码,我拿去改吧改吧,先贴出来:

Java代码  

  1. /**
  2. * 软件静默安装
  3. * @param apkAbsolutePath apk文件所在路径
  4. * @return 安装结果:获取到的result值<br>
  5. *
  6. * 如果安装成功的话是“
  7. * pkg: /data/local/tmp/Calculator.apk  /nSuccess”,<br>
  8. * 如果是失败的话,则没有结尾的“Success”。
  9. */
  10. public String silentInstall(String apkAbsolutePath) {
  11. String[] args = { "pm", "install", "-r", apkAbsolutePath };
  12. String result = "";
  13. ProcessBuilder processBuilder = new ProcessBuilder(args);
  14. Process process = null;
  15. InputStream errIs = null;
  16. InputStream inIs = null;
  17. try {
  18. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  19. int read = -1;
  20. process = processBuilder.start();
  21. errIs = process.getErrorStream();
  22. while ((read = errIs.read()) != -1) {
  23. baos.write(read);
  24. }
  25. baos.write("/n".getBytes());
  26. inIs = process.getInputStream();
  27. while ((read = inIs.read()) != -1) {
  28. baos.write(read);
  29. }
  30. byte[] data = baos.toByteArray();
  31. result = new String(data);
  32. } catch (IOException e) {
  33. e.printStackTrace();
  34. } catch (Exception e) {
  35. e.printStackTrace();
  36. } finally {
  37. try {
  38. if (errIs != null) {
  39. errIs.close();
  40. }
  41. if (inIs != null) {
  42. inIs.close();
  43. }
  44. } catch (IOException e) {
  45. e.printStackTrace();
  46. }
  47. if (process != null) {
  48. process.destroy();
  49. }
  50. }
  51. return result;
  52. }

别急,没完,记得加权限呢:

Java代码  

  1. <!-- 以下是静默安装apk所需要到权限 -->
  2. <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
  3. <uses-permission android:name="android.permission.DELETE_PACKAGES" />
  4. <uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
  5. <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
  6. <uses-permission android:name="android.permission.READ_PHONE_STATE" />

我粘贴过去,哇靠,好多红茶茶~怎么回事,鼠标移上去一看,

Java代码  

  1. permission is only granted to system apps

奇怪类,我这个就是系统应用阿~~找了好久,听见有个声音说要clean下,于是,我clean了一下,

挖靠!@果然没有红茶茶类~后来不知怎么改了下mainfest,又红茶茶类,我又clean了一下,竟然还有用!所以,以后出错了记得先clean下哦。当然,你要是布局文件有错到话那就没办法了,你需要先让布局文件到错误消失掉才能clean。

时间: 2024-11-10 14:13:30

APP流氓大法之apk 静默安装的相关文章

apk 静默安装

老大要我弄个自动更新,要用到静默安装,网上找到了些大拿的代码,我拿去改吧改吧,先贴出来: Java代码   /** * 软件静默安装 * @param apkAbsolutePath apk文件所在路径 * @return 安装结果:获取到的result值<br> * * 如果安装成功的话是“ * pkg: /data/local/tmp/Calculator.apk  /nSuccess”,<br> * 如果是失败的话,则没有结尾的“Success”. */ public Str

Android 无需root实现apk的静默安装

转载请注明出处:http://blog.csdn.net/yyh352091626/article/details/50533137 Android的静默安装似乎是一个很有趣很诱人的东西,但是,用普通做法,如果手机没有root权限的话,似乎很难实现静默安装,因为Android并不提供显示的Intent调用,一般是通过以下方式安装apk: Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFi

Java代码实现APP普通安装卸载和静默安装卸载

两者差异 执行普通安装.卸载,将会弹出确认安装.卸载的提示框,与在文件管理器中打开APK文件实现安装.卸载相同. 执行静默安装.卸载,正常状态下,前台无任何反应,APP在后台完成安装和卸载.该功能一般也被称为"后台安装". 普通安装 核心代码: Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType( Uri.fromFile(new File(apkPath)), "application/

Android随笔之——静默安装、卸载

随笔之所以叫随笔,就是太随意了,说起来,之前的闹钟系列随笔还没写完,争取在十月结束之前找时间把它给写了吧.今天要讲的Android APK的静默安装.卸载.网上关于静默卸载的教程有很多,更有说要调用隐藏API,在源码下用MM命令编译生成APK的,反正我能力有限,没一一研究过,这里选择一种我试验成功的来讲. 静默安装.卸载的好处就是你可以偷偷摸摸,干点坏事什么的,哈哈~ 一.准备工作 要实现静默安装.卸载,首先你要有root权限,能把你的静默安装.卸载程序移动到system/app目录下. 1.用

Android静默安装及开机自启的简单实现

写在前面 [apk静默安装]是android应用的一个重要功能,一般用在app自动更新等方面.静默安装在android里面是指不需要界面或用户参与的app安装动作,且需要系统已获root权限.安装完成后一般通过接收广播的方式启动App服务. [app自启动]是常用功能,一般通过接收系统启动广播实现. 正文 1.被执行安装 app: a. 自定义权限 <permission android:name="app.permission.install" android:protecti

Oracle 11.2.0.4静默安装软件和创建数据库

在没有图形界面的情况时,安装Oracle数据库软件和创建数据库就只能使用命令行的方式进行. 本文假设安装的前提条件都已经配置好. 一.静默安装数据库软件 1.准备参数文件 这个参数文件是用于安装软件使用的,里边配置了需要安装的版本.语言.ORACLE_HOME等信息. 这个文件的模版在database/response目录下的db_install.rsp,文件中的各个参数作用参考http://docs.oracle.com/cd/E11882_01/em.112/e12255/oui3_resp

Android内核开发:浅析APK的安装过程

本文是<Android内核>开发系列文章的第十篇,上一阶段,我们重点学习和分析了Android系统的启动过程,那么,从本文开始,准备介绍一下如何从Android源码中添加.修改.删除系统级别的APP应用.作为开篇,我们先从简单的理论入手,介绍一下Android系统中的APK文件究竟是个什么东西?它是如何安装到系统中去的? 我们在学习和了解一项新事物的时候,最快速的方法往往是与已知的事物进行比较,因此,我们首先来简单聊一聊Windows应用程序的安装过程. 1.  一般Windows应用程序的安

apk的安装删除

1,签名: java -jar signapk.jar platform.x509.pem platform.pk8 DownloadProvider.apk DownloadProvider-sign.apk 2, adb connect 192.168.12.103 adb remount 3,apk安装(可以用adb push直接放置目录即可:或者用adb install): adb push DownloadProvider.apk /data/app adb install -f xx

Android apk的安装、卸载、更新升级(通过Eclipse实现静默安装)

一.通过Intent消息机制发送消息,调用系统应用进行,实现apk的安装/卸载 . (1) 调用系统的安装应用,让系统自动进行apk的安装 String fileName = "/data/data/com.zlc.ipanel.operate/FileOperate.apk";  Uri uri = Uri.fromFile(new File(fileName));  Intent intent = new Intent(Intent.ACTION_VIEW);  intent.se