ShizuStore

EasySpot

EasySpotApp

1.5.0 · GitHub

Download APK
Network Android 12+ 11 months ago GPL-3.0
24 ShizuStore
904 GitHub
51 Stars
2 MB Size

More about this app

An app that allows you to turn on your hotspot remotely via Bluetooth - think Apple Continuity, but for everyone

EasySpot

An Android app that allows you to turn on (or off) your hotspot remotely via Bluetooth - think Apple Continuity, but for everyone!

Requirements

  • An Android phone
    • with Android 12 or higher
    • with Bluetooth Low Energy (BLE) advertising support
    • with Shizuku installed and running
  • The client program on a computer with Bluetooth Low Energy or nRF Connect Mobile on another BLE-capable phone

Setup

  1. Install and set up Shizuku
  2. Install the EasySpot app from GitHub Releases
  3. Open the app and grant all permissions
  4. Follow the instructions in the client's README to set up the client program

TODO

  • Android 11 and lower support
  • More robust, Rust-based client with a system tray icon and WiFi auto-connection
  • Android client
  • More hotspot control methods for improved reliability on different OS versions
  • About menu

BLE API

This app exposes a BLE GATT service to allow remote control of the hotspot.

  • Service UUID: 7baad717-1551-45e1-b852-78d20c7211ec
  • Status characteristic UUID: 47436878-5308-40f9-9c29-82c2cb87f595
    • Properties: Write, Read, Notify
    • Values: [0x00] (hotspot off), [0x01] (hotspot on)

The app's settings (gear icon in the top right) allow you to configure the security options ( encryption, MITM protection) - it's set to encrypted (pairing required) without MITM protection by default.

Implementation details can be found in xyz.ggorg.easyspot.service.server.

License and Credits

This project is licensed under the GNU GPL v3.

Big thanks to supershadoe's Delta project (licensed under BSD-3-Clause)! Some code, specifically related to hidden API hotspot control, has been adapted from there.

This project also uses:

Close

How Shizuku is used

Can turn the Wi-Fi hotspot on and off remotely via Bluetooth with `ITetheringConnector` through Shizuku.

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Shizuku is used to access the system tethering and Wi-Fi services so the hotspot can be controlled by a paired Bluetooth device.

  • Control hotspot remotely: a paired device writing to the Bluetooth hotspot characteristic turns the Wi-Fi hotspot on or off through the privileged tethering service.
  • Track hotspot status: the app listens for hotspot state changes through the privileged Wi-Fi service so it knows whether the hotspot is enabled and can report it to connected Bluetooth devices.

Android APIs or commands used

  • ITetheringConnector.startTethering
  • ITetheringConnector.stopTethering
  • IWifiManager.registerSoftApCallback
  • IWifiManager.unregisterSoftApCallback
Close

Changelog

What's new for version 1.5.0

  • Migrated to a more stable HiddenAPI implementation
  • Enabled optimizations (reduced APK size from 24.8MB to 2.1MB)
  • Added an icon
  • Implemented read and notify actions
Close

Permissions

8 permissions requested

  • android.permission.BLUETOOTH_ADVERTISE
  • android.permission.BLUETOOTH_CONNECT
  • android.permission.POST_NOTIFICATIONS
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE
  • android.permission.RECEIVE_BOOT_COMPLETED
  • xyz.ggorg.easyspot.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close