这个问题可以分解成多个较小的问题。 最终结果是能够使用调试器(如gdb)在Galaxy Nexus(Android 4.1)设备的C / C ++ NFC实现中设置断点,以检查其内部状态。
更新: Rooting the device和compiling Jellybean总体上发生了一些小错误。事实上,libnfc makefile中有一些very nice flags,可以在通信时启用大量输出。
然而,仍存在调试问题。要调试libnfc(external / libnfc-nxp),我必须使用最可能是Nfc Manager(packages / apps / Nfc)的库将自己附加到进程。要调试应用程序,我必须设置debuggable flag。
如果我重建Nfc Manager,则签名与设备上已安装的签名不匹配,这意味着adb install -r <file>
将无效。 adb uninstall com.android.nfc
也不起作用。当我尝试安装新版本时,使用简单地从/system/app
删除apk的困难方法会产生错误INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
。此时Nfc根本不再工作了,我不得不重新刷新股票图像。
如何调试libnfc库还有其他想法吗?
答案 0 :(得分:10)
总的来说,答案是肯定的。完整的Android NFC实施是Android Open Source Project的一部分。您问题的具体部分的答案:
packages/apps/Nfc
(NFC管理员),external/libnfc-nxp
(C库),frameworks/base/core/java/android/nfc
(Java NFC API)和vendor/nxp
(NFC芯片固件)。