美文网首页
Android创建vpn无需用户确认相关问题

Android创建vpn无需用户确认相关问题

作者: 学海摆渡人 | 来源:发表于2023-09-04 21:58 被阅读0次

    背景

    需要在android系统中集成加速app,用户无感开启vpn

    vpn prepare失败

    因为刚开始是采用android.uid.system uid,与Vpn服务默认一致,一直无法与netd建立tun0成功


    image.png
    private boolean isCurrentPreparedPackage(String packageName) {
           // We can't just check that packageName matches mPackage, because if the app was uninstalled
           // and reinstalled it will no longer be prepared. Instead check the UID.          
          return getAppUid(packageName, mUserHandle) == mOwnerUID;
    }
    

    隐藏vpn提示框

    image.png

    原理跟VpnComfirm一样,少了vpn弹窗过程,但是需要权限CONTOL_VPN
    改权限需要将app内置到priv-app目录下,或者具有系统签名即可

    创建binder服务

    因为要提供命令给外部调用,采用am、pm服务一样,但是普通应用无法,但是appuid <10000 就可以注册


    image.png

    将shareduid 换成其他就可以

    静默启动服务

    在android 8启动后台服务(当前进程不在运行)是无法通过am startservice方式启动,但是翻阅源码发现蓝牙uid是在白名单内


    image.png

    将app到sharduid换成蓝牙的,就可以做到静默启动vpn了

    但是用户还是能看到右上角vpn图标

    相关文章

      网友评论

          本文标题:Android创建vpn无需用户确认相关问题

          本文链接:https://www.haomeiwen.com/subject/qrmcvdtx.html