最终结果是能够使用调试器(如gdb)在Galaxy Nexus( Android 4.1)设备的C/C++ NFC实现中设置断点,以检查其内部状态.
>是否可以将Galaxy Nexus设备上的库替换为包含调试符号的库?
>是否可以使用gdb来调试Android设备的C/C++实现?
>是否可以交叉编译Android的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库?
解决方法
>是的,您需要解锁引导加载程序并根设备以便能够以读/写模式安装系统分区,以便您可以更换NFC库.
>是的,您应该能够使用gdb进行远程调试.不过,我从未真正做过这件事.
>是的,只需下载Android源代码并编译NFC堆栈的相关部分即可.相关部分位于packages / apps / Nfc(NFC管理器),external / libnfc-nxp(C库),frameworks / base / core / java / android / nfc(Java NFC API)和vendor / nxp(NFC芯片固件) .
>是的,请参阅例如How to debug an App on Android with GDBSERVER?或https://www.google.com/search?q=remote+gdb+android.(这个问题也可能相关:Remote debugging with Android emulator)