2012/12/28

[nfc]NDEFクイズの続き - Android側か?

ここ数日試しているNDEFのデータがある。

私の手動解析では、問題ない。
nfcpy解析でも、問題ない。

では、Android側か?


そんなわけで、今回は別のツールを使うことにした。
こういうときは、SonyさんのNDEF Writerだ。

Androidでは、NDEFペイロードのパースはアプリがやることになっている、と先生がいっておられた。
であれば、今回の現象は私が作ったNDEFデータだけでなく、他のでも発生するはずだ。

NDEF WriterはSmartPosterのNDEFを作るWindowsアプリ(というか、AIRアプリか)。
これで、じりじりと試す。

 

FeliCa Liteで試したところ、NDEFメッセージ長(Type 3 TagのLn値)が112byteまではOK、113~127byteまでNG、128byteはOKとなった。

NDEFパーサのバグなら、Type2 Tagでも発生するだろう。
FeliCa Liteだけで発生するなら、Type3 Tagのヘッダ解析にバグがあるのか。
Nexus7などで発生してNexus10で発生しないなら、libnfc-nxpが持つバグってことになるんじゃなかろうか(たしかNexus10は、Broadcomだったかと)。

 

Type3 TagのLnは3byteのビッグエンディアンデータ。
だから、読んだときは自分でint値か何かに変換しているのだろう。

 

112    0x70    0111_0000  OK
113    0x71    0111_0001  NG
114    0x72    0111_0010  NG
・・・
126    0x7E    0111_1110  NG
127    0x7F    0111_1111  NG
128    0x80    1000_0000  OK

 

Javaは確かunsignedがないから、そこら辺でミスがあるのでは・・・と思ったが、よくわからんかった。

今日はもう眠たいし、明日は飲み会があるので頭が回らないだろうから、あとは他の人にお任せしよう・・・。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。