Как получить библиотеку возможностей libcap (Linux) для Android?
Доступна ли библиотека Linux (libcap.so) для использования с Android? Если нет, как я могу скомпилировать его?
Я хотел бы использовать API-интерфейс, связанный с возможностями, в sys/capabilities.h
, который включен в NDK. Но когда я пытаюсь вызвать функции типа cap_get_proc()
, я получаю ошибку "undefined reference".
Ответы
Ответ 1
Я бы предположил, что использование этого api будет идти по пути, выходящему за рамки контракта в рамках Android. Он может работать на некоторых устройствах, но не на других.
На самом деле, нет гарантии, афайк, что Android даже работает под Linux. Например, новые устройства Blackberry управляют собственной операционной системой Blackberry, но все еще запускают приложения для Android.
Наконец, версия Linux, на которой работает большинство Android-устройств, является сильно урезанной версией. Они не включали никаких функций, которые Android API не нужны. Если Android не нужен libcap, то он, вероятно, не включен.
Возможно, вы могли бы точно сказать, что именно вы пытаетесь сделать.
Ответ 2
Много обсуждений по этой теме... google немного:
http://permalink.gmane.org/gmane.comp.handhelds.android.ndk/4075
Ответ 3
Вот ссылка - https://github.com/scopichmu/libcap-for-Android. Это оригинальный libcap (был клонирован из https://kernel.googlesource.com/pub/scm/linux/kernel/git/morgan/libcap) с поддержкой сборки android ndk. Теперь вы можете создать libcap.so, setcap и getcap для android.
Ответ 4
Здесь кто-то скомпилировал его и описал:
http://blog.umitproject.org/2011/05/libpcap-for-android.html