前言
记录一下,Android中设置一个开关进行判断是否允许用户自己安装apk。
记录于此,方便自己查阅。
正文
- frameworks/base/services/core/java/com/android/server/pm/PackageInstallerService.java
- @Override
- public int createSession(SessionParams params, String installerPackageName,
- String callingAttributionTag, int userId) {
- try {
- return createSessionInternal(params, installerPackageName, callingAttributionTag,
- userId);
- } catch (IOException e) {
- throw ExceptionUtils.wrap(e);
- }
- }
-
可以在createSession()或createSessionInternal(),新增一个属性进行判断是否允许用户自己安装apk。
我这里在createSession()中新增。
- @Override
- public int createSession(SessionParams params, String installerPackageName, int userId) {
- //新增开始
- if(!SystemProperties.getBoolean("persist.sys.install.allow", true)) {
- Slog.w(TAG, "Disallow install apk!");
- return -1;
- }
- Slog.w(TAG, "Allow install apk!");
- //新增结束
- try {
- return createSessionInternal(params, installerPackageName, userId);
- } catch (IOException e) {
-
- }
上面是默认允许安装的。
如果不想用户安装,修改上面默认值为false,当然还可以再编译时就对persist.sys.install.allow进行初始化。
比如在
- packages/services/Car/car_product/build/car.mk
中新增如下配置即可。
- PRODUCT_PROPERTY_OVERRIDES += \
- persist.sys.install.allow=false
参考文章
© 版权声明