Google Pixel AOSPビルド(android-8.0.0_r3)のNFCコードを勉強しています。HOSからApplication FrameworkレイヤーへのAOSP NFCデバイスコールフロー
struct nfc_nci_module_t HAL_MODULE_INFO_SYM = {
.common =
{
.tag = HARDWARE_MODULE_TAG,
.module_api_version = 0x0100, /* [15:8] major, [7:0] minor (1.0) */
.hal_api_version = 0x00, /* 0 is only valid value */
.id = NFC_NCI_HARDWARE_MODULE_ID,
.name = "NXP PN54X NFC NCI HW HAL",
.author = "NXP Semiconductors",
.methods = &nfc_module_methods,
},
};
をhw_get_module(NFC_NCI_HARDWARE_MODULE_ID)
がhardware/interface/nfc/1.0/default/nfc.cpp : HIDL_FETCH_INfc(...)
でそれを見つけ介して、このハードウェアモジュールがロードされている:私は次のようにすべての方法Androidのハードウェアモジュールsystem\nfc\halimpl\pn54x\nfc_nci.c
にカーネルからのコールフローを理解することができます。今私はAOSPがHIDL_FETCH_INfc(...)
を呼び出した場所を見つけることができず、次のレイヤーにどのようにリンクしていますか?
dir 'hardware/interface/nfc'に' jniRegisterNativeMethods(...) 'がありません – Consy
端末で' jniRegisterNativeMethods'を見つけることができないことを意味しますか? 'grep -r jniRegisterNativeMethods' inハードウェア/インタフェース/ nfcディレクトリ? –
はい、それはハードウェア/インターフェイス/ nfcのディレクトリでそれを見つけることができませんでした – Consy