私が知っている限り、今日のアンドロイド携帯電話は、BLEビーコンとして機能することができます(この機能は通常ほとんどのデバイスで無効になっています)。アンドロイドデバイスがビーコンとして動作し、検出可能な場合、そのMACアドレスはランダム化されていますか?デバイスが検出可能なときに実際のMAC IDを表示しないことはありますか?Macアドレスランダム化Bluetooth LEブロードキャスト
答えて
5.0以降のほとんどの新しいAndroidデバイスは、Bluetooth LEペリフェラルモードをサポートしているため、ビーコンとして送信できます。この機能はAndroid 5.0以降に搭載されていますが、一部のメーカーでは一部のモデル(特に旧モデル)のサポートを無効にすることを選択しています。 http://altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html
この機能がイネーブルになっていると、MACアドレスは送信中にランダム化されず、送信にはデバイスの実際のBluetooth MACアドレスが含まれているため、この機能はサポートされていません。このMACアドレスを読み取るデバイスを受信します。
EDIT:上記の記述が間違っていることが判明しました。送信元を再起動するたびにMACアドレスがランダム化されます。あなたはaを見ることができますproof of this here.
これを変更するためのメカニズムはありません。
Androidでスキャンすると、送信からの実際のMACアドレスが返されます。これを証明するため、iOS 8.3搭載のiPod Touch 5th Generationでロケートアプリを使用してiOSビーコン送信機を起動し、LinuxデバイスとAndroid 6.0搭載のNexus 5Xの両方で同時にデバイスをスキャンしました:
Androidアンドロイド6.0でネクサス5倍にビーコンアプリケーションを見つけます。 MACアドレス:60:35:48:79:D8:08
のLinuxのbluez sudo hcitool lescan
: MACアドレス:60:35:4B:79:D8:0B
ご覧のとおり、両方のデバイスで同じMACアドレスが読み取られ、AndroidまたはLinuxのスキャンで偽装されていないことが証明されます。
つ以上のノート:セッティングでのiOS 8.3とiPodタッチで報告
BluetoothのMACアドレス - >一般 - > Bluetoothは2Cをレポート:FF:EE:XX:XX:XX(最後の3ブランクアウトされたオクテット)は送信されたアドレスとは異なります。これは、iOSが送信時にMACアドレスをランダム化することを示しています。
LinuxとAndroidで検出されたBluetooth MACアドレスは、iOSデバイスで広告を停止して再起動しても変更されないため、iOSは再起動後も同じランダム化されたアドレスを保持します。 iOSデバイスを再起動して送信を再開した後、LinuxとAndroidが異なるMACアドレス46:59:C9:CB:0C:D5を検出しました。これは、無作為に送信されたMACが、iOSでの再起動を経た変更であることを示しています。
- 1. Windows 10 IoT Bluetooth LE
- 2. Bluetoothブロードキャスト
- 3. Bluetooth LE L2CAP CID vs. PSM
- 4. C#スキャンのBluetooth LEデバイス
- 5. MIDIのBluetooth LE、SysExメッセージはMIDIのBluetooth LEフレームワークを使用して
- 6. Bluetooth並行LEセットスキャンイネーブルとLE作成接続コマンド
- 7. MSWINDOWS用のBluetooth LE 4.0用のJavaライブラリおよび/またはMac OSX
- 8. Bluetooth LEでのAndroidアプリのクラッシュ
- 9. 同じBDADDRのBluetooth LEデバイスを使用
- 10. Bluetooth LEのシングルモードとデュアルモードのペアリング方法
- 11. Xamarin AndroidからのBluetooth LEの特性
- 12. Bluetooth LE - クライアントとサーバーの決定
- 13. Nexus 9のBluetooth LE接続の問題
- 14. PhoneGap/CordovaでBluetooth LEのアプリを起動
- 15. BluetoothとBluetooth LEのペア設定の違いは?
- 16. コアBluetoothを使用してバックグラウンドでBluetooth LE周辺広告を取得する
- 17. Bluetooth LE MACアドレスを使用してアンドロイドデバイスを一意に識別する方法は?
- 18. ペアリングとBluetooth/BlutoothのLEを介してiPhoneアプリに接続
- 19. ここではiOS Bluetooth LEの例ですperipheralManager didReceiveWriteRequests
- 20. Bluetooth LE(スマート)コーヒーメーカーの正しいサービス定義は何ですか?
- 21. Android Bluetooth LE - フロート特性を読み取る
- 22. Java同期ロックがタブレットをハングアップする(Bluetooth LE Android)
- 23. AndroidのBluetooth LEにデータを書き込む
- 24. Bluetooth LEが一時停止中に切断する
- 25. Xamarin/Androidと恐ろしいBluetooth LEエラー133(GATT_ERROR)
- 26. bluez python dbusインターフェイスを使用してBluetooth LEデバイスに接続
- 27. Bluetooth LE ScanFiltersがAndroid Mで動作しない
- 28. Bluetooth LEが複数の特性通知を聞きます
- 29. Bluetooth LEの16ビット特性を処理する方法
- 30. Bluetooth LEスキャンでデバイスが検出されない
スキャンは、MACアドレスおよび識別を偽装(オープンネットワークまたはEddystone Bluetoothのビーコンを見つけるための)..私はマシュマロので、AndroidはバックグラウンドのWi-FiおよびBluetoothスキャンを行うときことを、いくつかの記事で読んだことが明確にするためのおかげで、無作為化された値として。 それはスキャン中にMACアドレスをランダム化しますが、検出可能な場合はMACアドレスをランダム化しません。 もう1つの質問 - 私はBluetooth LEのプライバシー機能(https://blog.bluetooth。com/bluetooth-technology-privacy-your-privacy)は、MACアドレスのランダム化がハードウェア自体で行われるため、これはペリフェラルでのみ有効になっていますか? – clearb
MACランダム化のためのBluetoothチップセットのサポートは一般的なハードウェア機能ですが、APIバインディングがないため、Androidでこれを有効にする方法はありません。はい、Android 6.0の場合、BLE APIは検出されたパケットの偽装MACアドレスを返します(Androidは内部アドレスを実際のアドレスにマップします)。これは純粋に領収書のマッピングです。 iOSのCoreBluetooth APIも同様の機能を果たします。 Android 5.xではこれが行われないため、実際のMACを読み取ることができます。デバイススキャン中に実際のMACを返すWindows APIとLinux APIについても同様です。 – davidgyoung
「Android 6.0以降、BLE APIは検出されたパケットの偽装MACアドレスを返します(Androidは内部アドレスを実際のアドレスにマップします)」.... So偽装は、ブルートゥースが広告をしていない間にスキャンしている間にのみ発生しますか? IOSと同じですか? http://stackoverflow.com/questions/28602672/android-5-static-bluetooth-mac-address-for-ble-advertising この質問は反対に向いているようです...私の質問が素朴であれば申し訳ありません – clearb