Android是如何判断APK是否不明来源的

1. 原生系统判断方法 

http://blog.csdn.net/xidiankk/article/details/49533245

根据这个分析,必要条件有:

1) 发出intent的方式(启动PackageInstallerActivity的方式)

必须forresult

2) intent必须设置不明来源为false

感觉这个设计相当扯淡,第三方APP可以肆意为之。

估计chrome默认下载后安装的方式没有去满足上述条件,所以只要是chrome下的一律为不明。

而appstore则肆意为之,一律为明,哪个傻子appstore会将自己的设为不明?

packages\apps\PackageInstaller\src\com\android\packageinstaller\PackageInstallerActivity.java

2. Android定制

目标:只能从自己的应用商店进行下载。

各个浏览器和其他商店的都不能进行安装。SD卡暂不限制。

考虑以下方案:

1) 定制系统的安卓市场app,在启动PackageInstallerActivity时指定intent的特殊数据。

2) PackageInstallerActivity在 isInstallRequestFromUnknownSource时强制检查特殊数据。

(但这样会影响系统本身app的安装的样子吧,系统第一次启动的时候应该会进行预装,预装的时候如果也走这个路径就狗屁了。所以还要区分是否预装?)

3) PackageInstallerActivity 设置为不允许未知来源的安装。isInstallingUnknownAppsAllowed

http://www.android100.org/html/201307/18/3656.html

备选方案:

看一下这个更早的入口,是否可以提前堵住。这个直接判断uri就可以了。

http://blog.csdn.net/dadoneo/article/details/8047931

public void installPackage(
final Uri packageURI, final IPackageInstallObserver observer, final int flags,
final String installerPackageName)

PackageManagerService类的installPackage

http://blog.csdn.net/dadoneo/article/details/8047931

时间: 2024-10-20 06:05:43

Android是如何判断APK是否不明来源的的相关文章

android 判断Apk是否签名和 签名是否一致

判断Apk是否签名 用命令:jarsigner -verify -verbose -certs <apk文件> 如果有Android Debug字樣就是debug 如果已经签名: [证书的有效期为13-8-31 下午2:31至41-1-16 下午2:31] 判断Apk签名是否一致      jdk 需要安装: 想查demo.apk所使用的签名的fingerprint,可以这样做: 1. 查找apk里的rsa文件 Windows 平台: > jar tfdemo.apk |findstr

Android逆向分析(2) APK的打包与安装

http://blog.zhaiyifan.cn/2016/02/13/android-reverse-2/ 2/18日增加对aidl和java编译的描述. 前言 上一次我们反编译了手Q,并遇到了Apktool反编译直接crash的问题,虽然笔者很想在这次解决这个问题,但在解决途中,发现该保护依赖于很多知识,所以本次先插入一下,正所谓知其然知其所以然,授之鱼不如授之以渔,只有知道一些基本原理,才能让我们以后能自行解决更多问题. 那么,你知道么?从我们在Android Studio中,点击run,

怎样给你的Android 安装文件(APK)瘦身

本文源地址:怎样给你的Android 安装文件(APK)瘦身 Android的apk文件越来越大了这已经是一个不争的事实. 在Android 还是最初版本号的时候,一个app的apk文件大小也还仅仅有2 MB左右,到了如今.一个app的apk文件大小已经升级到10MB到20MB这个范围了.apk文件大小的爆炸式增长主要是由于用户对app质量的期待越来越高以及开发人员的开发经验增长,详细体如今下面几个方面: Android设备 dpi 的多样化 ([l|m|tv|h|x|xx|xxx]dpi) A

如何给你的Android 安装文件(APK)瘦身

如何给你的Android 安装文件(APK)瘦身 本文翻译自:Putting Your APKs on Diet           原作者:Cyril Mottier Android的apk文件越来越大了这已经是一个不争的事实.在Android 还是最初版本的时候,一个app的apk文件大小也还只有2 MB左右,到了现在,一个app的apk文件大小已经升级到10MB到20MB这个范围了.apk文件大小的爆炸式增长主要是因为用户对app质量的期待越来越高以及开发者的开发经验增长,具体体现在以下几

实现Android 动态加载APK(Fragment or Activity实现)

尊重原创:http://blog.csdn.net/yuanzeyao/article/details/38565345 最近由于项目太大了,导致编译通不过(Android对一个应用中的方法个数貌似有限制),所以一直琢磨着能否将某些模块的APK不用安装,动态加载,通过在网上查找资料和网友的帮助,终于实现了APK的动态加载,网络上介绍APK动态加载的文章非常多,但是我觉得写得非常好的就是这位大牛的,我基本上就是使用他的这种方案,然后加入了自己的元素.这位大牛是通过Activity实现的,我稍作修改

Android 网络连接判断与处理

Android网络连接判断与处理 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 复制代码 1 public boolean isNetworkConnected(Context context) { 2     if (context != null) { 3    

Android动态方式破解apk终极篇(加固apk破解方式)

一.前言 今天总算迎来了破解系列的最后一篇文章了,之前的两篇文章分别为: 第一篇:如何使用Eclipse动态调试smali源码 第二篇:如何使用IDA动态调试SO文件 现在要说的就是最后一篇了,如何应对Android中一些加固apk安全防护,在之前的两篇破解文章中,我们可以看到一个是针对于Java层的破解,一个是针对于native层的破解,还没有涉及到apk的加固,那么今天就要来介绍一下如何应对现在市场中一些加固的apk的破解之道,现在市场中加固apk的方式一般就是两种:一种是对源apk整体做一

android应用分析之apk文件结构

实际上,一个APK文件就是一个.zip格式的压缩包,我们可以用解压缩工具打开任何一个APK文件,由于代码混淆和加密,通过普通解压缩工具打开里面的文件或目录会看到各种乱码.一个典型的apk文件包含以下内容: ?AndroidManifest.xml Android应用的配置清单文件,它向Android系统介绍了这个应用的很多配置信息,系统可以根据这个文件在相当程度上了解这个应用的一些信息.该文件是每个应用都必须定义和包含的,它描述了应用的名字.版本.权限.引用的库文件等等信息,如要把apk上传到G

Android网络连接判断与处理

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 1 public boolean isNetworkConnected(Context context) { 2 if (context != null) { 3 ConnectivityManager mConnectiv