android 静默暗转_Android PackageInstaller 静默安装的实现
要求在安装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 静默安装的实现相关推荐
- android 静默暗转_Android静默安装
想要做到静默安装,其实就是要有权限执行pm install命令.准备工作其实就两步: 1.获取执行权限 2.执行命令 我们首先介绍第二步,如何执行pm install命令: 关键代码其实就一句: Ru ...
- android 活体识别人脸动作活体静默活体Demo源码实现讲解
android 活体识别人脸动作活体静默活体Demo源码实现讲解 这里说活体是基于单目摄像头活体,适合所有普通安卓Android 单目摄像头的手机,双目的需要硬件支持,这里不讲述 . 百度网盘体验地址 ...
- Android PackageManagerService 总结(一)应用市场下载安装apk流程
前言: 本篇文章是对系统包安装流程的总结,基于Android12 上 com.android.packageinstaller 源码的分析,第三方应用商城(华为商城,小米商城,应用宝,豌豆荚,酷安等) ...
- 使用Android Accessibility实现免Root自动批量安装功能
对于国内Android设备,应用的自动批量安装/更新一直是一个痛点,在之前,第三方应用商店通常要求设备Root,然后调用系统的PackageManagerService命令行来实现后台安装.最近,豌豆 ...
- 禁止安装第三方应用(可对某个应用特殊处理),动态通过暗码改变是否能够安装第三方应用。拨号中输入*#数字#进入指定界面。
禁止安装第三方应用(可对某个应用特殊处理),动态通过暗码改变是否能够安装第三方应用: o版本 主要是在frameworks/base/services/core/java/com/android/se ...
- android应用市场点击下载APK安装详解
Android系统启动篇 1,<android系统启动流程简介> 2,<android init进程启动流程> 3,<android zygote进程启动流程> 4 ...
- [Android Studio 权威教程]Windows下安装Android Studio
从AS 0.5版本号開始使用.也是AS的推行者,在ApkBus公布的第一篇Android Studio Perview 2 获得了50K的浏览,1800多条回复下载. 在我的[Android Stud ...
- android安全攻防实践_Android安全攻防实战 PDF 下载
相关截图: 资料简介: Android是目前比较主流的移动设备操作系统,占据了全球近84%的市场份额.因此,Android系统中的安全问题也就变得十分重要. 本书通过大量极富针对性的实验,通过对常见的 ...
- Android开发学习总结(四)——Eclipse在线安装ADT插件
Android开发学习总结(四)--Eclipse在线安装ADT插件 要想使用Eclipse开发Android应用,首先要安装一个ADT插件,在此记录一下在Eclipse中采用在线安装的方式ADT插件 ...
- 【安卓学习之常见问题】 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) ...
最新文章
- 对代理ARP技术的误读、无法完成代理ARP实验的故障分析
- spark并发读mysql_spark jdbc(mysql) 读取并发度优化
- js_调试_01_14 个你可能不知道的 JavaScript 调试技巧
- 优朋普乐大数据_优朋普乐黑维炜:互动电视市场已进入成熟发展期
- LeetCode 287. 寻找重复数
- 在吗,支付宝土味情歌撩到你了吗?网友:撩到了,好酸
- 3-8《Ruby元编程》第二章对象模型
- LeetCode 48 旋转图像
- python绘制一棵樱花树
- ASP.NET对IIS中的虚拟目录进行操作
- Kafka 多种跨 IDC 灾备方案调研对比
- 高通QCA9531方案定制开发主板300M 2.4G无线模块面板AP wifi路由模块 用的是什么网络变压器
- FPGA学习篇之计数器
- 见习后的感想之关于献血
- java 苹果vcf解析_iOS开发- 生成/解析.vcf文件
- 布同:网络服务器的结构设计
- Android 第三方 ROM
- dubbokeeper-moniter部署指南
- 解决DoubanFM第三方客户端UI线程与工作线程交互问题
- 基于权证交易、隐私保护模型的社交概念产品设计
热门文章
- samba服务testparm时提示rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)处理办法
- 矩阵连乘问题算法思想_算法分析与设计——矩阵连乘问题
- Origin—使用基底线来拟合曲线的各个峰值
- 以锅炉安全为例,台账管理在安全建设中的作用
- MATLAB关系运算符和逻辑运算符
- 怎么写安卓手机脚本_想要挣钱创收 那就用脚本操作手机群控软件啊
- 西门子、安川、三菱伺服技术完全精通系列丛书!
- 用FCM函数实现模糊C均值聚类算法
- 更好的图片压缩途径: WebP探索之路
- UML类图画法全程解析