
Versucht, Smart Glasses in der Nähe zu erkennen und dich zu warnen
Versuch, Smart Glasses in der Nähe zu erkennen und dich zu warnen.
Die App namens Nearby Glasses hat einen einzigen Zweck: Nach Smart Glasses in der Nähe suchen und dich warnen.
Diese App benachrichtigt dich, wenn sich Smart Glasses in der Nähe befinden. Sie verwendet Firmenkennungen in den Bluetooth-Daten, die von diesen Geräten ausgesendet werden. Daher gibt es wahrscheinlich Fehlalarme (z. B. durch VR-Headsets). Bitte sei daher vorsichtig, wenn du dich einer Person in der Nähe näherst, die eine Brille trägt. Es könnte sich trotz der Warnung dieser App einfach um eine normale Brille handeln.
Der Autor der App Yves Jeanrenaud übernimmt keinerlei Haftung für diese App oder ihre Funktionalität. Nutzung auf eigene Gefahr. Aufgrund des technischen Designs kann die Erkennung von Bluetooth-LE-Geräten manchmal einfach nicht wie erwartet funktionieren. Ich bin kein ausgebildeter Entwickler. Das alles ist in meiner Freizeit und mit selbst beigebrachtem Wissen entstanden.
Fehlalarme sind wahrscheinlich. Das bedeutet, die App Nearby Glasses kann dich über Smart Glasses in der Nähe informieren, obwohl es sich tatsächlich um ein VR-Headset desselben Herstellers oder ein anderes Produkt dieser Firma handeln könnte. Sie kann auch Smart Glasses in der Nähe übersehen. Nochmals: Ich bin kein Profi-Entwickler.
Diese App ist jedoch kostenlos und Open Source. Du kannst den Code überprüfen, ändern und wiederverwenden (unter der Lizenz).
Die App Nearby Glasses speichert keine Details über dich und sammelt keine Informationen über dich oder dein Telefon. Es gibt keine Telemetrie, keine Werbung und keine anderen Belästigungen. Wenn du die App über den Play Store installierst, könnte Google etwas über dich wissen und einige Statistiken sammeln. Die App selbst tut das jedoch nicht.
Wenn du dich dafür entscheidest, die Protokolldatei zu speichern (zu exportieren), liegt das ganz bei dir und in deiner Verantwortung, wohin diese Daten gehen. Die Protokolle werden nur lokal aufgezeichnet und nicht automatisch mit irgendjemandem geteilt. Sie enthalten nur wenige sensible Daten; tatsächlich nur die Hersteller-ID-Codes der angetroffenen BLE-Geräte.
Mit äußerster Vorsicht verwenden! Wie bereits erwähnt: Es gibt keine Garantie, dass erkannte Smart Glasses wirklich in der Nähe sind. Es könnte sich um ein anderes Gerät handeln, das technisch (auf BLE-ADV-Ebene) ähnlich wie Smart Glasses aussieht.
Bitte handle nicht vorschnell. Denke nach, bevor du auf irgendwelche Meldungen reagierst (nicht nur von dieser App).
Flags: 02 01 06 Flags: LE General Discoverable Mode, BR/EDR Not Supported
Manufacturer Specific Data: Length: 0x1A Type: Manufacturer Specific Data (0xFF) Company ID: 0x058E (Meta Platforms Technologies, LLC) Data: 4D 45 54 41 5F 52 42 5F 47 4C 41 53 53
Service UUIDs: Complete List of 16-bit Service UUIDs 0xFEAA
- Laut dem [Repo der zugewiesenen Nummern der Bluetooth SIG](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/www.bluetooth.com/specifications/assigned-numbers) dürfen wir diese Firmen-IDs verwenden:
- `0x01AB` für `Meta Platforms, Inc. (ehemals Facebook)`
- `0x058E` für `Meta Platforms Technologies, LLC`
- `0x0D53` für `Luxottica Group S.p.A` (die die Meta Ray-Bans herstellt)
- `0x03C2` für `Snapchat, Inc.` (die SNAP Spectacles herstellt)
- `0x05D6` für `Zhuhai Jieli Technology Co` (die Rogbird VisionPro und Rollme VistaView herstellt)
Sie sind **unveränderlich und obligatorisch**. Natürlich haben Meta und andere Hersteller auch andere Produkte mit Bluetooth und daher deren ID, z. B. VR-Headsets. Daher ist die Verwendung dieser Firmen-ID-Codes für den Scan-Prozess der App anfällig für Fehlalarme. Aber wenn du niemanden mit einer Occulus Rift in deiner Nähe sehen kannst und es keine Gebäude gibt, in denen sie sich verstecken könnten, sind die Chancen gut, dass es sich stattdessen um Smart Glasses handelt.
- Während des Pairings senden die Smart Glasses normalerweise ihren Produktnamen aus, sodass wir auch danach scannen können. Aber es ist selten, dass wir das im Feld sehen. Personen, die beabsichtigen, Smart Glasses in Bars, Pubs, auf der Straße und anderswo zu verwenden, bereiten sich normalerweise im Voraus darauf vor.
- Wenn die App ein Bluetooth-Low-Energy-Gerät (BLE) mit ausreichender Signalstärke erkennt (siehe RSSI unten), sendet sie eine Warnmeldung. Dies soll dir helfen, entsprechend zu handeln.
- Darüber hinaus scannen wir nach ausgesendeten Gerätenamen, z. B. `rayban`, `ray-ban` oder `HeyCyan`. `HeyCyan` ist [ein bekanntes SDK für Smart Glasses verschiedener Marken](https://github.com/ebowwa/HeyCyanSmartGlassesSDK). Unter diesen *HeyCyan*-Geräten findest du möglicherweise auch die Nilox Smart AI Glasses, die von ALDI und Hofer (in Österreich) verkauft werden. Um dies zu härten, suchen wir auch nach der `primary_UUID`, einem Dienstbezeichner, der fest mit der Softwareseite dieser Gläser verbunden ist (`7905FFF0-B5CE-4E99-A40F-4B1E122D00D0`). Dies könnte sich zwar in Zukunft ändern, ist aber unwahrscheinlich, da es ältere Geräte unbrauchbar machen würde. Daher fügen wir dann möglicherweise einfach weitere UUIDs zur Scan-Routine hinzu.
## Funktionen
- Die App *Nearby Glasses* zeigt eine Benachrichtigung, wenn Smart Glasses in der Nähe sind (d. h. ein BLE-Gerät mit einer der oben genannten Firmen-IDs)
- **In der Nähe** bedeutet, dass der RSSI (Signalstärke) kleiner oder gleich einem bestimmten Wert ist: standardmäßig -75 dBm. Dieser Standardwert entspricht einer mittleren Entfernung und einem einigermaßen guten Signal.
### Was ist RSSI?
- Lass mich diesen RSSI-Wert ein wenig erklären:<br/>
RSSI ist die Abkürzung für Received Signal Strength Indication. Der Wert ist eine Angabe für die Empfangsfeldstärke von drahtlosen Kommunikationsanwendungen. [Wikipedia hat einen ziemlich guten Artikel](https://en.wikipedia.org/wiki/Received_signal_strength_indicator) darüber.
Kurz gesagt hängt RSSI hauptsächlich ab von:<br/>
- Sendeleistung des Geräts
- Antennendesign
- Wänden und Hindernissen
- Menschlichen Körpern, die Signale absorbieren
- Reflexion und Interferenz
- Geräteausrichtung<br/>
Aber in typischen BLE-Szenarien (Bluetooth Low Energy) beträgt die grobe RSSI-Entfernung (im Freien): <br/>
- -60 dBm ~ 1 – 3 m<br/>
- -70 dBm ~ 3 – 10 m<br/>
- -80 dBm ~ 10 – 20 m<br/>
- -90 dBm ~ 20 – 40 m<br/>
- -100 dBm ~ 30 – 100+ m oder nahe am Signalverlust<br/>
In Innenräumen sind die Entfernungen oft viel kürzer.<br/>
RSSI fällt ungefähr gemäß<br/>
`RSSI ≈ -10 * n * log10(Entfernung) + Konstante`<br/>
- Daher entspricht der standardmäßige RSSI-Schwellenwert von -75 dBm etwa 10 bis 15 Metern im Freien und 3 bis 10 Metern in Innenräumen oder in überfüllten Räumen. So hast du gute Chancen, die Person mit der Smart Glasses zu entdecken.
- *Nearby Glasses* zeigt ein optionales Debug-Protokoll an, das exportierbar ist (als txt-Datei) und eine Kopieren-&-Einfügen-Funktion bietet. Diese sind für fortgeschrittene Benutzer (Nerds) und für weitere Fehlerbehebung gedacht.
- Unter *Einstellungen* kannst du die Protokolllänge und das Debugging festlegen (alle Scan-Elemente anzeigen oder nur ADV-Frames).
- Du kannst auch einige **Firmen-IDs** als Zeichenfolge von Hex-Werten eingeben, z. B. `0x01AB,0x058E,0x0D53`. Dies überschreibt die integrierte Erkennung, sodass deine Benachrichtigung für die neuen Werte erscheint.
- Für eine bessere Persistenz verwendet es den *Foreground Service* von Android. Du kannst dies unter *Einstellungen* deaktivieren, wenn du es nicht benötigst.
- Der *Benachrichtigungs-Cooldown* unter *Einstellungen* legt fest, wie viel Zeit zwischen zwei Warnungen vergehen muss. Standard ist 10000 ms, also 10 s. Dies gilt auch für den Kanarienvogel, z. B. bedeutet 10 s, dass er 10 s lang in Alarmbereitschaft bleibt, bevor er sich wieder beruhigt.
- Es ist jetzt etwas stärker lokalisiert: <img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary_hide.svg" align="right" alt="Zeichnung eines Kanarienvogels, der sich unter einem Flügel versteckt" height="100" width="100">
- Englisch
- Deutsch
- Schweizerdeutsch
- Französisch
- Spanisch
- Chinesisch
- Italienisch
- Portugiesisch (Brasilien)
- Russisch
- Türkisch
- weitere folgen möglicherweise ([unterstütze dieses Projekt, indem du in deiner Sprache beiträgst!](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/3))
- Der Hintergrund des App-Symbols ist jetzt nicht mehr transparent
- Jetzt scannen wir auch nach UUIDs
- *Nearby Glasses* unterstützt jetzt den Dunkelmodus (über die Systemeinstellungen)
- Das Edge-to-Edge-Layout-Problem sollte ab [v1.0.4](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) behoben sein.
- Neu lizenziert unter AGPL 3.0
- Ich habe beschlossen, auf die CLA zu verzichten. Nach einigen Diskussionen mit Personen, die mehr über kollaborative Projekte wussten als ich, habe ich die Erkenntnis gewonnen, dass dies ein unnötiger Schritt war.
## iOS und Android
- Endlich, nach drei Wochen, ist der iOS-Port verfügbar. Er sollte auf den meisten iPhones und iPads funktionieren; sogar auf älteren (zurück bis iOS 16). [Quellcode und Projektdateien werden ebenfalls bereitgestellt](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/iOS). Der Code ist hässlich und unorthodox. Viele Ansätze sind schnell und schmutzig (z. B. verwende ich die JSON-Dateien aus der Android-Lokalisierung wieder), aber es funktioniert bisher. *Nearby Glasses* ist über den [Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896) erhältlich. (Es heißt „original", um es von den Nachahmern unterscheidbar zu machen). Eine .ipa-Datei ist zum Sideloading unter [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) verfügbar.
Die iOS-App funktioniert nicht im Hintergrund, da ich keine Möglichkeit gefunden habe, etwas Ähnliches wie `ForegroundServices` zu verwenden, um aufgrund von iOS-Einschränkungen dauerhaft nach BTLE-ADV zu scannen. Daher gibt es in *Nearby Glasses* unter iOS nur einen *Canary-Modus*. Wenn du Swift und iOS besser kennst als ich (was wahrscheinlich ist), trage bitte bei!
- Da dieses Repository sowohl den Android- als auch den iOS-App-Code enthält, habe ich die Ordner neu organisiert. Daher gibt es [/iOS](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/iOS) und [/Android](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/Android).
## Verwendung
- Siehe [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) für APK zum Herunterladen oder verwende den Google Play Store. F-Droid und/oder Accrescent könnten folgen.
<img width="135" height="300" align ="right" alt="Screenshot Nearby Glasses: Einstellungen" src="https://assets.kitploit.com/production/public/readmes/12083/71a0271ff9172cad52e8d83ed9a29ba43b509c7b250be2a0254a5a4371ee3401.png" />
<a href="https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses" target="_blank"><img width="239" height="71" alt="Jetzt bei Google Play" src="https://assets.kitploit.com/production/public/readmes/12083/a7dbeba4623dd255798dd1159e543cdbeeb9e43faa6db7f859b0f9ed3699932c.png" /></a> <a href="https://apps.apple.com/us/app/nearby-glasses-original/id6761056896"><img width="213" height="71" alt="Laden im App Store" src="https://assets.kitploit.com/production/public/readmes/12083/a6fa504b048d52b4e9f5108021dce33af0d96b8b78c34095072971f4a34471fa.png" /></a>
1. Installiere die App (von [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) oder von [Google Play](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses), vorerst) oder vom [Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896), und öffne sie
2. Drücke die Schaltfläche *Scan starten*
3. Erteile Berechtigungen, um Bluetooth zu aktivieren (falls nicht bereits aktiviert) und auf Geräte in der Nähe zuzugreifen. Einige Android-Versionen erfordern auch, dass du Berechtigungen für den Zugriff auf deinen Standort erteilst (vor Version 13, meistens). *Nearby Glasses* macht nichts mit deinen Standortinformationen. Wenn du mir nicht glaubst, schau dir bitte den [Code](https://github.com/yjeanrenaud/yj_nearbyglasses/tree/main/app) an
4. Wenn du nicht siehst, dass der Scan startet, musst du möglicherweise den *Foreground Service* auf deinem jeweiligen Telefon im Menü *Einstellungen* aktivieren (siehe unten)
5. Du bist fertig! Wenn Smart Glasses in der Nähe erkannt werden, erscheint eine Benachrichtigung. Dies geschieht, bis du *Scan stoppen* drückst oder die App vollständig beendest
7. Im Menü (oben rechts, das Zahnrad) kannst du einige *Einstellungen* vornehmen:
1. *Foreground Service aktivieren*: Dadurch verhinderst du, dass Android die App pausiert und sie dich somit nicht mehr alarmieren kann. Ich empfehle, dies aktiviert zu lassen
2. *RSSI-Schwellenwert*: Diese negative Zahl gibt an, wie weit ein Gerät entfernt sein darf, um ein Grund für eine Warnung von *Nearby Glasses* zu sein. Technisch gesehen bezieht es sich darauf, wie stark das Signal empfangen wird. Näher an Null bedeutet ein besseres Signal, also eine geringere Entfernung zwischen deinem Telefon und den Smart Glasses. Siehe [RSSI oben für Erklärungen und Anleitung](#how). Ich empfehle, es auf -75 zu lassen
3. *Benachrichtigungen aktivieren*: Das solltest du nicht deaktivieren wollen
4. Canary-Modus. Dies ist die neue Standardeinstellung. Damit erhältst du keine Systembenachrichtigungen, die dich auf Smart Glasses in der Nähe hinweisen, sondern du siehst stattdessen einen Kanarienvogel, der anzeigt, dass keine Smart Glasses in der Nähe sind. Die iOS-App hat aufgrund technischer Einschränkungen nur einen Canary-Modus. <img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary.svg" alt="Zeichnung eines Kanarienvogels" width="100" height="100" alignt="left">
5. *Benachrichtigungs-/Canary-Cooldown*: Hier legst du fest, wie viele Benachrichtigungen über gefundene Smart Glasses in der Nähe du erhalten möchtest oder wie lange sich der Kanarienvogel verstecken soll. Ich habe 10 Sekunden (10000 ms) als Standardwert gewählt. So verpasst du die Benachrichtigung nicht, während du gleichzeitig nicht zu sehr davon gestört wirst oder deinen Akku zu schnell entleerst
6. *Protokollanzeige aktivieren*: Das Deaktivieren könnte dir etwas Akku sparen. Dies ist im Canary-Modus deaktiviert.
7. *Debug*: Wird benötigt, um im Protokollanzeige-Frame mehr als nur die passenden BLE-Frames zu sehen. Es ist nützlich, um zu sehen, ob die Dinge funktionieren. Dies ist im Canary-Modus deaktiviert.
8. *Max. Protokollzeilen*: Wie lang das Protokoll werden darf. 200 scheint eine gute Balance zwischen Akkulaufzeit und Nutzbarkeit des Protokolls zu sein (für Nerds wie mich). Dies ist im Canary-Modus deaktiviert.
9. *Nur BLE-ADV*: Dies schließt andere Bluetooth-LE-Frames aus dem Protokoll aus, für eine bessere Lesbarkeit. Dies ist im Canary-Modus deaktiviert.
10. *Firmen-IDs überschreiben*: Wenn du möchtest, kannst du *Nearby Glasses* dich auf andere Geräte als die oben genannten hinweisen lassen. Nützlich zum Debuggen, zumindest für mich. Lass es leer, wenn du es nicht benötigst oder nicht weißt, was du damit tun sollst
11. Jede Einstellung wird gespeichert und ist sofort wirksam. Um zurückzugehen, verwende deine Zurück-Taste oder -Geste
8. Die Exportfunktion ermöglicht es dir, eine Textdatei des App-Protokolls zu teilen. Für Nerds wie mich
9. Du kannst das Protokoll auch kopieren und einfügen, indem du auf den Protokollanzeige-Frame tippst
## ToDos
- **Es funktioniert jetzt in freier Wildbahn!** Ich habe es geschafft, einige Leute dazu zu bringen, es mit verifizierten Smart Glasses in ihrer Umgebung zu testen. Besonderer Dank geht an Lena!
- Siehe [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) für APK zum Herunterladen.
- Ich habe [*Nearby Glasses* auch bei Google Play veröffentlicht](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses). Ich werde jedoch immer [Releases hier auf GitHub](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) und [anderswo](https://yves.app/nearbyglasses/latest.apk) veröffentlichen, für diejenigen, die Google Play meiden.
---
- Füge eine Option hinzu, um Fehlalarme auf eine Ignorierliste zu setzen. Vielleicht in der Benachrichtigung?
- Ich bin überhaupt kein BT- oder Android-Experte. Für das, was ich gelernt habe, könnte man auch tiefer in die Kommunikation der Smart Glasses eintauchen, indem man den BLE-Verkehr abhört. Dadurch müssten wir wahrscheinlich nicht darauf vertrauen, dass sich das Gerät gemäß den BT-Spezifikationen verhält, sondern könnten auch Heuristiken auf den verschlüsselten Verkehrsübertragungen verwenden, ohne viele Fehlalarme. Aber ich habe mich seit mehr als zehn Jahren nicht mehr mit BT-Verkehrspaketen beschäftigt. Ich bin froh, dass ich mich an ADV-Frames erinnert habe ... Wenn also jemand dabei helfen könnte, wäre das sehr dankbar!
---
- Füge **weitere Hersteller-IDs** von Smart Glasses hinzu. Derzeit sind es Meta, Oakley und Snap. Eine Liste verfügbarer Smart Glasses mit Kameras würde ebenfalls helfen. Ich habe ein [ISSUE dafür eröffnet](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/56), damit Leute **helfen** können, indem sie ihre Protokolle senden (die meiner Meinung nach völlig sicher sind), wenn sie auf andere aufzeichnende Smart Glasses stoßen
- Ab dem 24. März 2026 ist auch die iOS-Version verfügbar.
- Das **Layout-Problem** mit **Google-Pixel-Geräten** scheint ab Version 1.0.3 behoben zu sein. Wenn du das Menü immer noch nicht erreichen kannst, da es irgendwie mit der Statusleiste vermischt ist, werde ich mich so schnell wie möglich darum kümmern. Versuche in der Zwischenzeit, deinen Bildschirm in den Querformatmodus zu versetzen und *im Uhrzeigersinn (nach rechts)* zu drehen.
## Tech-Solutionismus?
Ich weiß, dies könnte ein seltsamer Ort dafür sein, aber hör mir bitte zu. Mir ist bewusst, dass dies eine technische Lösung für ein soziales Problem ist, das selbst durch Technologie verstärkt wird.
Ich möchte weder den Tech-Solutionismus fördern noch möchte ich, dass sich Menschen falsch sicher fühlen. Es ist immer noch ein unvollkommener Ansatz und wird es wahrscheinlich immer sein. Es ist nicht alles gut, nur weil diese App jetzt existiert. Wir brauchen bessere Lösungen, um Überwachungstechnologie und Datenschutzverletzungen einzudämmen.
## Aus dem Quellcode erstellen
Da *Nearby Glasses* Open Source ist, kannst du die App auch selbst aus dem Quellcode erstellen. Dies stellt sicher, dass keine anderen Bibliotheken in der APK enthalten sind und du das bekommst, was du möchtest.
Bitte beachte: Diese App basiert auf:
- Gradle Wrapper: 9.3.1
- Android Gradle Plugin: 8.13.2
- Kotlin: 1.9.22
- compileSdk: 36
- targetSdk: 36
- minSdk: 26
- Keine Produkt-Flavors
- Repositories: nur google() und mavenCentral()
- Keine Google Services oder Firebase-Plugins
### Anforderungen
- **JDK 17** (erforderlich — Projekt zielt auf Java 17 ab)
- **Android SDK Platform 35** installiert
- compileSdk = 35
- targetSdk = 35
- Git
### APK Schritt für Schritt erstellen```bash
#Verify Java version:
$java -version
#It must report Java 17.
#Get the source code
$git clone https://github.com/yjeanrenaud/yj_nearbyglasses
$cd yj_nearbyglasses
#Build Debug
$./gradlew clean assembleDebug
#Build Release (with your own signature cert)
$./gradlew clean assembleRelease
#Build unsigned Release for IzzyOnDroid / F-Droid
$./gradlew clean izziFdroid
#Run and Test
$./gradlew test lint
App-Symbol: Das Symbol basiert auf Eyeglass icons created by Freepik - Flaticon
Lizenz: Diese App Nearby Glasses ist unter der AGPL-3.0-Lizenz lizenziert.
Canary: Die Canary-Zeichnungen stammen von mir und sind unter CC BY-SA 4.0 lizenziert. Ich habe sie als rohe SVG-Dateien bereitgestellt (erstellt in InkScape) und für die Ressourcen der App natürlich in XML konvertiert.