Android - obtenha o MEID do JNI

Estou trabalhando no Android, escrevendo algum código JNI, e estou procurando uma maneira de consultar o MEID (Mobile Equipment Identifier) ​​do dispositivo.

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

Eu estou tentando escrever código C ou C ++ que pode ser executado sozinho em um dispositivo Android, então eu não acho que posso usar Java (ou seja, obter MEID deTelephonyManager).

Uma pesquisa do StackOverflow encontra:Existe um shell android ou comando adb que eu poderia usar para obter o IMEI / MEID de um dispositivo?

Certo, ótimo,dumpsys iphonesubinfo pode obter as informações que preciso. E isso funciona!

Eu não consegui encontrar a fonte paradumpsys exceto como parte da fonte para o Android. Então eu baixei isso ... meu disco rígido cheio antes do download terminar, mas eu consegui o código fonte paradumpsys. É um arquivo C ++ surpreendentemente curto. Tudo o que faz é consultar o AndroidIBinder interface.

Então, minhas perguntas:

0) Existe alguma maneira eu posso escrever uma consulta contraIBinder usando apenas as coisas no NDK? Os arquivos de inclusão usados ​​pordumpsys.cpp não estão no NDK, egrep no diretório NDK não encontrouIBinder em qualquer arquivo de inclusão ou amostras de código, então meu palpite é "não" (mas eu gostaria de estar errado).

1) Existe alguma outra boa maneira de obter o MEID?

Eu estou pensando seriamente que eu deveria apenas usarsystem("dumpsys iphonesubinfo > /tmp/myprogname_dumpsys.tmp" e, em seguida, abra o arquivo resultante e analise-o. Isso deve funcionar, mas eu dificilmente chamaria de elegante ... e eu não tenho certeza sedumpsys está disponível em todos os dispositivos Android ou não.

EDIT: A idéia de usarsystem() para correrdumpsys não vai funcionar, porquedumpsys necessidadesandroid.permission.DUMP e o Android não permite mais que aplicativos que não sejam do sistema tenham essa permissão.

Negação de permissão do Dumpsys em java

questionAnswers(2)

yourAnswerToTheQuestion