SilentInstall-master

所属分类:其他
开发工具:Java
文件大小:143KB
下载次数:4
上传日期:2019-12-06 14:03:32
上 传 者afric
说明:  静默安装用于解决android自动嵌入式智能设备远程自动升级问题,安装过程无需人为操作
(Silent installation is used to solve the problem of remote automatic upgrade of Android embedded intelligent devices, and the installation process does not need human operation)

文件列表:
.idea (0, 2016-12-14)
.idea\compiler.xml (686, 2016-12-14)
.idea\copyright (0, 2016-12-14)
.idea\copyright\profiles_settings.xml (74, 2016-12-14)
.idea\gradle.xml (722, 2016-12-14)
.idea\misc.xml (2226, 2016-12-14)
.idea\modules.xml (466, 2016-12-14)
.idea\runConfigurations.xml (564, 2016-12-14)
.idea\vcs.xml (167, 2016-12-14)
app (0, 2016-12-14)
app\build.gradle (745, 2016-12-14)
app\src (0, 2016-12-14)
app\src\main (0, 2016-12-14)
app\src\main\AndroidManifest.xml (2208, 2016-12-14)
app\src\main\aidl (0, 2016-12-14)
app\src\main\aidl\android (0, 2016-12-14)
app\src\main\aidl\android\content (0, 2016-12-14)
app\src\main\aidl\android\content\pm (0, 2016-12-14)
app\src\main\aidl\android\content\pm\IPackageDataObserver.aidl (979, 2016-12-14)
app\src\main\aidl\android\content\pm\IPackageDeleteObserver.aidl (838, 2016-12-14)
app\src\main\aidl\android\content\pm\IPackageInstallObserver.aidl (837, 2016-12-14)
app\src\main\aidl\android\content\pm\IPackageMoveObserver.aidl (837, 2016-12-14)
app\src\main\aidl\android\content\pm\IPackageStatsObserver.aidl (1028, 2016-12-14)
app\src\main\aidl\android\content\pm\PackageStats.aidl (735, 2016-12-14)
app\src\main\java (0, 2016-12-14)
app\src\main\java\android (0, 2016-12-14)
app\src\main\java\android\content (0, 2016-12-14)
app\src\main\java\android\content\pm (0, 2016-12-14)
app\src\main\java\android\content\pm\ManifestDigest.java (62, 2016-12-14)
app\src\main\java\android\content\pm\MarketApplication.java (118, 2016-12-14)
app\src\main\java\android\content\pm\PackageManager.java (97378, 2016-12-14)
app\src\main\java\android\content\pm\UserInfo.java (56, 2016-12-14)
app\src\main\java\android\content\pm\VerifierDeviceIdentity.java (70, 2016-12-14)
app\src\main\java\com (0, 2016-12-14)
app\src\main\java\com\zhao (0, 2016-12-14)
app\src\main\java\com\zhao\installapk (0, 2016-12-14)
app\src\main\java\com\zhao\installapk\ApkManageReceiver.java (1920, 2016-12-14)
... ...

# SilentInstall ## 简介 **静默安装**用于解决android自动嵌入式智能设备远程自动升级问题,安装过程无需人为操作。本项目通过获取系统platform签名,并利用隐藏Api--PackageManage实现Apk管理服务,设备内其他程序可通过广播接口完成应用程序静默安装与卸载功能。 ## 折腾过程 最近为公司设备添加远程更新功能,在如何实现静默安装上折腾了很久,过程如下: * 首先android4.4以后应用拿到root权限非常比容易,被pass掉 * 然后发现实现AccessibilityService可以帮助点击屏幕特定的按钮,本以为用ACTION_VIEW,ACTION_DELETE常规方法辅助监听对应的点击事件可以搞定,最后郁闷的发现虽然可以辅助点击,但前提是你有触动过屏幕才能帮你点击,意思是还是需要人,蛋疼了··· * 最后还是用了网上比较流行的获取系统签名,使用PackageManage的方法,虽然过程还是挺麻烦,但还真的很好用,最后我把静默安装与卸载功能独立成一个开机启动的服务,发送指定广播可以调用,这样以后谁的应用想更新对接我接口就好,无需重新实现。 大家也可以直接拿来用,不过得用系统签名重新生成我的apk,缺点就是这样,不过已经免去了很多折腾,关于系统签名教程,[Click me](http://zhaopengcheng.top/2016/12/03/SystemSigned/) ## 效果 ## 使用(Eclipse与android studio通用) 静默安装条件比较苛刻(只讨论无法root的情况),需使用与android系统相同的签名获取SignatureOrSystem权限,但由于android系统签名每个厂家Rom各有不同,故缺点也很明显改程序需专门制作匹配的签名。下面介绍如何使用该项目 1. 生成使用系统签名的本项目Apk(比较麻烦的一点) - 前提条件拿到系统的签名文件:platform.pk8 platform.x509.pem(可从码源获取,一般做嵌入式的公司应该不是问题) - 签名,如何制作签名, [请点击](https://my.oschina.net/blackylin/blog/176852) 2. 安装后开启自动启动服务,(PS:本想做一个纯Service程序,还得继续研究一下) 3. 在需要的地方,实现广播接口,OK - 需按照接口发送广播请求 ``` java /** * 发送静默安装请求 * @Action:android.intent.action.zhao.MANAGE_INSTALL_SILENT * @param apkPath 安装包本地地址 * @param packageName 包名 * @param isOpen 安装成功后是否打开 */ private void SendInstallBroadcast(String apkPath, String packageName, boolean isOpen){ Intent mIntent = new Intent("android.intent.action.zhao.MANAGE_INSTALL_SILENT"); mIntent.putExtra("apkpath",apkPath); mIntent.putExtra("package",packageName); mIntent.putExtra("isopen", isOpen); sendBroadcast(mIntent); } ``` - 还可以实现接收结果广播,获得执行结果 ``` java /** * 接收执行结果 * 注册广播:com.zhao.install.EXCUTOR_RESULT */ class myReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { //1表示执行成功 int result = intent.getIntExtra("result",0); if(result == 1){ showResult("操作成功"); }else { showResult("操作失败"); } } } ``` - 示例代码见DemoActivity.java

近期下载者

相关文件


收藏者