ble_adv ======== Presentation ------------- This module sends advertisements. It allows to configure the data to transmit (*ADVERTISING_DATA* for normal advertisements and *SCANNING_DATA* for scan responses), the advertising address (*ADVERTISING_ADDRESS*) or the time interval of transmission (*INTERVAL_MIN* and *INTERVAL_MAX*). It provides three modes, according to the value of the *TIME* input parameter : * **if no value is specified ("")** : the module never stops and runs an infinite loop (it allows to implement the role *Advertiser*) * **if the value 0 is specified ("0")** : the module enables the emission of advertisements and stops immediatly (it allows to implement the role *Peripheral* if this module is combined with `ble_slave `_) * **if a positive value is specified (e.g. "10")** : the module enables the emission of advertisements and runs during the specified duration If the module execution is successful, the *INTERFACE* parameter is propagated as an output parameter. Compatible devices ------------------ * `HCI Device `_ * `Sniffle Device `_ * `HackRF Device `_ Input parameters ---------------- +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | Name | Default value | Possible values | Description | +========================================+=======================================+=============================================================+===========================================================================================+ | INTERFACE | hci0 | hciX, sniffleX, hackrfX | Interface to use | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | AVERTISING_TYPE | ADV_IND | | Advertisment type | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | ADVERTISING_DATA | | | Advertised data | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | ADVERTISING_ADDRESS | | | Advertiser's address | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | DESTINATION_ADDRESS | | | Optional destination address | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | ADVERTISING_ADDRESS_TYPE | public | public|random | Type of the advertiser's address | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | DESTINATION_ADDRESS_TYPE | public | public|random | Type of the destination's address | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | INTERVAL_MIN | 200 | | Minimal time interval between emissions | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | INTERVAL_MAX | 210 | | Maximal time interval between emissions | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | ENABLE | yes | yes|no | Activate advertising mode (for use in piped operations to advertise at specific times) | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | TIME | 0 | | Execution duration (in seconds) | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | SCANNING_DATA | | | Additional data to send in SCAN_RESP advertisements | +----------------------------------------+---------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------------------------------+ Output parameters ------------------ +----------------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------+ | Name | Possible values | Description | +========================================+=============================================================+======================================================================+ | INTERFACE | hciX, sniffleX, hackrfX | Selected interface | +----------------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------+ Usage ------ If you want to send a specific advertisement, use the following syntax : :: $ sudo mirage ble_adv TIME="" ADVERTISING_DATA=0201060eff0d000500e18002390700000664 [INFO] Module ble_adv loaded ! [SUCCESS] HCI Device (hci0) successfully instanciated ! ^C[INFO] Mirage process terminated ! If you want to send it during a specific amount of time : :: $ sudo mirage ble_adv TIME="3" ADVERTISING_DATA=0201060eff0d000500e18002390700000664 [INFO] Module ble_adv loaded ! [SUCCESS] HCI Device (hci0) successfully instanciated ! [INFO] Mirage process terminated ! If you want to scan the advertisements emitted by a specific device and clone them, use the following sequential execution : :: $ sudo mirage "ble_scan|ble_adv" ble_scan1.TARGET=FF:FF:60:A5:17:44 ble_scan1.TIME=3 ble_adv2.TIME="" [INFO] Module ble_scan loaded ! [INFO] Module ble_adv loaded ! [SUCCESS] HCI Device (hci0) successfully instanciated ! ┌Devices found──────┬──────────────────┬─────────┬───────────────────────────────────────────────────┬─────────────────────────────────────────────────┐ │ BD Address │ Name │ Company │ Flags │ Advertising data │ ├───────────────────┼──────────────────┼─────────┼───────────────────────────────────────────────────┼─────────────────────────────────────────────────┤ │ FF:FF:60:A5:17:44 │ iTAG │ │ LE Limited Discoverable Mode,BR/EDR not supported │ 020105020a000319c1030302e0ff (ADV_IND) │ │ │ │ │ │ 110969544147202020202020202020202020 (SCAN_RSP) │ └───────────────────┴──────────────────┴─────────┴───────────────────────────────────────────────────┴─────────────────────────────────────────────────┘ ^C[INFO] Mirage process terminated ! If you want to simulate a full Peripheral, please refer to the documentation of `ble_slave `_.