2017年2月20日

LINE BeaconはBLEビーコンの1種だったのですね

さっぱり知らなかったのですが、RasPiみたいにでかくて電源系のお守りが必要な子でクローンがんばるのも大変だろう、とiBeacon互換(でスマホクローンができるのかどうか)のあたりだけちょっとのぞいてみました


ラズベリーパイでLINE Beaconが作成可能に!「LINE Simple Beacon」仕様を公開しました
https://engineering.linecorp.com/ja/blog/detail/117
LINE Simple Beacon
https://github.com/line/line-simple-beacon/blob/master/README.ja.md

>LINE Simple Beaconは、デバイスのなりすましを抑制するメカニズムが存在していません。 そのため、ビーコンデバイス識別IDでの正真性を前提としたBotサービスには利用しないでください。
うい。

02 # Data length : 2byte
01 # AD Type : Flags
06 # BR/EDR Not Supported(4) | LE General Discoverable Mode(2)

03 # Data length : 3byte
03 # AD Type : Complete list of 16-bit UUIDs available
6F # 0xFE6F固定 LINE corp
FE

0E # Data length : 14byte
16 # AD Type : Service Data
02 # 02固定 [LINE Simple Beacon仕様] Frame Type
XX XX XX XX XX # HWID, Line Botから払い出される
7F # 7F固定? [LINE Simple Beacon仕様]

というわけで比較するとこんな感じ。

iBeacon:
 Flags(3bytes) + Manufacturer Specific Data(26bytes)(UUID+Major+Minor+TXの入ったいつものやつ)

LINE Simple Beacon:
 Flags(3bytes) + Service 16bit-UUID(4bytes) + Service Data(14bytes)(HWID 5bytesのみ)
 または
 Flags(3bytes) + Service 16bit-UUID(4bytes) + Service Data(23bytes)(HWID+Device Message 9bytes含む)

・LINEアプリが勝手に吸ってサーバにあげて、(必要なら認証の上)LINE bot/LINEアプリにコールバックっぽい。
・iBeaconじゃないのでiOSのBackgroundあれこれの恩恵は受けられない。iOSアプリでLINE Simple Beaconクローンも作れない。それで「お店でアプリを起動して、商品でボタン押してね」なのですかね
・Eddystone-UID互換でもない、やる気あるな。
・LINE BOTの「うおおおそこあけてきたか」級ではなくて、LINE MALLぐらいの感覚で期待するのが良さそう:)


○きがむいたらかくにんする

たぶんAndroidでもSimple Beaconは組める
https://developer.android.com/reference/android/bluetooth/le/AdvertiseData.Builder.html#addServiceData(android.os.ParcelUuid, byte[])

ただし、setConnectable(false)で02 01 06のFlagsがちゃんと出てくれそうなら。
https://developer.android.com/reference/android/bluetooth/le/AdvertiseSettings.Builder.html#setConnectable(boolean)
・setConnectable(true)だと02 01 16になって互換があやしい
・んでも本物のLINE Beaconはメッセージ書き換えとかできるだろうし02 01 16だったりしないかな...それとも多重Advertiseかな

コメントする