Voltar às atualizações
New releaseSep 7, 2026

yj_nearbyglasses v1.0.10

tentando detectar óculos inteligentes próximos e avisar você

Compartilhar

yj_nearbyglasses

tentando detectar óculos inteligentes por perto e avisá-lo.

⚠ AVISO! ⚠

nearby-glasses-alert.pages.dev NÃO ESTÁ RELACIONADO AO MEU PROJETO. Muitos aplicativos na Play Store e na App Store parecem ou até têm nomes muito semelhantes a Nearby Glasses. Eles parecem sequestrar o nome e tentar lucrar rapidamente com isso. Eles não aderem à licença AGPL, não dão nenhuma garantia. Não endosso isso.

Screenshot Nearby Glasses classic Screenshot Nearby Glasses canary mode

⚠ AVISO! ⚠

ASSEDIAR alguém porque você acha que ela está usando um dispositivo de vigilância oculto pode ser uma infração penal. Pode até ser uma infração mais grave do que usar tal dispositivo. Por favor, procure orientação jurídica sobre as leis locais a esse respeito.

⚠ NÃO ASSEDIE NINGUÉM DE FORMA ALGUMA ⚠


Nearby Glasses

O aplicativo, chamado Nearby Glasses, tem um único propósito: procurar óculos inteligentes por perto e avisá-lo.

Get It On Google Play Get it at IzzyOnDroid Get it on Obtainium Download on the App Store

Índice

Este aplicativo notifica você quando óculos inteligentes estão por perto. Ele usa identificadores de empresa nos dados Bluetooth enviados por esses dispositivos. Portanto, provavelmente há falsos positivos (por exemplo, de headsets de VR). Assim, por favor, proceda com cautela ao se aproximar de uma pessoa que esteja usando óculos. Podem ser apenas óculos comuns, apesar do aviso deste aplicativo.

O autor do aplicativo, Yves Jeanrenaud, não assume nenhuma responsabilidade pelo aplicativo nem por sua funcionalidade. Use por sua conta e risco. Por design técnico, a detecção de dispositivos Bluetooth LE às vezes pode simplesmente não funcionar como esperado. Não sou um desenvolvedor formado. Tudo isso foi escrito no meu tempo livre e com conhecimento que aprendi sozinho.
Falsos positivos são prováveis. Isso significa que o aplicativo Nearby Glasses pode notificá-lo sobre óculos inteligentes por perto quando, na verdade, pode haver um headset de VR do mesmo fabricante ou outro produto da mesma linha da empresa. Ele também pode deixar de detectar óculos inteligentes por perto. Repito: não sou um desenvolvedor profissional.
No entanto, este aplicativo é gratuito e de código aberto, você pode revisar o código, alterá-lo e reutilizá-lo (sob a licença).
O aplicativo Nearby Glasses não armazena nenhum detalhe sobre você nem coleta qualquer informação sobre você ou seu telefone. Não há telemetria, nem anúncios, nem qualquer outro incômodo. Se você instalar o aplicativo pela Play Store, o Google pode saber algo sobre você e coletar algumas estatísticas. Mas o aplicativo em si não faz isso.
Se você optar por armazenar (exportar) o arquivo de log, isso é inteiramente por sua conta e responsabilidade, e você é responsável por onde esses dados vão parar. Os logs são registrados apenas localmente e não são compartilhados automaticamente com ninguém. Eles contêm poucos dados sensíveis; na verdade, apenas os códigos de ID do fabricante dos dispositivos BLE encontrados.

Use com extrema cautela! Como afirmado antes: não há garantia de que os óculos inteligentes detectados estejam realmente por perto. Pode ser outro dispositivo tecnicamente (no nível de anúncio BLE) semelhante a óculos inteligentes.
Por favor, não aja precipitadamente. Pense antes de agir com base em qualquer mensagem (não apenas deste aplicativo).

Por quê?

  • Porque considero os óculos inteligentes uma intrusão intolerável, um pedaço horrível de tecnologia que desrespeita o consentimento e que já é usado para produzir vários e incontáveis 'conteúdos' igualmente verdadeiramente repugnantes. 1, 2
  • Alguns óculos inteligentes possuem um pequeno LED que indica que uma gravação está em andamento. Mas isso é facilmente desativado, enquanto os fabricantes afirmam impedir isso e não assumem nenhuma responsabilidade (a tecnologia tende a fazer isso há décadas). 3
  • Óculos inteligentes já foram usados para reconhecimento facial instantâneo 4 e, segundo relatos, virão com isso de fábrica 5. Isso coloca muitas pessoas em perigo.
  • Os dados são usados para treinar IA, o que significa que pessoas irão analisar as gravações e ver, provavelmente, os insights mais íntimos 6
  • Espero que este aplicativo seja útil para alguém.

Como?

  • É uma abordagem simples e bastante heurística. Como o BLE usa MAC aleatório e os OSSID não são estáveis, nem o UUID dos anúncios de serviço, você não pode simplesmente escanear os beacons Bluetooth. E, para tornar as coisas ainda mais difíceis, alguns, como a Meta, por exemplo, usam serviços Bluetooth proprietários e os UUIDs não são persistentes, por enquanto só podemos confiar nos nomes de dispositivos comunicados.
  • A abordagem atualmente mais viável vem do repositório de números atribuídos do Bluetooth SIG. Seguindo isso, o nome da empresa fabricante aparece como códigos numéricos no cabeçalho de anúncio do pacote (ADV) dos beacons BLE.
  • é assim que os quadros de anúncio BLE se parecem:``` Frame 1: Advertising (ADV_IND) Time: 0.591232 s Address: C4:7C:8D:1E:2B:3F (Random Static) RSSI: -58 dBm

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

- De acordo com o [repositório de números atribuídos do Bluetooth SIG](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/www.bluetooth.com/specifications/assigned-numbers), podemos usar estes company IDs:
  - `0x01AB` para `Meta Platforms, Inc. (formerly Facebook)`
  - `0x058E` para `Meta Platforms Technologies, LLC`
  - `0x0D53` para `Luxottica Group S.p.A` (que fabrica os Meta Ray-Bans)
  - `0x03C2` para `Snapchat, Inc.` (que fabrica os SNAP Spectacles)
  - `0x05D6` para `Zhuhai Jieli Technology Co` (que fabrica os Rogbird VisionPro e Rollme VistaView)
  Eles são **imutáveis e obrigatórios**. É claro que a Meta e outros fabricantes também têm outros produtos que vêm com Bluetooth e, portanto, o seu ID, por exemplo, VR Headsets. Portanto, usar estes códigos de company ID para o processo de scanning da app está sujeito a falsos positivos. Mas se não consegues ver alguém a usar um Occulus Rift à tua volta e não há edifícios onde se possam esconder, é provável que sejam óculos inteligentes.
- Durante o emparelhamento, os óculos inteligentes normalmente emitem o nome do produto, por isso também podemos fazer scan disso. Mas é raro vermos isso no terreno. As pessoas com intenção de usar óculos inteligentes em bares, pubs, na rua e noutros locais normalmente preparam-se para isso antecipadamente.
- Quando a app reconhece um dispositivo Bluetooth Low Energy (BLE) com uma intensidade de sinal suficiente (ver RSI abaixo), irá emitir uma mensagem de alerta. Isto deverá ajudar-te a agir em conformidade.
- Além disso, fazemos scan de nomes de dispositivos transmitidos, por exemplo, `rayban`, `ray-ban` ou `HeyCyan`. `HeyCyan` é [um SDK famoso para óculos inteligentes de várias marcas](https://github.com/ebowwa/HeyCyanSmartGlassesSDK). Entre esses dispositivos *HeyCyan*, também podes encontrar os Nilox Smart AI Glasses que são vendidos pela ALDI e pela Hofer (na Áustria). Para reforçar isto, também procuramos o `primary_UUID`, um identificador de serviço que está fixado no lado do software desses óculos (`7905FFF0-B5CE-4E99-A40F-4B1E122D00D0`). Embora isto possa mudar no futuro, é improvável, pois tornaria os dispositivos mais antigos inutilizáveis, por isso podemos simplesmente adicionar mais UUIDs à rotina de scanning nessa altura.
## Funcionalidades
- A app *Nearby Glasses* mostra uma notificação quando há óculos inteligentes por perto (ou seja, um dispositivo BLE de um dos company IDs mencionados acima)
- **Por perto** significa que o RSSI (intensidade do sinal) é menor ou igual a um valor dado: -75 dBm por predefinição. Este valor predefinido corresponde a uma distância média e a um sinal razoável.
  ### O que é o RSSI?
- Deixa-me explicar um pouco esse valor de RSSI:<br/>
RSSI é a abreviatura de Received Signal Strength Indication. O valor é uma indicação da intensidade do campo de receção de aplicações de comunicação sem fios. [A Wikipédia tem um artigo bastante bom](https://en.wikipedia.org/wiki/Received_signal_strength_indicator) sobre isto.
Resumindo, o RSSI depende principalmente de:<br/>
  - Potência de transmissão do dispositivo
  - Design da antena
  - Paredes e obstáculos
  - Corpos humanos a absorver o sinal
  - Reflexão e interferência
  - Orientação do dispositivo<br/>
Mas em cenários típicos de BLE (Bluetooth Low Energy), a distância aproximada do RSSI (espaço aberto) é: <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 ou perto da perda de sinal<br/>
Em interiores, as distâncias são frequentemente muito mais curtas.<br/>
O RSSI cai aproximadamente de acordo com<br/>
    `RSSI ≈ -10 * n * log10(distance) + constant`<br/>
- Portanto, o limiar de RSSI predefinido de -75 dBm corresponde a cerca de 10 a 15 metros em espaço aberto e 3 a 10 metros em interiores ou em espaços lotados. Tens uma boa hipótese de detetar a pessoa que usa esses óculos inteligentes dessa forma.
- *Nearby Glasses* mostra um registo de depuração opcional que é exportável (como ficheiro txt) e inclui uma função de copiar e colar. Estes destinam-se a utilizadores avançados (nerds) e para depuração adicional.
- Em *Settings*, podes especificar o comprimento do registo e a depuração (mostrar todos os itens de scan ou apenas frames ADV).
- Também podes introduzir alguns **company IDs** como string de valores hexadecimais, por exemplo, `0x01AB,0x058E,0x0D53`. Isto substitui a deteção incorporada, para que a tua notificação apareça para o(s) novo(s) valor(es).
- Para melhor persistência, usa o *Foreground Service* do Android. Podes desativá-lo em *Settings* se não precisares dele.
- O *Notification Cooldown* em *Settings* especifica quanto tempo deve passar entre dois avisos. A predefinição é 10000 ms, ou seja, 10 s. Isto também se aplica ao canário, por exemplo, 10s significa que ele permanecerá alerta durante 10s antes de se acalmar novamente.
- Está agora um pouco mais localizado: <img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary_hide.svg" align="right" alt="Drawing of a canary that hides underneath a wing" height="100" width="100">
   - Inglês
   - Alemão
   - Alemão suíço
   - Francês
   - Espanhol
   - Chinês
   - Italiano
   - Português (Brasil)
   - Russo
   - Turco
   - mais em breve, eventualmente ([apoia este projeto contribuindo no teu idioma!](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/3))
- Agora o fundo do ícone da app já não é transparente
- Agora também fazemos scan de UUIDs
- *Nearby Glasses* agora suporta modo escuro (através das definições do sistema)
- O problema de layout edge-to-edge deverá estar corrigido a partir da [v1.0.4](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) em diante.
- Recentemente licenciado sob AGPL 3.0
- Decidi dispensar o CLA. Após algumas discussões com pessoas que sabiam mais do que eu sobre projetos colaborativos, ganhei a perceção de que este era um passo desnecessário.
- agora tem um ícone ligeiramente diferente para aderir à AGPL 3.0 de forma mais estrita.
## iOS e Android
- Finalmente, após três semanas, a versão para iOS está disponível. Deverá funcionar na maioria dos iPhones e iPads; mesmo nos mais antigos (até ao iOS 16). [O código-fonte e os ficheiros do projeto também são fornecidos](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/iOS). O código é feio e pouco ortodoxo. Muitas abordagens são rápidas e sujas (por exemplo, reutilizo os ficheiros json da localização do Android), mas está a funcionar até agora. *Nearby Glasses* está disponível através da [Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896). (Chama-se original para o distinguir desses imitadores). Um .ipa está disponível para sideloading em [releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases).
  A app iOS não funciona em segundo plano, porque não encontrei possibilidade de usar algo semelhante a `ForegroundServices` para fazer scan permanente de BTLE ADV devido às restrições do iOS. Por isso, apenas está disponível um *Canary Mode* no *Nearby Glasses* no iOS. Se sabes Swift e iOS melhor do que eu (o que é provável), por favor contribui!
- Como este repositório contém código da app Android e iOS, reorganizei as pastas. Assim, existem [/iOS](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/iOS) e [/Android](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/Android).

## Utilização

- Consulta as [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) para descarregar o APK ou usa a Google Play Store. F-Droid e/ou Accrescent podem seguir-se.
<img width="135" height="300" align ="right" alt="Screenshot Nearby Glasses: Settings" 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="Get It On 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="Download on the App Store" src="https://assets.kitploit.com/production/public/readmes/12083/a6fa504b048d52b4e9f5108021dce33af0d96b8b78c34095072971f4a34471fa.png" /></a>
1. Instala a app (a partir das [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) ou da [Google Play](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses), por agora) ou da [Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896), e abre-a
2. Carrega no botão *Start Scanning*
3. Concede permissões para ativar o Bluetooth (se ainda não estiver ativado) e para aceder a dispositivos por perto. Algumas versões do Android também exigem que concedas permissões para aceder à tua localização (antes da Versão 13, principalmente). *Nearby Glasses* não faz nada com a tua informação de localização. Se não acreditas em mim, por favor consulta o [código](https://github.com/yjeanrenaud/yj_nearbyglasses/tree/main/app)
4. se não vires o scan a começar, podes precisar de ativar o *Foreground Service* no teu telefone específico no menu *Settings* (ver abaixo)
5. Está tudo pronto! Quando forem detetados óculos inteligentes por perto, aparecerá uma notificação. Isto acontece até carregares em *Stop Scanning* ou terminares a app definitivamente
7. No menu (canto superior direito, a roda dentada), podes fazer algumas *Settings*:
   1. *Enable Foreground Service*: Com isto, impedes o Android de pausar a app, evitando assim que te alerte. Recomendo deixar isto ativado
   2. *RSSI threshold*: Este número negativo especifica quão longe um dispositivo pode estar para ser motivo de alerta pelo *Nearby Glasses*. Tecnicamente, refere-se a quão forte o sinal é recebido. Mais próximo de zero significa melhor sinal, logo menor distância entre o teu telefone e os óculos inteligentes. Consulta [RSSI acima para explicações e orientações](#how). Recomendo deixá-lo em -75
   3. *Enable Notifications*: Não vais querer desativar isto 
   4. Canary Mode. Este é o novo padrão. Com isto, não receberás notificações do sistema a alertar-te de óculos inteligentes por perto, mas em vez disso verás um canário que indica que não há óculos inteligentes por perto. A app iOS só tem um modo canário devido a restrições técnicas. <img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary.svg" alt="Drawing of a canary" width="100" height="100" alignt="left"> 
   5. *Notification/Canary Cooldown*: Aqui, especificas quantas notificações sobre óculos inteligentes encontrados por perto queres receber ou quanto tempo o canário deve esconder-se. Escolhi 10 segundos (10000 ms) como valor predefinido. Assim, não perderás a notificação e ao mesmo tempo não serás incomodado demasiado por ela nem drenarás a bateria demasiado depressa
   6. *Enable Log Display*: Desativar isto pode poupar-te alguma bateria. Isto está desativado no modo canário.
   7. *Debug*: É necessário para ver mais do que apenas os frames BLE correspondentes no frame de visualização do registo. É útil para ver se as coisas estão a funcionar. Isto está desativado no modo canário.
   8. *Max log lines*: Quão longo o registo pode ficar. 200 parece ser um bom equilíbrio entre a vida da bateria e a usabilidade do registo (para nerds como eu). Isto está desativado no modo canário.
   9. *BLE ADV only*: Isto exclui outros frames Bluetooth LE do registo para melhor legibilidade. Isto está desativado no modo canário.
   10. *Override Company IDs*: Se quiseres, podes fazer com que o *Nearby Glasses* te alerte sobre outros dispositivos além dos especificados acima. Útil para depuração, pelo menos para mim. Deixa vazio se não precisares ou não souberes o que fazer com isto
   11. Cada definição é guardada e efetiva imediatamente. Para voltar atrás, usa o botão ou gesto de retroceder
8. A função de exportação permite-te partilhar um ficheiro de texto do registo da app. Para nerds como eu
9. Também podes copiar e colar o registo tocando no frame de visualização do registo

## ToDos
- **Está agora a funcionar no terreno!** Consegui que algumas pessoas o testassem com óculos inteligentes verificados à sua volta. Agradecimento especial à Lena!
- Consulta as [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) para descarregar o APK. 
- Também publiquei o [*Nearby Glasses* na Google Play](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses). No entanto, publicarei sempre [releases aqui no GitHub](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) e [noutros locais](https://yves.app/nearbyglasses/latest.apk), para aqueles que evitam a Google Play.

---

- Adicionar uma opção para colocar falsos positivos numa lista de ignorados. Talvez na notificação?
- Não sou de todo um especialista em BT ou Android. Pelo que aprendi, também se poderia aprofundar mais a comunicação dos óculos inteligentes ao fazer sniffing do tráfego BLE. Ao fazê-lo, provavelmente não precisaríamos de depender de o dispositivo se comportar de acordo com as especificações BT, mas também poderíamos usar heurísticas nas transmissões de tráfego encriptado sem muitos falsos positivos. Mas não analiso pacotes de tráfego BT há mais de dez anos. Ainda bem que me lembrei dos frames ADV... Por isso, se alguém puder ajudar nisto, seria muito apreciado!
---
- Adicionar **mais IDs de fabricantes** de óculos inteligentes. Neste momento, são a Meta, a Oakley e a Snap. Uma lista de óculos inteligentes com câmaras disponíveis também ajudaria. Abri uma [ISSUE para isto](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/56), para que as pessoas possam **ajudar** enviando os seus registos (que são perfeitamente seguros, na minha opinião) ao encontrarem outros óculos inteligentes com gravação
- a partir de 24 de março de 2026, a versão iOS também está disponível.
- O **problema de layout** com **dispositivos Google Pixel** parece estar corrigido a partir da Versão 1.0.3. Se ainda não conseguires aceder ao menu porque está misturado com a barra de estado de alguma forma. Vou analisar isso o mais depressa possível. Entretanto, tenta colocar o ecrã em modo paisagem e rodar *no sentido dos ponteiros do relógio (para a direita)*. 

## Solucionismo Tecnológico?
Sei que este pode ser um local estranho para o fazer, mas ouve-me só sobre isto. Estou ciente de que esta é uma solução técnica para um problema social, que é ele próprio amplificado pela tecnologia.
Não quero promover o solucionismo tecnológico nem quero que as pessoas se sintam falsamente seguras. Continua a ser uma abordagem imperfeita e provavelmente sempre será. Não é tudo bom só porque esta app existe agora. Precisamos de melhores soluções para travar a tecnologia de vigilância e a intrusão na privacidade.

## Compilar a partir do Código-Fonte
Como o *Nearby Glasses* é open source, também podes compilar a app tu mesmo a partir do código-fonte. Isto garante que não há outras bibliotecas incluídas no APK e que obténs o que queres.

Nota que esta app é compilada com base em:
- Gradle Wrapper: 9.3.1
- Android Gradle Plugin: 8.13.2
- Kotlin: 1.9.22
- compileSdk: 36
- targetSdk: 36
- minSdk: 26
- Sem product flavors
- Repositórios: apenas google() e mavenCentral()
- Sem plugins Google Services ou Firebase

### Requisitos

- **JDK 17** (obrigatório — o projeto tem como alvo Java 17)
- **Android SDK Platform 35** instalado  
  - compileSdk = 35  
  - targetSdk = 35  
- Git
### Compilar o APK passo a passo```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

Agradecimentos

  • @[email protected] por me ajudar com os avisos
  • @[email protected] por apontar a ideia de um modo canário
  • @pojntfx por apontar meus mal-entendidos com licenciamento
  • Sarah-Jane B. pelas dicas de design de UX
  • Lena Radau pela tradução para o espanhol
  • Marcel L. pelo feedback e testes do app para iOS
  • Lena Hansen pelos testes de campo
  • Todos os outros que já forneceram feedback para o app!

Licença e Créditos

Ícone do App: O ícone é baseado em Glasses SVG Vector by sensa, licensed under CC0 1.0 Universal.


Licença: Este app Nearby Glasses está licenciado sob a licença AGPL-3.0.
Canário: Os desenhos do canário são feitos por mim e licenciados sob CC BY-SA 4.0. Eu os forneci como arquivos svg brutos (feitos no InkScape) e convertidos para xml, obviamente, para os recursos do app

Categorias