【问题标题】:Why Android VPN applications do not use BIND_VPN_SERVICE?为什么 Android VPN 应用程序不使用 BIND_VPN_SERVICE?
【发布时间】:2015-10-01 21:33:06
【问题描述】:

我正在分析 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

【问题讨论】:

    标签: android permissions android-permissions openvpn


    【解决方案1】:

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

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

    引用the documentation for BIND_VPN_SERVICE,强调:

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

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

    【讨论】:

    • 感谢CommonsWare,有关详细信息,还可以参考OpenConnect,其中BIND_VPN_SERVICE<service> 标签中的请求,即
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2023-03-22
    相关资源
    最近更新 更多