Android系统默认赋予浏览器权限

只要是设计到默认赋权,就在framework下找这个类:base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
安卓系统开机的时候会调用这个类里面的下面这个方法:

 public void grantDefaultPermissions(int userId) {
        DelayingPackageManagerCache pm = new DelayingPackageManagerCache();

        grantPermissionsToSysComponentsAndPrivApps(pm, userId);
        grantDefaultSystemHandlerPermissions(pm, userId);
        grantSignatureAppsNotificationPermissions(pm, userId);
        grantDefaultPermissionExceptions(pm, userId);
        // Apply delayed state
        pm.apply();
    }

grantDefaultSystemHandlerPermissions方法里面会默认赋予浏览器权限

private void grantDefaultSystemHandlerPermissions(PackageManagerWrapper pm, int userId) {
    ......
	// Browser

        String browserPackage = ArrayUtils.firstOrNull(getKnownPackages(

                KnownPackages.PACKAGE_BROWSER, userId));

        if (browserPackage == null) {

            browserPackage = getDefaultSystemHandlerActivityPackageForCategory(pm,

                    Intent.CATEGORY_APP_BROWSER, userId);

            if (!pm.isSystemPackage(browserPackage)) {

                browserPackage = null;

            }

        }

        grantPermissionsToPackage(pm, browserPackage, userId, false /* ignoreSystemPackage */,

                true /*whitelistRestrictedPermissions*/, FOREGROUND_LOCATION_PERMISSIONS);
}

代码中通过"Intent.CATEGORY_APP_BROWSER"这个标识去判断是否是浏览器应用,如果是浏览器应用将会通过grantPermissionsToPackage方法去赋予浏览器权限

@SafeVarargs

    private final void grantPermissionsToPackage(PackageManagerWrapper pm, String packageName,
            int userId, boolean ignoreSystemPackage, boolean whitelistRestrictedPermissions,
            Set<String>... permissionGroups) {
        grantPermissionsToPackage(pm, pm.getPackageInfo(packageName),
                userId, false /* systemFixed */, ignoreSystemPackage,
                whitelistRestrictedPermissions, permissionGroups);
    }

通过代码可以看到permissionGroups是一个可变参数,如果想给浏览器添加更多的默认参数只要在后面添加相应的权限即可,如下:

grantPermissionsToPackage(pm, browserPackage, userId, false /* ignoreSystemPackage */,

                true /*whitelistRestrictedPermissions*/, FOREGROUND_LOCATION_PERMISSIONS,NOTIFICATION_PERMISSIONS,STORAGE_PERMISSIONS,CAMERA_PERMISSIONS,MICROPHONE_PERMISSIONS);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值