android uso pcap biblioteca
Tengo una pregunta general de acuerdo a una aplicación para Android, necesito usar alguna funcionalidad pcap en mi aplicación para Android. Porque java no da la posibilidad en inyecciones de paquetes crudos y programación de capa baja (por lo que sé, pls me corrige si estoy equivocado) por lo que estaba buscando una alternativa. Hasta ahora he encontrado lo siguiente:
- ANDROID NDK
- JNETPCAP
¿Alguna sugerencia que debo usar o alguien tiene otras sugerencias?
- ¿Podemos tener valor dentro del archivo de propiedades como una matriz de valores?
- SSL Broken Pipe
- Descripción de las pérdidas de memoria en la aplicación de Android
- Cómo llamar a la función de la actividad principal de ArrayAdapter personalizado?
- Cómo obtener datos de una url
- ¿Por qué se incluirían dependencias sólo en versiones de lanzamiento?
- Problema con revelación circular y CircularRevealLibrary en Android
- ¿Cómo puedo forzar el método onPrepareOptionsMenu para disparar?
- La lectura de cadena gzip en sqlite3 base de datos (python escribir, Java Android leer)
- No se puede reanudar una actividad cuando se utiliza un viewPager
- NavigationDrawer no funciona correctamente con la revisión SupportLibrary 21
- Aplicación de tiempo de uso de seguimiento de Android android en Android
- Cómo convertir un SparseArray a ArrayList?
La solución JNI
Usted necesita para envolver las llamadas y la lógica que necesita de libpcap en C o C + + y exponer las funciones subyacentes a través de JNI
(Java Native Interface) para que su aplicación puede llamar a código nativo en Java.
La documentación sobre JNI
es bastante completa en internet, hay muchos tutoriales sobre este tema como éste .
Si desea insertar código nativo en JNI, puede utilizar Swig
que le permite generar automáticamente código JNI basado en sus encabezados nativos de C / C ++.
El código JNI obtenido debe ser compilado usando el Android NDK como una biblioteca dinámica (.so). Esta biblioteca se colocará en su paquete de aplicaciones bajo libs/
. A continuación, puede invocar System.loadLibrary(path_to_you_dynamic_library)
para cargar todos los símbolos contenidos en la biblioteca y utilizarlos en Java.
Uso de una biblioteca de terceros
Si tienes miedo de tener dolores de cabeza mientras averigua cómo usar JNI, puedes mirar a esta biblioteca que hace el trabajo duro para ti, y proporciona una API para manipular sockets sin procesar en Java.
Usted necesita para envolver las llamadas y la lógica que necesita de libpcap en C o C + + y exponer las funciones subyacentes a través de JNI (Java Native Interface) para que su aplicación puede llamar a código nativo en Java.
O usted necesita para obtener una biblioteca que ya está hecho que, como, err, umm, jNetPcap .
Un problema que puede tener con cualquier intento de hacer captura de paquetes en Android, o cualquier otro sistema operativo que utilice el kernel de Linux, es que, por defecto, el mecanismo de kernel subyacente utilizado por libpcap (sockets PF_PACKET
) requiere privilegios de root. Si hay una manera de ejecutar el código como root, o para darle CAP_NET_RAW
y posiblemente los privilegios CAP_NET_ADMIN
, podría ser posible hacerlo funcionar.
- Google Plus compartir desde la aplicación Android
- ejecutar comandos shell de forma programática en android