2012/12/24

[nfc]NDEFクイズ !

[Q]
以下のデータをFeliCa Liteに書き込むと、Nexus7はNDEFとして認識してくれました。

[00] 10 04 01 00 0D 00 00 00 |........|
 .   00 00 01 00 00 70 00 93 |.....p..|
[01] 91 02 0A 48 73 12 D1 02 |...Hs...|
 .   04 61 63 01 01 30 00 5A |.ac..0.Z|
[02] 17 45 01 61 70 70 6C 69 |.E.appli|
 .   63 61 74 69 6F 6E 2F 76 |cation/v|
[03] 6E 64 2E 77 66 61 2E 77 |nd.wfa.w|
 .   73 63 30 43 00 10 4A 00 |sc0C..J.|
[04] 01 10 10 0E 00 30 10 26 |.....0.&|
 .   00 01 01 10 45 00 09 31 |....E..1|
[05] 32 33 34 35 36 37 38 39 |23456789|
 .   10 03 00 02 00 20 10 0F |..... ..|
[06] 00 02 00 08 10 27 00 04 |.....'..|
 .   31 32 33 34 10 20 00 06 |1234. ..|
[07] AA BB CC DD EE FF 10 49 |.......I|
 .   00 06 00 37 2A 00 01 20 |...7*.. |
[08] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[09] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[0A] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[0B] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[0C] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[0D] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[0E] FF FF FF FF FF FF FF FF |........|
 .   FF FF FF FF FF FF FF FF |........|
[80] 00 00 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[81] 00 00 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[82] 01 27 00 5D 19 FE 4B 78 |.'.]..Kx|
 *   12 34 00 00 00 00 00 00 |.4......|
[83] 01 27 00 5D 19 FE 4B 78 |.'.]..Kx|
 *   00 F0 00 00 02 06 03 00 |........|
[84] 00 00 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[85] 88 B4 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[86] 00 01 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[87] 00 00 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[88] FF:FF FF:01:07 00 00 00
 ..  00 00 00 00 00 00 00 00
 .:read & write, *:read-only

 

しかし、次のデータを書き込むとNDEFとして認識しませんでした。

[00] 10 04 01 00 0D 00 00 00 |........|
 .   00 00 01 00 00 71 00 94 |.....q..|
[01] 91 02 0A 48 73 12 D1 02 |...Hs...|
 .   04 61 63 01 01 30 00 5A |.ac..0.Z|
[02] 17 46 01 61 70 70 6C 69 |.F.appli|
 .   63 61 74 69 6F 6E 2F 76 |cation/v|
[03] 6E 64 2E 77 66 61 2E 77 |nd.wfa.w|
 .   73 63 30 44 00 10 4A 00 |sc0D..J.|
[04] 01 10 10 0E 00 31 10 26 |.....1.&|
 .   00 01 01 10 45 00 0A 31 |....E..1|
[05] 32 33 34 35 36 37 38 39 |23456789|
 .   30 10 03 00 02 00 20 10 |0..... .|
[06] 0F 00 02 00 08 10 27 00 |......'.|
 .   04 31 32 33 34 10 20 00 |.1234. .|
[07] 06 AA BB CC DD EE FF 10 |........|
 .   49 00 06 00 37 2A 00 01 |I...7*..|
[08] 20 00 00 00 00 00 00 00 | .......|
 .   00 00 00 00 00 00 00 00 |........|
[09] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[0A] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[0B] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[0C] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[0D] 00 00 00 00 00 00 00 00 |........|
 .   00 00 00 00 00 00 00 00 |........|
[0E] FF FF FF FF FF FF FF FF |........|
 .   FF FF FF FF FF FF FF FF |........|
[80] 00 00 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[81] 00 00 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[82] 01 27 00 5D 19 FE 4B 78 |.'.]..Kx|
 *   12 34 00 00 00 00 00 00 |.4......|
[83] 01 27 00 5D 19 FE 4B 78 |.'.]..Kx|
 *   00 F0 00 00 02 06 03 00 |........|
[84] 00 00 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[85] 88 B4 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[86] 00 01 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[87] 00 00 00 00 00 00 00 00 |........|
 *   00 00 00 00 00 00 00 00 |........|
[88] FF:FF FF:01:07 00 00 00
 ..  00 00 00 00 00 00 00 00
 .:read & write, *:read-only

 

さあ、なぜでしょう?

(OKテキストNGテキスト)

※ヒント:私もまだわかっていません・・・。


2つのNDEFレコードがあり、そのうち後者のサイズを+1したのだ。
Type3 Tagヘッダの長さも+1され、チェックサムも+1されてる。

成功している方は、こういう風に見えている。

# NFC data set information:
Current message size: 112 bytes
Maximum message size: 208 bytes
NFC data set access: Read & Write
 
# Handover Select record:
type: "Hs"
 
payload length: 10 bytes
payload data:
[0000] 12 D1 02 04 61 63 01 01 |....ac..|
[0008] 30 00                   |0.      |
 
# Wi-Fi Simple Configuration record:
ID: "0"
type: "application/vnd.wfa.wsc"
 
payload length: 69 bytes
payload data:
[0000] 43 00 10 4A 00 01 10 10 |C..J....|
[0008] 0E 00 30 10 26 00 01 01 |..0.&...|
[0010] 10 45 00 09 31 32 33 34 |.E..1234|
[0018] 35 36 37 38 39 10 03 00 |56789...|
[0020] 02 00 20 10 0F 00 02 00 |.. .....|
[0028] 08 10 27 00 04 31 32 33 |..'..123|
[0030] 34 10 20 00 06 00 1B 8B |4. .....|
[0038] B4 39 69 10 49 00 06 00 |.9i.I...|
[0040] 37 2A 00 01 20          |7*..    |

増やしたのは、Wi-Fi Simple Configuration recordの方。
こんなデータ(Excel。分析アドインがいると思う)を書き込んでるつもり。

NXPのTagInfoアプリを使って読んでいる。
そっち側の制限かと思ったが、そもそもAndroidがNDEFとして見てくれない。
いや、その言い方は正確じゃないな。
正しくは、メッセージがあるNDEFとして見てくれない、だ。
logcatで、NfcDispatcherはNDEFと思っているけれども、messageがnullだといっていたのだ。
intentもNDEFとして上がってこないのよねぇ。。。

 

自分で見る限りは大丈夫なように見えるけど、なんかダメなんだろう。
Androidって、NDEFの解析っぽいのはlibnfc-nxpでやってるせいか、あまりログが出ないのだな。

ペイロードの解析はしないと思うので、間違っているならNDEFレコードのヘッダ部分か、Type3のヘッダ部分だろう。
ちなみに、データサイズを-1しても-5くらいしてもOKだが、+1や+2したらダメだった。
ちょうどこのOKデータが境目なのだ。

 

なんか、ひどくくだらないところを見落としてるんだろうな・・・。
正解者には何も出ませんが、助けてくれー、というところです。

0 件のコメント:

コメントを投稿

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