2013/02/15

[n7]Android 4.2.2で宿題は終わるのか?

以前、こんな記事を書いた。
[nfc]AndroidはType 3 TagのNDEFメッセージが113~127byteだと認識してくれない

コメントで「Android 4.2.1のバグかも」というお言葉をいただいた。
ふむふむ、そういうこともあるのか。
他の端末を試してみたいが、4.2.1は持ってないしな。。。。

 

と思って忘れていたところ、うちのNexus7に4.2.2のバージョンアップが降ってきた。
うひゃっほう(喜んでる叫びのつもり)。

以前試したデータでやってみよう。


結果!

image

読めた!
宿題は終わったんだ!!


まあ・・・別に私が修正したわけでもないし、直してもらうよう働きかけたわけでもないから、以前からわかっていたんだろうね。

こういう細かいところが修正されるのは、うれしいところだ。


気になったので、ソースファイルの変更箇所も調べることにした。
といっても、gitのログを見るだけだが。

https://android.googlesource.com/platform/external/libnfc-nxp/+/35f614f9db6e01ed6d07eda5fba5d647839d50a3%5E!/

おそらく、この変更だろう。
「Type 3 tag読み込みのとき、パディングを捨ててないのでNDEF解析に失敗する」ということらしい。

関数としては、phFriNfc_Felica_HChkApduBuff_Size()に変更が行われただけのようだ。
Type3のヘッダにあるサイズを使うか、読み込んだサイズを使うかの判断が追加された。

FeliCa Liteなどは16byte(1ブロック)単位でアクセスするが、その16byteにまるまる入っているわけではない。だから、それを調整したのか?
しかし・・・それだったら、もっとNDEF解析に失敗しただろう。

まあ、なんかあるんだろうね(深追いせず)。

0 件のコメント:

コメントを投稿

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

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