入网认证遇到的安全受控机制的问题---之Android 5.1.1 AppOps与严格模式

    亲,你们是否用过华为或者小米的手机。

xxx软件要读取联系人,允许或者取消。这个就是安全受控机制。对于入网认证来说这个是一个必不可少的项目,而且受控的项目非常之多,比如联系人,短信,调用摄像头等等等。

那么这些问题实际上Google是有增加该功能的,只是一直都没有开放出来。不知道为什么。比如如下代码。

    /** 
     * Enable or disable Wi-Fi. 
     * @param enabled {@code true} to enable, {@code false} to disable. 
     * @return {@code true} if the operation succeeds (or if the existing state 
     *         is the same as the requested state). 
     */  
    public boolean setWifiEnabled(boolean enabled) {                         
        if (mAppOps.noteOp(AppOpsManager.OP_WIFI_CHANGE) !=  
                AppOpsManager.MODE_ALLOWED)//进行一个简单的判断是否有权限修改否则返回false  
            return false;  
        try {  
            return mService.setWifiEnabled(enabled);//传入wifiserver进行后续wifi开启操作。  
        } catch (RemoteException e) {  
            return false;  
        }  
    } 
其中AppOps就是受控权限管理的类。但是为什么开发的时候都没有弹出类似的提示呢?是因为这个机制没有开启。

这个机制检查是否开启是在

    public static boolean isStrictEnable() {
        return SystemProperties.getBoolean("persist.sys.strict_op_enable", false);
    }

因此在system.prop 文件下添加

persist.sys.strict_op_enable=true

即可开启严格模式


另外,预置软件很多调用权限都没有弹窗这是因为还有一个策略文件需要修改。高通平台在如下路径。

device/qcom/common/appops/appops_policy.xml

<appops-policy version="1">
    <user-app permission="ask" show="true"/> user-app类型的软件,ask表示询问,true弹窗。
    <system-app permission="allowed" show="false"/>system-app allowed表示允许,false不用弹窗了。


    <application>
    <!-- Example:


        <pkg name="com.android.dialer" type="system-app">
            <op name="android:call_phone" permission="ask" show="true"/>
        </pkg>


    -->
        <pkg name="com.android.calendar" type="system-app"> 这里是可以特指某些权限的询问或者不询问。                               
            <op name="android:read_contacts" permission="ask" show="true"/>
        </pkg>
        <pkg name="com.android.email" type="system-app">
            <op name="android:read_contacts" permission="ask" show="true"/>
        </pkg>
        <pkg name="com.android.soundrecorder" type="system-app"> 这里添加了录音权限询问的条目。需要单独添加system-app需要询问的话可参照这个例子。
            <op name="android:record_audio" permission="ask" show="true"/>
        </pkg>
   </application>
</appops-policy>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值