前言
记录一下,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
参考文章
© 版权声明