android - para - ¿Cómo configurar VPN programáticamente?
configuracion apn de cricket (1)
1) No conozco ninguna implementación de PPTP o IPSec de código abierto para el VpnService ICS de Android 4.x. VpnService está diseñado para crear aplicaciones VPN de protocolo personalizado (que en teoría podrían ser pptp o IPSec). La única implementación de código abierto que he encontrado que aprovecha esta nueva API es una para OpenVPN:
http://code.google.com/p/ics-openvpn/
Esto proporciona una solución VPN potencial que usted tiene el control total (el servidor también es de código abierto), pero no es PPTP o IPSec. Si comprende el protocolo PPTP, debería ser posible utilizarlo como modelo para implementar dicho cliente VPN.
2) Sí, es cierto que en versiones anteriores, la única forma es a través de API privadas. De hecho, incluso si desea hacerlo en versiones posteriores utilizando el soporte VPN integrado (es decir, soporte PPTP o IPSec integrado), debe aprovechar estas API ocultas. Tal vez sea posible hacerlo en un nivel inferior utilizando el núcleo de Linux subyacente, pero esto requeriría rootear el sistema operativo y burlar el paradigma de la aplicación de Android. Esta no es necesariamente una mejor alternativa al uso de API privadas.
Para obtener información sobre cómo configurar VPN usando esas API:
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/net/vpn/PptpProfile.java (ejemplo de un objeto de perfil PPTP, necesario para pasar a la API)
¿Cómo crear programáticamente una nueva interfaz VPN con Android 4.0? (Explica cómo almacenar este nuevo perfil VPN en el sistema)
No estoy seguro de cuán consistentes y confiables serán estas API. Espero que funcionen en la mayoría de los dispositivos Android, ya que es poco probable que los proveedores vuelvan a implementar las implementaciones VPN básicas, aunque pueden haber agregado las suyas propias. También pueden haber alterado las API necesarias para habilitar dichos perfiles, o haber ampliado sus capacidades.
Necesito implementar una aplicación de Android que permita al usuario configurar una conexión VPN sin tener que acceder al menú nativo del dispositivo Android. Con esto tengo dos problemas:
en android 4.0 + (nivel de api 14 y superior) descubrí que hay un nuevo componente llamado VpnService que proporciona un gancho para crear una interfaz de red virtual, configurarlo e interceptar / reenviar paquetes desde un servidor VPN, pero no hay construido en protocolos vpn como PPTP o IPSec, existe la posibilidad de implementarlos. Mi pregunta es: ¿hay alguna solución lista para PPTP e IPSec para trabajar con VpnService?
En versiones anteriores de Android, por lo que he encontrado hasta ahora, parece que la única forma de usar VPN es acceder y configurar la solución vpn incorporada del dispositivo envolviendo (utilizando reflexión) algunas apis ocultas en Android, pero esto es un Una solución incómoda ya que el dispositivo debe estar enraizado, también las implementaciones de API ocultas pueden diferir de un dispositivo a otro, y de la versión del sistema operativo a la versión del sistema operativo. ¿Existe una mejor manera de configurar mediante programación la VPN integrada del sistema operativo Linux subyacente?