Как найти модуль Android по имени в AOSP?

Я собираю AOSP Kitkat (4.4) и пытаюсь найти файл Android.mk, определяющий модуль libnfc-nci. Модуль libnfc_nci_jni зависит от этой локальной общей библиотеки (Android.mk приведен ниже), и я хочу увидеть исходный код, создающий этот файл .so. Я знаю, что nfc.h существует в /hardware/libhardware/include/hardware/nfc.h, но это только заголовки.

Насколько мне известно, доступными инструментами для поиска исходного кода Android являются cgrep, jgrep и resgrep. Однако (насколько мне известно) они не ищут файлы Android.mk. Есть ли инструмент, которого мне не хватает, чтобы найти каталог, содержащий модуль libnfc-nci?

Вот Android.mk для libnfc_nci_jni (находится в /packages/apps/Nfc/nci/jni/Android.mk)

VOB_COMPONENTS := external/libnfc-nci/src
NFA := $(VOB_COMPONENTS)/nfa
NFC := $(VOB_COMPONENTS)/nfc

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PRELINK_MODULE := false

ifneq ($(NCI_VERSION),)
LOCAL_CFLAGS += -DNCI_VERSION=$(NCI_VERSION) -O0 -g
endif

LOCAL_CFLAGS += -Wall -Wextra

define all-cpp-files-under
$(patsubst ./%,%, \
  $(shell cd $(LOCAL_PATH) ; \
          find $(1) -name "*.cpp" -and -not -name ".*") \
 )
endef

LOCAL_SRC_FILES:= $(call all-cpp-files-under, .)

LOCAL_C_INCLUDES += \
    bionic \
    bionic/libstdc++ \
    external/stlport/stlport \
    external/libxml2/include \
    external/icu4c/common \
    frameworks/native/include \
    libcore/include \
    $(NFA)/include \
    $(NFA)/brcm \
    $(NFC)/include \
    $(NFC)/brcm \
    $(NFC)/int \
    $(VOB_COMPONENTS)/hal/include \
    $(VOB_COMPONENTS)/hal/int \
    $(VOB_COMPONENTS)/include \
    $(VOB_COMPONENTS)/gki/ulinux \
    $(VOB_COMPONENTS)/gki/common

LOCAL_SHARED_LIBRARIES := \
    libicuuc \
    libnativehelper \
    libcutils \
    libutils \
    liblog \
    libnfc-nci \
    libstlport

LOCAL_STATIC_LIBRARIES := libxml2

LOCAL_MODULE := libnfc_nci_jni
LOCAL_MODULE_TAGS := optional

include $(BUILD_SHARED_LIBRARY)

Я использую Ubuntu 14.04


person John Dempsey    schedule 12.04.2016    source источник
comment
Как насчет просто grep? Это то, что я использую для поиска кода.   -  person Gabe Sechan    schedule 12.04.2016
comment
Это правда. Я полагаю, что искал более краткое решение, так как выполнение grep на дереве AOSP выдает Библию ссылок   -  person John Dempsey    schedule 12.04.2016


Ответы (2)


Я нашел libnfc-nci в /external/libnfc-nci после еще нескольких поисков. Кажется, нет лучшего инструмента для поиска модуля в aosp, чем google (если только вы не напишете свой собственный скрипт).

Как заметил Гейб Сечан, решение grep возможно. Вот команда, которую я использовал, которая, похоже, помогла (рабочий каталог — это корень AOSP).

grep -inIEr "LOCAL_MODULE := libnfc-nci" .
person John Dempsey    schedule 12.04.2016

Вы должны попробовать: godir libnfc-nci Это должно дать вам варианты, если есть несколько таких каталогов.

person EyalBellisha    schedule 12.04.2016