Если я вызову функцию socket ()
в методах JNI C, приложение все равно выйдет из строя с ошибкой разрешения. И если я помещу строку разрешения использования в AndroidManifest.xml, проблема решена.
Похоже, что проверка разрешений Android не реализована на виртуальной машине Dalvik, поскольку я вызываю встроенную функцию C, но проверка все равно выполняется. Я хотел бы знать, где выполняется проверка, в ядре Android или как приложение отслеживается с помощью чего-то вроде ptrace
для перехвата каждого системного вызова или любым другим способом. Большое спасибо.