Android VpnService proteger socket que se almacena en código nativo?

Estoy escribiendo una aplicación VPN y el socket utilizado para la conexión VPN se maneja en mi código C nativo, no en java. ¿Cómo uso VpnService.protect() en ese zócalo? Me di cuenta de que tiene una VpnService.protect(int) , ¿podría devolver el int que socket devuelve desde el código nativo a Java y proteger de esa manera?

Ejemplo

 // Native Code int socket; JNIEXPORT jint JNICALL Java_com_my_package_Class_initializeSocket ( JNIEnv *env, jobject jobj ) { socket = socket(AF_INET, SOCK_DGRAM, 0); // . . . Handler other socket preparations return (jint)socket; } 

 // Java Code public native int initializeSocket(); . . . int socket = initializeSocket(); this.protect(socket); 

Editar

Encontré esta pregunta que describe cómo funciona la función de protect , y parece que podría tener una implementación bastante sencilla en C, ya que parece que está usando una llamada setsockopt . Pero también soy relativamente nuevo en C, así que no puedo seguir cómo replicarlo.

Simplemente quería verificar que mis procesos eran válidos, después de completar más pruebas he verificado que funciona.

Ejemplo

 // Native Code int socket; JNIEXPORT jint JNICALL Java_com_my_package_Class_initializeSocket ( JNIEnv *env, jobject jobj ) { socket = socket(AF_INET, SOCK_DGRAM, 0); // . . . Handler other socket preparations return (jint)socket; } 

 // Java Code public native int initializeSocket(); . . . int socket = initializeSocket(); this.protect(socket); 
  • El arranque del emulador atascó la estructura x86 en AOSP 4.3 con el emulador: Error al conectar con el zócalo '127.0.0.1:1970'
  • La fuerza de aplicación se cierra al iniciar
  • HTTP Vs sockets Vanilla para cargar archivos binarios grandes (50-200 MB) desde un dispositivo Android a través de una red Wi-Fi de un solo salto
  • Enviar datos a través de wifi (no internet) cuando los datos móviles
  • No obtiene respuesta en la conexión de socket
  • Comunicación de LocalSocket con el dominio de Unix en Android NDK
  • Android escucha los mensajes del socket del servidor
  • Android juego multi-jugador a través de la red
  • AsyncSocket en java?
  • Cómo enviar el archivo binario y el texto usando el mismo socket
  • Android: ¿Cómo detectar la aplicación eliminada de la lista de aplicaciones recientes?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.