前言

记录一下,Android中设置一个开关进行判断是否允许用户自己安装apk

记录于此,方便自己查阅。

正文

  1. frameworks/base/services/core/java/com/android/server/pm/PackageInstallerService.java
复制
  1. @Override
  2. public int createSession(SessionParams params, String installerPackageName,
  3.       String callingAttributionTag, int userId) {
  4.   try {
  5.       return createSessionInternal(params, installerPackageName, callingAttributionTag,
  6.               userId);
  7.   } catch (IOException e) {
  8.       throw ExceptionUtils.wrap(e);
  9.   }
  10. }
复制

可以在createSession()或createSessionInternal(),新增一个属性进行判断是否允许用户自己安装apk。

我这里在createSession()中新增。

  1. @Override
  2. public int createSession(SessionParams params, String installerPackageName, int userId) {
  3. //新增开始
  4.   if(!SystemProperties.getBoolean("persist.sys.install.allow", true)) {
  5.       Slog.w(TAG, "Disallow install apk!");
  6.       return -1;
  7.   }
  8.   Slog.w(TAG, "Allow install apk!");
  9. //新增结束
  10.   try {
  11.       return createSessionInternal(params, installerPackageName, userId);
  12.   } catch (IOException e) {
  13. }
复制

上面是默认允许安装的。

如果不想用户安装,修改上面默认值为false,当然还可以再编译时就对persist.sys.install.allow进行初始化。

比如在

  1. packages/services/Car/car_product/build/car.mk
复制

中新增如下配置即可。

  1. PRODUCT_PROPERTY_OVERRIDES += \
  2.   persist.sys.install.allow=false
复制

参考文章

相关文章

暂无评论

none
暂无评论...