一、有个新的需求,系统只允许安装本公司的应用apk,禁止安装其他第三方的apk。
二、解决思路,只运行安装包含某种字符包名的apk,通过apk的包名识别是不是本公司自己的apk。
三、解决方案
1、安装apk的代码在frameworks\base\packages\PackageInstaller\src\com\android\packageinstaller
2、实现代码,frameworks\base\packages\PackageInstaller\src\com\android\packageinstaller\PackageInstallerActivity.java里面安装的过程中检测apk包名,如果包含giada字符才运行安装。
3、通过setprop giada.allow.third.app false 禁止第三方apk的安装,setprop giada.third.forbid.key 设置包名关键字。
4、运行效果,比较下面想安装youku,弹出提示框禁止安装。