Korean version: README.ko.md
PhonePad is an Android-first input app that turns a phone screen into a Bluetooth trackpad-style controller for Windows and macOS.
The v1.0 path is Android Direct Bluetooth HID Device mode: the host computer should see the phone as a standard Bluetooth mouse/keyboard composite device, without installing a desktop server app.
PhonePad is free and open source under the GNU General Public License v3.0 or later. You can build it yourself or download APKs from GitHub Releases. A paid Play Store version may be offered later as a convenience build with automatic updates; purchasing it supports continued development.
PhonePad does not use ads, accounts, analytics, tracking SDKs, or internet permission. Sponsorship is available through GitHub Sponsors: github.com/sponsors/Tygb99.
- Android API 28+ compatibility check for
BluetoothHidDevice. - Pairing with Windows 11 and current macOS as a standard Bluetooth HID input device.
- Cursor movement, left click, right click, vertical and horizontal scroll.
- Explicit Drag Mode toggle instead of long-press drag.
- Three core three-finger gestures mapped to OS-specific keyboard shortcuts.
- No account, no ads, no tracking SDK, no internet permission.
- Korean-first app UI with English README and public GitHub release artifacts.
- Bridge Dongle is a Phase 0 spike, not the v1.0 default path.
- iOS Direct Bluetooth HID sender mode.
- Desktop helper/server app.
- Screen mirroring, file transfer, clipboard sync, or remote desktop.
- Native Precision Touchpad or Magic Trackpad emulation in v1.0.
- BIOS/UEFI support in Direct Bluetooth mode.
Start with:
Platform code is grouped under Android/ and ios/. Shared project assets and bridge firmware live under shared/. Product docs stay in docs/ so existing documentation links remain stable.
This repository now includes a native Kotlin Android spike app for the Direct Bluetooth HID path.
- Package:
com.tygb99.phonepad - Minimum Android: API 28
- Current target: Android 16 / API 36
- APK output:
Android/app/build/outputs/apk/debug/app-debug.apk - Runtime permissions: Bluetooth connect and advertise only; no
INTERNETpermission. - Validated setup: Windows 11 PC, macOS 26.4.1 development host, Galaxy S23 Ultra on Android 16.
Device test order:
- Tap
권한and allow Nearby devices. - The app automatically prepares the HID session and quietly tries the last successful PC.
- If reconnect fails, tap
목록 새로고침, choose a PC candidate, then tap선택 호스트 연결. - For a new PC, tap
새 PC 연결, allow discoverable mode, then pair the visiblePhonePad - {device name}device. - Use the right-side touchpad area. Hold
스크롤 ↑or스크롤 ↓to keep scrolling.
Continuous scroll buttons send small paced wheel reports to avoid host-side scroll acceleration on macOS.
The host list only shows paired computer-like devices and PCs that have previously connected successfully.
Opening the app alone does not show the Android discoverable prompt.
호스트 연결/전환 is for switching among paired PCs. Double-tap drag is available as an explicit OFF-by-default option, and scroll button speed can be changed between slow/default/fast.
Build locally:
export JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home
export ANDROID_HOME=/opt/homebrew/share/android-commandlinetools
export ANDROID_SDK_ROOT="$ANDROID_HOME"
(cd Android && ./gradlew :app:assembleDebug)On Windows, use the PowerShell setup and build helpers:
powershell -NoProfile -ExecutionPolicy Bypass -File .\Android\scripts\setup-windows-dev.ps1
.\Android\scripts\build-windows.ps1 -Target allSee docs/WINDOWS_DEV.md for JDK 17, Android SDK, APK build, and device install details.
Install on a connected Android device:
export ANDROID_HOME=/opt/homebrew/share/android-commandlinetools
"$ANDROID_HOME/platform-tools/adb" install -r Android/app/build/outputs/apk/debug/app-debug.apkRemote target: https://github.com/Tygb99/phonepad.git
The repository has moved from documentation-only into the Phase 0 Android HID spike. Real host pairing and mouse report delivery have been verified on a Galaxy S23 Ultra running Android 16 with a Windows 11 PC.
Code is licensed under GPL-3.0-or-later. The PhonePad name, logo, and branding are not licensed for confusing commercial redistribution.