BlueSpot автоматически включает Wi‑Fi-точку доступа, когда телефон подключается к выбранному Bluetooth-устройству. Основной сценарий — сели в машину, телефон соединился с магнитолой, hotspot включился, а головное устройство получило интернет.
Приложение написано на C# / .NET 10 for Android. Root не нужен, но для системного вызова включения точки доступа используется Shizuku.
Проверено на Xiaomi 14 Ultra (HyperOS, Android 16). Производители меняют системные компоненты Android, поэтому на другой прошивке результат не гарантирован. Если ваш телефон не даёт Shizuku нужных shell-разрешений, приложение не сможет обойти это ограничение.
- BlueSpot запускает foreground service и следит за подключениями Bluetooth.
- Событие принимается только для точного MAC-адреса устройства, выбранного пользователем.
- При подключении BlueSpot обращается к системному tethering Binder через Shizuku.
- Android включает обычную системную Wi‑Fi-точку с именем и паролем, которые уже заданы в настройках телефона.
- BlueSpot показывает уведомление об успешном запуске.
Приложение не запрашивает доступ в интернет и никуда не отправляет список устройств или другие данные.
- Скачайте APK BlueSpot на странице последнего релиза.
- Установите Shizuku с официальной страницы.
- Если Android блокирует APK, разрешите установку из этого источника только для приложения, через которое вы открыли файл.
На Android 11 и новее это можно сделать через беспроводную отладку, компьютер для обычного запуска не нужен.
- Подключите телефон к любой Wi‑Fi-сети. Мобильной сети для режима беспроводной отладки недостаточно.
- Включите «Параметры разработчика»: откройте сведения о телефоне и несколько раз нажмите на номер сборки или версию ОС.
- Откройте «Параметры разработчика» → «Беспроводная отладка» и включите её.
- В Shizuku выберите «Запуск через беспроводную отладку».
- Выполните сопряжение по коду, затем нажмите «Запустить».
Названия пунктов немного отличаются у Samsung, Xiaomi, Pixel и других производителей. Подробная пошаговая схема есть в официальной инструкции Shizuku.
Важно: после каждой перезагрузки телефона Shizuku нужно запустить снова. Сопряжение обычно повторять не требуется, но это ограничение самого Android нельзя встроить или тихо обойти внутри BlueSpot.
Откройте системные настройки телефона → «Точка доступа» и один раз задайте имя Wi‑Fi-сети, пароль и диапазон. BlueSpot включает уже настроенную системную точку и не хранит пароль у себя.
- Сопрягите телефон с магнитолой или другим нужным устройством в настройках Bluetooth.
- Откройте BlueSpot и выдайте разрешения на Bluetooth и уведомления.
- В шаге Shizuku разрешите приложению доступ.
- Нажмите «Выбрать устройство» и выберите магнитолу.
- На Xiaomi/HyperOS разрешите BlueSpot автозапуск и установите режим батареи «Без ограничений». На других прошивках добавьте приложение в исключения энергосбережения.
- Включите переключатель автоматизации.
Теперь сервис останется в фоне. При следующем подключении выбранного Bluetooth-устройства BlueSpot включит hotspot. Если Shizuku был запущен с задержкой после перезагрузки, сервис повторит неудавшуюся попытку через минуту, пока устройство остаётся подключённым.
- В постоянном уведомлении должно быть написано «BlueSpot активен».
- Откройте Shizuku и проверьте, что статус — «Shizuku запущен».
- В разделе авторизованных приложений Shizuku должен быть BlueSpot.
- Проверьте, что выбрано именно нужное Bluetooth-устройство.
- Отключите ограничения батареи и включите автозапуск приложения.
- Откройте системную точку доступа вручную хотя бы один раз и задайте пароль.
- После обновления прошивки заново запустите Shizuku и проверьте разрешение BlueSpot.
Нужны .NET 10 SDK, Android SDK API 36 и workload Android:
dotnet workload install android
dotnet build BtHotspot.csproj -c ReleaseДля обычной сборки .NET-проекта готовый Libs/bt-hotspot-bridge.aar уже лежит в репозитории. Исходник моста находится в NativeBridge/. Его отдельная пересборка требует Android Gradle Plugin, Refine и Android system API stubs, используемые проектом Delta.
- Shizuku — передача Binder-вызова с правами ADB shell без root.
- Delta — рабочая реализация управления tethering, на основе которой адаптирован минимальный Binder-мост.
- HiddenApiBypass — доступ к скрытым API Android.
- Refine — компиляция к скрытым системным API без упаковки подменных классов в приложение.
Полные уведомления о лицензиях находятся в THIRD_PARTY_NOTICES.md. При разработке, диагностике прошивки и подготовке документации использовалась нейросеть.