Zurück zu den Projekten
Aktivv0.3.1

MacPhone

Echte Bluetooth-LE-Geräte im Android-Emulator auf dem Mac.

MacPhone verbindet sich über das eingebaute Bluetooth des Mac mit einem BLE-Gerät und stellt es im Android-Emulator bereit. Die App, die du testest, sucht, verbindet, liest, schreibt und abonniert wie auf einem Handy, ohne USB-Dongle und ohne Änderung am Code. Im selben Fenster laufen deine Android-Emulatoren und Xcode-Simulatoren.

Neuestes Release
v0.3.1
Plattform
macOS
Download
2 Release-Assets
Aktualisiert
18. Okt. 2026
GitHub
★ 2 Sterne
Stack
Swift · SwiftUI · Bluetooth LE · Android
MacPhone overview dashboard listing connected Android emulators and iOS simulators

Problem

Der Android-Emulator hat einen virtuellen Bluetooth-Controller, kommt aber nicht an echte Hardware. Die üblichen Umwege sind ein USB-Dongle, der in den Emulator durchgereicht wird, oder eine Bibliothek in der App, die es nur zum Testen gibt.

Was ich gebaut habe

Eine SwiftUI-App, die als CoreBluetooth-Central die GATT-Tabelle des Geräts liest und sie über einen per Token geschützten Localhost-Socket an einen Bumble-Prozess gibt. Der stellt dieselben Services, denselben Namen und dieselben Herstellerdaten auf netsim bereit, dem Controller des Emulators, und leitet jedes Lesen, Schreiben und jede Notification an das echte Gerät weiter.

Highlights

  • Echte BLE-Geräte im Android-Emulator, über das Bluetooth des Mac, ohne Dongle.
  • Die getestete App nutzt die normale Android-Bluetooth-API. Keine zusätzliche Bibliothek.
  • Lesen, Schreiben und Notifications in beide Richtungen, Abos bleiben nach einem Reconnect bestehen.
  • Android-Emulatoren (Android 14 bis 17) und Xcode-Simulatoren aller Apple-Plattformen anlegen, starten und verwalten.
  • Apps per Drag-and-drop installieren, URLs öffnen, Screenshots, Hell- und Dunkelmodus.
  • Grenzen: nur Bluetooth LE, keine Geräte mit Bluetooth-Pairing, kein Bluetooth im iOS-Simulator.

Entwickler-Setup

clone
git clone https://github.com/jx-grxf/MacPhone.git && cd MacPhone