Android - obtener MEID de JNI

Estoy trabajando en Android, escribiendo un código JNI, y estoy buscando una manera de consultar el Identificador de equipo móvil (MEID) desde el dispositivo.

http://en.wikipedia.org/wiki/Mobile_equipment_identifier

Estoy tratando de escribir código C o C ++ que pueda ejecutarse solo en un dispositivo Android, así que no creo que pueda usar Java (es decir, obtener MEID deTelephonyManager).

Una búsqueda de StackOverflow encuentra:¿Hay un comando de shell o adb de Android que pueda usar para obtener el IMEI / MEID de un dispositivo?

Ok genial,dumpsys iphonesubinfo Puede obtener la información que necesito. ¡Y funciona!

No pude encontrar la fuente paradumpsys Excepto como parte de la fuente para Android. Así que descargué eso ... mi disco duro se llenó antes de que terminara la descarga, pero obtuve el código fuente paradumpsys. Es un archivo C ++ sorprendentemente corto. Todo lo que hace es consultar Android.IBinder interfaz.

Entonces, mis preguntas:

0) ¿Hay alguna forma de escribir una consulta en contra?IBinder ¿Usando solo las cosas en el NDK? Los archivos de inclusión utilizados pordumpsys.cpp no están en el NDK, ygrep en el directorio NDK no encontróIBinder en cualquier archivo de inclusión o muestras de código, así que supongo que es "no" (pero me gustaría estar equivocado).

1) ¿Hay alguna otra buena manera de obtener el MEID?

Estoy pensando seriamente que debería usarsystem("dumpsys iphonesubinfo > /tmp/myprogname_dumpsys.tmp" y luego abrir el archivo resultante y analizarlo. Eso debería funcionar, pero difícilmente lo llamaría elegante ... y no estoy seguro sidumpsys Está disponible en todos los dispositivos Android o no.

EDITAR: La idea de usarsystem() correrdumpsys no funcionará, porquedumpsys necesariamenteandroid.permission.DUMP y Android ya no permite que las aplicaciones que no son del sistema tengan ese permiso.

Dumpsys denegación de permiso en java

Respuestas a la pregunta(2)

Su respuesta a la pregunta