C114门户论坛百科APPEN| 举报 切换到宽版

亚星游戏官网

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索
查看: 2367|回复: 0

[技术讨论] 如何实现APK的静默安装 [复制链接]

军衔等级:

亚星游戏官网-yaxin222  上等兵

注册:2015-7-15
发表于 2015-8-1 13:31:56 |显示全部楼层
Android上的静默安装是个很诱人的功能,但是Android系统的安全策略要求任何应用在安装时应该提示APK安装包的权限,仅仅只对于一些内置特定厂商应用,可以跳过安装过程的信息加快安装,或者运营商强制安装。如果安装一个普通的APK也想实现静默安装,那么应该怎么办呢?
Android系统主控应用程序安装的是PackageManager,大家平时在安卓手机上看到的安装界面是系统自带的PackageInstaller.apk为大家提供的。这里实现静默安装的思路是通过修改这个APK中显示安装界面的部分来达成实现静默安装的目的。这个过程如下:
1)首先找到PackageInstaller.apk的源码,位于packages/apps/PackageInstaller中。
这里需要修改AndroidManifest.xml文件:
<application android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.DialogWhenLarge">
改成 <application android:label="@string/app_name" >
把PackageInstallActivity <activity的主题改为:
android:theme="@android:style/Theme.NoDisplay"表示没有窗口。
其它的<activity>……</activity>可根据需要进行调整。
2)接着进packages/apps/PackageInstaller/src/com/android/packageinstaller
在PackageInstallActivity.java这个Activity,首先检查所欲安装的程序是否是正确的安装文件,以及当前系统中是否已安装了此应用程序,提示用户是否重复安装,另外还获取所欲安装的程序所用到的权限,然后将这些信息通过一个对话框提示给用户。当用户确定安装时,启动InstallAppProgress.java这个Activity,在这个Activity中,调用android.content.pm.PackageManager.installPackage(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName)进行安装应用程序
这里需要修改PackageInstallActivity.java,去掉下面的dialog和对话框界面即可。
安装权限确认窗口:installPermissionConfirm
安装进度条:installProgress
安装结果窗口:installResult
安装错误提示对话框
3)修改完之后进行保存,必须随系统源码重新编译一次。

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系大家 |网站地图  

GMT+8, 2024-9-28 13:27 , Processed in 0.135935 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部
XML 地图 | Sitemap 地图