为什么 Android VPN 应用程序不使用 BIND_VPN_SERVICE?

Why Android VPN applications do not use BIND_VPN_SERVICE?

我正在分析 Android VPN 应用程序(例如 Hola**)的权限使用情况。据Google官方手册(http://developer.android.com/reference/android/Manifest.permission.html)规定,VPN应用程序必须使用BIND_VPN_SERVICE权限,但Hola并未在其Manifest文件中进行统计。我想知道为什么它不使用此权限以及它(或一般的 VPN 应用程序)如何提供 VPN 服务?

** Hola 在清单文件中的权限:

I want to know why it does not use this permission

因为它不需要权限,这很好,因为它不能持有权限。 BIND_VPN_SERVICEsignature 级权限。

引用 the documentation for BIND_VPN_SERVICE,并强调:

Must be required by a VpnService, to ensure that only the system can bind to it.

您应该在应用清单中找到 BIND_VPN_SERVICE 的地方是 而不是 <uses-permission> 元素中的 ,而是 android:permission 属性中用于 VpnService 实现的 <service> 元素。该应用正在保护一个使用权限的组件,而不是使用与其他应用对话的权限。