Android 15 限制APK包手动安装但不限制自升级的实现方案
背景
在Android 15的开发过程中,有时我们需要对APK的安装行为进行精细化控制。比如限制用户手动安装新的APK包,但允许已安装应用的自升级。这种需求在企业级应用或特定场景下非常常见。
实现思路
通过修改Android系统的PackageInstaller组件,我们可以在安装过程中添加检查逻辑:
- 通过系统属性控制是否启用安装限制
- 区分新安装和升级安装
- 只允许升级安装,阻止新应用的安装
代码实现
以下是对frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/InstallStaging.java
文件的修改:
--- a/frameworks/base/packages/PackageInstaller