这个问题可以分解成多个较小的问题。最终结果将是能够使用 gdb 等调试器在 Galaxy Nexus (Android 4.1) 设备的 C/C++ NFC 实现中设置断点,以检查其内部状态。
- 是否可以将 Galaxy Nexus 设备上的库替换为包含调试符号的库?
- 是否可以使用 gdb 来调试 Android 设备的 C/C++ 实现?
- 是否可以交叉编译 Android 的 NFC 实现?
- 有没有人在另一个图书馆尝试类似的东西的例子?
更新: 植根设备和编译 Jellybean总体上进展顺利,但有一些小错误。事实上,在 libnfc makefile 中有一些非常好的标志,可以在通信时启用广泛的输出。
但是仍然存在调试问题。要调试 libnfc(外部/libnfc-nxp),我必须使用最有可能是 Nfc 管理器(包/应用程序/Nfc)的库将自己附加到进程。要调试应用程序,我必须设置可调试标志。如果我重建 Nfc 管理器,则签名与设备上已安装的签名不匹配,这意味着adb install -r <file>
无法正常工作。adb uninstall com.android.nfc
也不行。当我尝试安装新的apk时,使用简单地删除apk的硬方法/system/app
会产生错误。INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
此时 Nfc 根本不起作用,我不得不重新刷新库存图像。
还有其他想法如何调试 libnfc 库吗?