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

h9a6wy2h  于 12个月前  发布在  Android
关注(0)|答案(1)|浏览(160)

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

**Manifest文件中Hola的权限:

  • 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
svmlkihl

svmlkihl1#

我想知道为什么它不使用此权限
因为它不需要权限,这很好,因为它不能持有权限。BIND_VPN_SERVICEsignature级别的权限。
引用BIND_VPN_SERVICE的文档,并强调:
VpnService必须必填,以确保只有系统才能绑定。
你应该在应用的清单中找到BIND_VPN_SERVICE的地方 * 不是 * 在<uses-permission>元素中,而是在VpnService实现的<service>元素上的android:permission属性中。该应用正在使用权限来 * 保护 * 组件,而不是 * 使用 * 与其他应用对话的权限。

相关问题