Android VpnService защищает сокет, который хранится в собственном коде?

Я пишу приложение VPN, а сокет, используемый для VPN-подключения, обрабатывается в моем собственном коде C, а не в java. Как использовать VpnService.protect() в этом сокете? Я заметил, что у него есть VpnService.protect(int) , могу ли я вернуть int, который socket возвращает из собственного кода в Java и защищает его таким образом?

пример

 // 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); 

редактировать

Я нашел этот вопрос, который описывает, как работает функция protect , и похоже, что она может иметь довольно простую реализацию на C, поскольку, похоже, она просто использует вызов setsockopt . Но я также относительно новичок в C, поэтому я не могу полностью повторить, как его реплицировать.

Я просто хотел проверить, что мои процессы были действительными, после завершения тестирования я проверил, что он работает.

пример

 // 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);