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

时间:2015-07-13 14:42:19

标签: android permissions android-permissions openvpn

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

** Hola在Manifest文件中的权限:

  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.GET_ACCOUNTS
  • android.permission.READ_PHONE_STATE
  • android.permission.INTERNET对
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.GET_TASKS
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.MODIFY_AUDIO_SETTINGS
  • android.permission.WAKE_LOCK
  • com.google.android.c2dm.permission.RECEIVE
  • org.hola.permission.C2D_MESSAGE
  • com.android.browser.permission.READ_HISTORY_BOOKMARKS
  • com.android.browser.permission.WRITE_HISTORY_BOOKMARKS
  • android.permission.ACCESS_FINE_LOCATION

1 个答案:

答案 0 :(得分:3)

  

我想知道为什么它不使用此权限

因为它不需要许可,这是好的,因为它无法持有权限。 BIND_VPN_SERVICEsignature级权限。

引用the documentation for BIND_VPN_SERVICE,重点补充:

  

VpnService必须必需,以确保只有系统可以绑定到它。

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