Spam BLE advertisements on iPhones!
iPhone 15s (latest) | Older iPhones |
---|---|
iphone_15.mp4 |
iphone_old.mp4 |
Based off of the work of ronaldstoner in the AppleJuice repository.
With the randomization optimizations it can render an iPhone almost useless with a single ESP32 (a new notification as soon as you close the old one).
Confirmed on:
- iPhone 15 (running iOS 17.1.2)
- iPhone 14 Pro Max (running iOS 17.2 b3) (See #19)
- iPhone 14 Pro (running iOS 16.6.1)
- iPhone 13 Pro (TBD which iOS)
- iPhone 11 (running iOS 16.6.1)
- iPhone X (running iOS 14.8 (18H17)) - only "AppleTV Keyboard", "TV Color Balance", "AppleTV Setup", "AppleTV Homekit Setup", "AppleTV New User".
Not working on:
- iPhone 4S (running iOS 10.3 (14E277))
Other observations:
- Doesn't seem to spawn notifications if Keyboard is open / Camera is open
Single ESP32 vs. iPhone 14 Pro @ iOS 16.6.1
applexd.mp4
This implementation makes the following changes:
- Random source MAC address (including
BLE_ADDR_TYPE_RANDOM
) - Randomly pick BLE Advertisement Type (this may lead to more success)
- Randomly pick one of the possible devices
And it makes these random choices every time it runs (default re-advertise every second).
Given the 29 devices and the 3 advertisement types, there are a total of 87 unique possible advertisements (ignoring the random source MAC) possible, of which one is broadcast every second.
Clone the repo, and easiest would be to use VS Code w/ PlatformIO to upload it to your ESP32.
This project has been tested on an ESP32-C3 from AirM2M.