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