Skip to content

VPN权限申请弹窗在Shadow框架中不显示(PMVpnService启动问题) #1401

@LuYeCong

Description

@LuYeCong

在 Shadow 框架中启动 PMVpnService 时,系统的 VPN 权限申请弹窗未正常显示,而在非 Shadow 环境下集成 SDK 则可以正常触发。该问题涉及 Android 的 VpnService 权限机制与 Shadow 框架的兼容性。

问题描述

• 目标 Service: PMVpnService(已声明 android:permission="android.permission.BIND_VPN_SERVICE" 权限)。

• 正常情况(非 Shadow 环境): 启动 Service 时,系统自动弹出 VPN 权限申请弹窗,用户授权后 VPN 连接正常建立。

• 异常情况(Shadow 框架): 启动 Service 时,系统弹窗未出现,导致 VPN 权限无法获取,服务无法正常工作。

• 相关配置: Service 在 AndroidManifest.xml 中的声明如下:





Image

疑问

  1. 权限弹窗触发机制: Shadow 框架是否拦截或修改了系统用于触发 VPN 权限申请的 Intent(如 VpnService.prepare() 返回的 Intent)?
  2. Service 代理方式: Shadow 框架代理 VpnService 时,是否需要特殊处理以保持系统级的权限交互流程?
  3. 已知解决方案: 是否有配置或 API 可强制 Shadow 框架转发权限申请请求到系统?

补充信息

• 从日志分析,Service 已通过 Shadow 启动,但系统未收到权限申请请求。

• 期望行为: 在 Shadow 中启动 VPN Service 时,能像原生环境一样弹出系统授权对话框。

参考: 正常环境下,VPN 权限申请需通过 VpnService.prepare() 检查并触发系统弹窗,效果如下

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions