この問題は、複数の小さな問題に分解できます。最終結果として、gdb などのデバッガーを使用して Galaxy Nexus (Android 4.1) デバイスの C/C++ NFC 実装にブレークポイントを設定し、内部状態を調べることができます。
- Galaxy Nexus デバイスのライブラリを、デバッグ シンボルを含むライブラリに置き換えることはできますか?
- gdb を使用して Android デバイスの C/C++ 実装をデバッグすることはできますか?
- Android の NFC 実装をクロスコンパイルすることは可能ですか?
- おそらく別のライブラリで誰かが似たようなことを試みている例はありますか?
更新: デバイスのルート化とJellybean のコンパイルは全体的にうまくいきましたが、いくつかの小さなエラーがありました。実際、libnfc makefile には、通信中に大量の出力を可能にする非常に優れたフラグがいくつかあります。
ただし、まだデバッグの問題があります。libnfc (external/libnfc-nxp) をデバッグするには、Nfc Manager (packages/apps/Nfc) である可能性が最も高いライブラリを使用してプロセスに接続する必要があります。アプリケーションをデバッグするには、debuggable フラグを設定する必要があります。Nfc マネージャーを再構築すると、署名がデバイスに既にインストールされている署名と一致しないため、機能しませんadb install -r <file>
。adb uninstall com.android.nfc
どちらも機能しません。apk を単純に削除するという難しい方法を使用すると、新しい apk をインストールしようとすると/system/app
エラーが発生します。INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
この時点で、Nfc はまったく機能しなくなり、ストック イメージを再フラッシュする必要がありました。
libnfc ライブラリをデバッグする他のアイデアはありますか?