android 11 自定义Android device owner 接口

本文介绍了如何在Android系统中自定义广播处理,并针对DevicePolicyManagerService进行了修改,增强了对ADB权限的检测,通过`callingUid`和`callingPid`以及`cw_dpw_userid`设置来判断是否允许ADB操作。
摘要由CSDN通过智能技术生成

在设置里面自定义广播 去处理下面的事情

 ComponentName mComponent=new ComponentName(packageName,receiverName);

DevicePolicyManager mDPM.setDeviceOwner(mComponent,"d_owner_"+mUserId);

      int  mUserId = android.os.Process.myPid();
      int uid = android.os.Process.myUid();
      Settings.Global.putInt(context.getContentResolver(), "cw_dpw_userid", mUserId);

然后在frameworks\base\services\devicepolicy\java\com\android\server\devicepolicy\DevicePolicyManagerService.java

下面的方法修改下

 private boolean isAdb() {
        final int callingUid = mInjector.binderGetCallingUid();
        boolean isdpwuid = false;
         try {
            final int callingPid = mInjector.binderGetCallingPid();
            int cw_dpw= Settings.Global.getInt(mContext.getContentResolver(), "cw_dpw_userid",0);
            isdpwuid = (callingPid == cw_dpw ) ;
            Log.w(LOG_TAG, "sssssssssss 3 callingPid = " +callingPid  + "........cw_dpw_userid = " +cw_dpw  +  "------isdpwuid= "+isdpwuid);
          } catch (Exception e) {
            return false;
        }
        return callingUid == Process.SHELL_UID || callingUid == Process.ROOT_UID || isdpwuid;
    }

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值