这个问题可以分解成多个较小的问题。最终目标是能够使用像gdb这样的调试器在Galaxy Nexus(Android 4.1)设备的C/C++ NFC实现中设置断点以检查其内部状态。
1. 是否有可能用包含调试符号的库替换Galaxy Nexus设备上的库? 2. 是否有可能使用gdb调试Android设备的C/C++实现? 3. 是否有可能交叉编译Android的NFC实现? 4. 是否有任何人尝试过类似的事情,也许是使用另一个库?
更新:Rooting the device和compiling Jellybean总体上都很顺利,只有一些小错误。实际上,在libnfc makefile中有一些非常好的标志,可以在通信时启用广泛的输出。
然而,仍存在一个调试问题。要调试libnfc(external/libnfc-nxp),我必须使用库连接到进程,最可能是Nfc Manager(packages/apps/Nfc)。要调试应用程序,我必须设置debuggable flag。如果我重新构建Nfc Manager,则签名与设备上已安装的签名不匹配,这意味着
1. 是否有可能用包含调试符号的库替换Galaxy Nexus设备上的库? 2. 是否有可能使用gdb调试Android设备的C/C++实现? 3. 是否有可能交叉编译Android的NFC实现? 4. 是否有任何人尝试过类似的事情,也许是使用另一个库?
更新:Rooting the device和compiling Jellybean总体上都很顺利,只有一些小错误。实际上,在libnfc makefile中有一些非常好的标志,可以在通信时启用广泛的输出。
然而,仍存在一个调试问题。要调试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
,当我尝试安装新的apk时。此时,Nfc完全不起作用了,我不得不重新刷写原始映像。有没有其他想法如何调试libnfc库?
adb reboot bootloader; fastboot flashall
将其刷入设备呢?这样您就可以完全控制设备了。 - NFC guy