要求在安装APK应用时不显示权限信息和安装过程。

Google的安全策略要求任何应用应该提示APK安装包的权限,对于一些内置特定厂商应用,可以跳过安装过程的信息加快安装,或者运营商强制安装。

这个功能的实现在src/package/app/PackageInstaller中,需要修改。添加静默安装的功能。又兼容正常安装。

实现的分析

在窗口中点击一个APK时,触发单击事件,PackageInstaller接收系统服务PackageManagerService传来的intent信息,传来的Intent信息中有APK的一些参数。实现的关键是区分一般APK和特定APK。

通过传给PackageManagerService的intent中添加特别的参数,PackageInstaller接收后进行判断,进行特别的隐藏安装流程。这个实现只能通过程序调用的方式安装。

安装过程的信息窗口在PackageInstallActivity.java中实现的。安装过程的信息窗口有4个:需要实现一个PakkageInstallActivityHide.JAVA的文件,去掉下面的dialog和窗口

安装权限确认窗口:installPermissionConfirm

安装进度条:installProgress

安装结果窗口:installResult

安装错误提示对话框

文件列表大概如下:

InstallAppProgress.java

PackageInstallerActivity.java

+PackageInstallerActivityHide.java

PackageUtil.java

UninstallAppProgress.java

UninstallerActivity.java

+UninstallerActivityHide.java

具体实现

1 在Androidmainfest.xml声明一个特定的intent:android.intent.action.VIEW.HIDE,由PackageInstallActivityHide.java来接受

注意这里的两点:

把原先的

改成  ,

把android:theme="@android:style/Theme.Holo.DialogWhenLarge"主题的显示放在每一个

隐藏安装的PakkageInstallActivityHide

android:theme="@android:style/Theme.NoDisplay"只能是这个,没有窗口

内容如下:

2 实现PakkageInstallActivityHide.java,UninstallerActivityHide.java。 只需把PakkageInstallActivity.java修改去掉dialog和对话框。

3安装程序调用者发一个上面定义的intent即可。如下例子,静默安装/sdcard/hello.apk

卸载的方法类似。

Intent install_hide_intent = new Intent("android.intent.action.VIEW.HIDE");

install_hide_intent .setDataAndType(Uri.parse("file:///sdcard/hello.apk"),

"application/vnd.android.package-archive");

startActivityForResult(install_hide_intent, INSTALL_RUSULT);

4注意,这个方法需要PackageInstall这个apk必须与系统一起编译。这个apk在/system/app/目录下面;android.intent.action.VIEW.HIDE 这个静默安装的接口需要开放给第三方。

android 静默暗转_Android PackageInstaller 静默安装的实现相关推荐

  1. android 静默暗转_Android静默安装

    想要做到静默安装,其实就是要有权限执行pm install命令.准备工作其实就两步: 1.获取执行权限 2.执行命令 我们首先介绍第二步,如何执行pm install命令: 关键代码其实就一句: Ru ...

  2. android 活体识别人脸动作活体静默活体Demo源码实现讲解

    android 活体识别人脸动作活体静默活体Demo源码实现讲解 这里说活体是基于单目摄像头活体,适合所有普通安卓Android 单目摄像头的手机,双目的需要硬件支持,这里不讲述 . 百度网盘体验地址 ...

  3. Android PackageManagerService 总结(一)应用市场下载安装apk流程

    前言: 本篇文章是对系统包安装流程的总结,基于Android12 上 com.android.packageinstaller 源码的分析,第三方应用商城(华为商城,小米商城,应用宝,豌豆荚,酷安等) ...

  4. 使用Android Accessibility实现免Root自动批量安装功能

    对于国内Android设备,应用的自动批量安装/更新一直是一个痛点,在之前,第三方应用商店通常要求设备Root,然后调用系统的PackageManagerService命令行来实现后台安装.最近,豌豆 ...

  5. 禁止安装第三方应用(可对某个应用特殊处理),动态通过暗码改变是否能够安装第三方应用。拨号中输入*#数字#进入指定界面。

    禁止安装第三方应用(可对某个应用特殊处理),动态通过暗码改变是否能够安装第三方应用: o版本 主要是在frameworks/base/services/core/java/com/android/se ...

  6. android应用市场点击下载APK安装详解

    Android系统启动篇 1,<android系统启动流程简介> 2,<android init进程启动流程> 3,<android zygote进程启动流程> 4 ...

  7. [Android Studio 权威教程]Windows下安装Android Studio

    从AS 0.5版本号開始使用.也是AS的推行者,在ApkBus公布的第一篇Android Studio Perview 2 获得了50K的浏览,1800多条回复下载. 在我的[Android Stud ...

  8. android安全攻防实践_Android安全攻防实战 PDF 下载

    相关截图: 资料简介: Android是目前比较主流的移动设备操作系统,占据了全球近84%的市场份额.因此,Android系统中的安全问题也就变得十分重要. 本书通过大量极富针对性的实验,通过对常见的 ...

  9. Android开发学习总结(四)——Eclipse在线安装ADT插件

    Android开发学习总结(四)--Eclipse在线安装ADT插件 要想使用Eclipse开发Android应用,首先要安装一个ADT插件,在此记录一下在Eclipse中采用在线安装的方式ADT插件 ...

  10. 【安卓学习之常见问题】 Google Play问题-Android 4.4.4平板电脑不能安装 -- (Your device isn‘t compatible with this version)

    █ [安卓学习之常见问题] Google Play问题-Android 4.4.4平板电脑不能安装 – (Your device isn't compatible with this version) ...

最新文章

  1. 对代理ARP技术的误读、无法完成代理ARP实验的故障分析
  2. spark并发读mysql_spark jdbc(mysql) 读取并发度优化
  3. js_调试_01_14 个你可能不知道的 JavaScript 调试技巧
  4. 优朋普乐大数据_优朋普乐黑维炜:互动电视市场已进入成熟发展期
  5. LeetCode 287. 寻找重复数
  6. 在吗,支付宝土味情歌撩到你了吗?网友:撩到了,好酸
  7. 3-8《Ruby元编程》第二章对象模型
  8. LeetCode 48 旋转图像
  9. python绘制一棵樱花树
  10. ASP.NET对IIS中的虚拟目录进行操作
  11. Kafka 多种跨 IDC 灾备方案调研对比
  12. 高通QCA9531方案定制开发主板300M 2.4G无线模块面板AP wifi路由模块 用的是什么网络变压器
  13. FPGA学习篇之计数器
  14. 见习后的感想之关于献血
  15. java 苹果vcf解析_iOS开发- 生成/解析.vcf文件
  16. 布同:网络服务器的结构设计
  17. Android 第三方 ROM
  18. dubbokeeper-moniter部署指南
  19. 解决DoubanFM第三方客户端UI线程与工作线程交互问题
  20. 基于权证交易、隐私保护模型的社交概念产品设计

热门文章

  1. samba服务testparm时提示rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)处理办法
  2. 矩阵连乘问题算法思想_算法分析与设计——矩阵连乘问题
  3. Origin—使用基底线来拟合曲线的各个峰值
  4. 以锅炉安全为例,台账管理在安全建设中的作用
  5. MATLAB关系运算符和逻辑运算符
  6. 怎么写安卓手机脚本_想要挣钱创收 那就用脚本操作手机群控软件啊
  7. 西门子、安川、三菱伺服技术完全精通系列丛书!
  8. 用FCM函数实现模糊C均值聚类算法
  9. 更好的图片压缩途径: WebP探索之路
  10. UML类图画法全程解析