Androidアプリ「NFC TagInfo」でタグを読む

2012-05-10   treby   技術メモ  , , , このエントリーをはてなブックマークに追加

「NFC TagInfo」というNFC機能搭載Android端末向けアプリがある。このアプリ、端末から出ている搬送波に応答したNFCタグの情報を表示できるという優れものである。NFCタグリーダーはいくつかあるが、個人的にはこれが一番良い感じだと思う。

NFCタグ・カード

ところで、我が家にはそれなりの種類のNFCタグがある。いつの間にやらこんなに集まっていたなんて我ながらビックリだ。

NFC TagInfo画面 NFC TagInfo画面(読み取ったところ) NFC TagInfo画面(Tag information)

この記事では、手持ちのNFC/RFIDタグを「NFC TagInfo」を用いて情報表示させた結果を私の補足を含めて示す。各タグの結果は以下の書式をもって記録し、特記事項は別に示すこととする。

  1. RF technology(e.g. Type A(ISO/IEC 14443 Type A))
  2. Tag Type(e.g. MIFARE Classic 1K)
  3. ID Name & Length(e.g. UID (4bytes))
  4. Target technology classes(Android)

電子マネー

Edy自体は共通領域(システムコード0xFE00)を使用してるはず。

  1. Type F (JIS-X 6319-4 / FeliCa)
  2. FeliCa Standard
  3. NFCID2 / IDm (8bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.NfcF

クレジットカードとかマイレージカードとかによくついてるあれ。ヨドバシのカードとANAのカードの2枚で試した感じだとシステムコードは不定。Edyとかは共通領域(システムコード0xFE00)を使っていることを考えると、別のシステムが入っている可能性高し。

交通系ICカード

交通系ICカードはサイバネ領域(システムコード0x0003)を使っている。

  1. Type F (JIS-X 6319-4 / FeliCa)
  2. FeliCa Standard
  3. NFCID2 / IDm(8bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.NfcF

FeliCaのシステムコードは0x0003(サイバネ領域)。

ICカード免許証

  1. Type B (ISO/IEC 14443 Type B)
  2. ISO/IEC 14443-4 Smart Card
  3. PUPI (4bytes) // これがIDに相当するのかは不明
  4. Target technology classes(Android)
    • android.nfc.tech.IsoDep
    • android.nfc.tech.NfcB

NFC的不思議ちゃんを貫き続けるType B。行政系に多い印象。なお、免許証については以前ちょこっと調べた

おサイフケータイ

モバイルFeliCaチップ搭載端末(おサイフケータイ)。FeliCaサービスを使っていると、システムコード0xFE00が返り、そうでないと0xFFFFが返る。

  1. Type F (JIS-X 6319-4 / FeliCa)
  2. Mobile FeliCa
  3. NFCID2 / IDm(8bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.NfcF

サンプルは大学にあった大量のREGZA Phone(IS04)と自分のスマホ(INFOBAR A01)と過去使っていたガラケー(W61P)。これらはすべてモバイルFeliCaチップが載っている。

ご存知の通り、モバイルFeliCaは電源をバッテリーから供給している(RFIDでいうところのアクティブ・タグ)。これはユーザが任意におサイフ機能をON/OFFしたり、端末を紛失した時に遠隔地からFeliCaの機能を殺したりするためだと思われる。

さて、実験用の端末や放置していた端末はバッテリーが完全に空になっていたようで、そのままでは反応してくれなかった。故、給電しながら調査した。

おサイフケータイを調査していて面白かったのは、モバイルSuicaなどFeliCa対応アプリを入れている端末がシステムコード0xFE00(共通領域)を返すのに対して、入れていない端末では0xFFFF(オールビット1)が返ってきたことだ。どうも、おサイフケータイにおいてはFeliCaサービスを使い始めたタイミングで共通領域が生成されるようになっているらしい。

NFC QUEST

ブリリアントサービスさんのイベント向けNFCスタンプラリーシステム「NFC QUEST」のために用意されたカード・タグ。東京の方のNFCラボ主催イベントに顔出して、主催の方あたりに「NFC Questのカードが欲しいのじゃが」的なことを言うともらえるかもしれないし、もらえないかもしれない。

プロトタイプ版

NFC QUESTカード。MIFARE Classic 1K。

  1. Type A (ISO/IEC 14443 Type A)
  2. MIFARE Classic 1K
  3. UID (4bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareClassic
    • android.nfc.tech.NfcA
    • android.nfc.tech.NdefFormatable

恐らく中身は「ISO14443 TypeA compatibility」。「Google Developer Day」用に作成したけれど、様々な大人の事情からボツになったらしいレアなモデル。

Google Developer Day版

NFC QUESTカード Google Developer's Day版。MIFARE Classic 1K。

  1. Type A (ISO/IEC 14443 Type A)
  2. MIFARE Classic 1K
  3. UID (4bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareClassic
    • android.nfc.tech.NfcA
    • android.nfc.tech.NdefFormatable

そしてこちらが正式版と思われる。SlideShare にある資料によると、中身は「ISO14443 TypeA compatibility」。

NFC & Smart World 2012 「SAG×Sony」版

NFC QUESTカード NFC & Smart World SAG版。FeliCa Lite(NFC Forum Type 3 Tagに発行済)。

  1. Type F (JIS-X 6319-4 / FeliCa)
  2. FeliCa Lite
  3. NFCID2 / IDm (8bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.NfcF
    • android.nfc.tech.Ndef

NFC Forum Type 3 Tagに発行されたFeliCa Lite。NDEF messageがSmart Posterの書式になっているため、NFC端末をカードにかざすと、端末指定の意味のある動作をさせることが期待できる(手持ちのNexus Sだと直接ブラウザが起動され、NFC QUESTのページに飛ばされた)。タグの内容は以下の3つも同じ。

NFC & Smart World 2012 「凸版印刷×Sony」版

NFC QUESTカード NFC & Smart World 凸版印刷版。FeliCa Lite(NFC Forum Type 3 Tagに発行済)。 NFC QUESTカード NFC & Smart World 凸版印刷版。FeliCa Lite(NFC Forum Type 3 Tagに発行済)。

NFC QUESTカードのピカピカモデル。イベントでも一番人気だったとかなんとか。

NFC & Smart World 2012 「DNP×Sony」版

NFC QUESTカード NFC & Smart World DNP版。FeliCa Lite(NFC Forum Type 3 Tagに発行済)。 NFC QUESTカード NFC & Smart World DNP版。FeliCa Lite(NFC Forum Type 3 Tagに発行済)。

これは余談だが、FeliCaにおいてシステムコードが0x88B4だったらFeliCa Liteである。

NFC & Smart World 2012 「サトー×Sony」版

NFC QUESTカード NFC & Smart World サトー版。FeliCa Lite(NFC Forum Type 3 Tagに発行済)。

シールを貼り合わせて自分でカードを作るタイプ。薄い。カードを透かした感じ、多分後述のFeliCa Liteシールが入っているんだと思う。

NFC & Smart World 2012 「UPM×NXP」版

NFC QUESTタグ NFC & Smart World UPM版。NTAG203(NFC Forum Type 2 Tagに発行済)。

  1. Type A (ISO/IEC 14443 Type A)
  2. NTAG203
  3. UID (7bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareUltralight
    • android.nfc.tech.NfcA
    • android.nfc.tech.Ndef

NFC & Smart World 2012版の中で唯一の非「FeliCa Lite」。シール形状になっている。NFC Forum Type 2 Tagに発行されている。NDEF messageはSmart Poster形式で、NFCポータルに飛ばされるようになっている。

UPMタグサンプル

UPMタグサンプル。全4種類。

東京・八重洲のRFID / NFC Real Touch Shopに行って「サンプルちょーだい♪」と言えばもらえるかもしれないし、「何この人、残念な子……!」的な顔をされるかもしれない。

NFC TAGS AND INLAYS

NFC TAGS AND INLAYS NFC TAGS AND INLAYS 裏面 NFC TAGS AND INLAYS 内容

写真の上段左

  1. Type A (ISO/IEC 14443 Type A)
  2. MIFARE Ultralight(MF0ICU1)
  3. UID (7bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareUltralight
    • android.nfc.tech.NfcA
    • android.nfc.tech.NdefFormatable

写真の上段中央、下段左

  1. Type A (ISO/IEC 14443 Type A)
  2. MIFARE Ultralight C(MF0ICU2)
  3. UID (7bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareUltralight
    • android.nfc.tech.NfcA
    • android.nfc.tech.NdefFormatable

写真の上段右、下段右

  1. Type A (ISO/IEC 14443 Type A)
  2. MIFARE Classic 1K
  3. UID (7bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareClassic
    • android.nfc.tech.NfcA
    • android.nfc.tech.NdefFormatable

NTAG203 NFC TAGS AND INLAYS

NTAG203 NFC TAGS AND INLAYS NTAG203 NFC TAGS AND INLAYS 裏面 NTAG203 NFC TAGS AND INLAYS 内容

すべて共通

  1. Type A (ISO/IEC 14443 Type A)
  2. NTAG203
  3. UID (7bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareUltralight
    • android.nfc.tech.NfcA
    • android.nfc.tech.Ndef

HF RFID TAGS AND INLAYS

HF RFID TAGS AND INLAYS HF RFID TAGS AND INLAYS 内容

写真の上段左、上段中央

  1. Type V (ISO/IEC 15693 / Vincinity)
  2. SL2 ICS2001 (ICODE SLI)
  3. UID (8bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.NfcV
    • android.nfc.tech.NdefFormatable

写真の上段右、下段左、下段右

  1. Type V (ISO/IEC 15693 / Vincinity)
  2. SL2 ICS2002/SL2 S2102 (ICODE SLIX)
  3. UID (8bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.NfcV
    • android.nfc.tech.NdefFormatable

Type Vは全体的に読み込みに時間がかかる印象。

UHF RFID TAGS AND INLAYS

UHF RFID TAGS AND INLAYS UHF RFID TAGS AND INLAYS 内容

こいつらはUHF帯(900MHzくらい)のRFIDタグなので読めず。当然か。

orange Tags

orange Tags

MIFARE Classic 1K

  1. Type A (ISO/IEC 14443 Type A)
  2. MIFARE Classic 1K
  3. UID (4bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareClassic
    • android.nfc.tech.NfcA
    • android.nfc.tech.NdefFormatable

MIFARE Ultralight

  1. Type A (ISO/IEC 14443 Type A)
  2. MIFARE Ultralight(MF0ICU1)
  3. UID (7bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareUltralight
    • android.nfc.tech.NfcA
    • android.nfc.tech.NdefFormatable

FeliCa Lite

  1. Type F (JIS-X 6319-4 / FeliCa)
  2. FeliCa Lite
  3. NFCID2 / IDm(8bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.NfcF

Amazonで取り扱ってくれている(MIFARE Classic 1KMIFARE UltralightFeliCa Lite)ので手に入れやすい。

Touchanote

Touchanote。MIFARE Ultralight C(NFC Forum Type 2 Tag発行済)。

  1. Type A (ISO/IEC 14443 Type A)
  2. MIFARE Ultralight C(MF0ICU2)
  3. UID (7bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareUltralight
    • android.nfc.tech.NfcA
    • android.nfc.tech.Ndef

昨年GIGAZINEで紹介され話題となったTouchanote。カナダから発送のため時間はかかるが、リーズナブルな値段でタグが手に入るので魅力的。ただしNFCタグに関しては、今年初めにオープンしたRFID / NFC Real Touch Shopでも入手可能。デフォルトではNDEF messageとしてURIが入っている。

RL-700Sのラベル

ブラザーラベルプリンタRL-700Sのラベル。Type V。

  1. Type V (ISO/IEC 15693 / Vincinity)
  2. SL2 ICS2001 (ICODE SLI)
  3. UID (8bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.NfcV
    • android.nfc.tech.Ndef

ブラザー工業のNFCラベルプリンタRL-700S(生産終了)から出力されたシールに入っているタグ。写真は@touchRLさんにハッカソンの時についったー NFC ラベルメーカーで作っていただいたもの。NDEF messageには@h_madoromiのURIが入っている。

e-Amusement Pass

KONAMIのe-AMUSEMENT PASS。Type V。

  1. Type V (ISO/IEC 15693 / Vincinity)
  2. SL2 ICS2001 (ICODE SLI)
  3. UID (8bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.NfcV
    • android.nfc.tech.NdefFormatable

ゲームセンターにおいてあるKONAMIのネットワーク対戦機能搭載の筐体に必要なIDカード。300円で買える。マジアカ、キャラがリストラされたり復活したり、大変である。

ホテルのメンバーズカード(兼ルームキー)

  1. Type A (ISO/IEC 14443 Type A)
  2. MIFARE Classic 1K
  3. UID (4bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.MifareClassic
    • android.nfc.tech.NfcA
    • android.nfc.tech.NdefFormatable

都内某ホテル。コミケの時にお世話になってる。

スマートタグ

アイオイシステムズのスマートタグ。FeliCa Plug内蔵。

  1. Type F (JIS-X 6319-4 / FeliCa)
  2. FeliCa Plug
  3. NFCID2 / IDm (8bytes)
  4. Target technology classes(Android)
    • android.nfc.tech.NfcF

大人気!アイオイシステムズさんのスマートタグ。ライブラリも充実しているのでアイデアがあれば遊べる。NFC勉強会で発表したのは私にとって地味に黒歴史。当日資料完成させるのはいかんね、うん。

その他

FeliCa Liteシール

FeliCa Liteシール

その名の通り、FeliCa Lite。ハッカソンの時に@SDK4FeliCaさんが配られていた。

ペットボトルオーバーキャップ

東洋製罐のペットボトルオーバーキャップ 中にNTAG203が仕込まれている

ペットボトルのキャップが開けやすくなるグッズ。NTAG203シールの応用例。

NFCタグ入りストラップ

NFCストラップ。NTAG203。

これも中身はNTAG203だった。

まとめ

さまざまなタグを読んでみて、帰納的に以下のことが分かった。最初からこれを書けよという話ではあるが。

  • NFC Technologyは、Type A、Type B、Type F、Type Vの4つ。
  • Android的には、NFC Forum Type X Tag(NDEF用に発行されているもの)が扱いやすい。
  • NFC TagInfoでのFeliCaシリーズの微妙なやっつけ感。MIFAREだとTag Nameまで細かく表示してくれるのに。

何はともあれ、多彩な種類のタグを同じ端末で読み取れるのはすごいことだと思う。