前言

记录一下,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

参考文章

相关文章

暂无评论

none
暂无评论...