Android - получите MEID от JNI
Я работаю в Android, пишу код JNI и ищу способ запросить идентификатор мобильного оборудования (MEID) с устройства.
http://en.wikipedia.org/wiki/Mobile_equipment_identifier
Я пытаюсь написать код на C или C ++, который может быть запущен на устройстве Android, поэтому я не думаю, что смогу использовать Java (т.е. получить MEID изTelephonyManager
).
Поиск StackOverflow находит:Есть ли оболочка Android или команда adb, которую я мог бы использовать для получения IMEI / MEID устройства?
Ладно отличноdumpsys iphonesubinfo
могу получить информацию мне нужно. И это работает!
Я не могу найти источник дляdumpsys
кроме как часть источника для Android. Итак, я скачал это ... мой жесткий диск заполнился до окончания загрузки, но я получил исходный кодdumpsys
, Это удивительно короткий файл C ++. Все, что он делает, это запрашивает AndroidIBinder
интерфейс.
Итак, мои вопросы:
0) Есть ли способ написать запрос наIBinder
используя только материал в NDK? Включаемые файлы, используемыеdumpsys.cpp
не в НДК, аgrep
в каталоге NDK не нашелIBinder
в любых включаемых файлах или примерах кода, поэтому я предполагаю, что «нет» (но я бы хотел ошибаться).
1) Есть ли другой хороший способ получить MEID?
Я серьезно думаю, что я должен просто использоватьsystem("dumpsys iphonesubinfo > /tmp/myprogname_dumpsys.tmp"
а затем откройте полученный файл и проанализируйте его. Это должно сработать, но я бы вряд ли назвал это элегантным ... и я не уверен, чтоdumpsys
доступно на любом устройстве Android или нет.
РЕДАКТИРОВАТЬ: идея использованияsystem()
бежатьdumpsys
не будет работать, потому чтоdumpsys
потребностиandroid.permission.DUMP
и Android больше не позволяет несистемным приложениям иметь это разрешение.