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

tentativa de detetar óculos inteligentes nas proximidades e avisá-lo.

⚠ AVISO! ⚠

nearby-glasses-alert.pages.dev NÃO ESTÁ RELACIONADO COM O MEU PROJETO. Muitas aplicações na Play Store e na App Store parecem-se ou até se chamam de forma muito semelhante a Nearby Glasses. Parecem aproveitar-se do nome e tentar obter lucro rápido com ele. Não cumprem a licença AGPL, não dão nada. Não endosso isso.

Captura de ecrã Nearby Glasses clássico Captura de ecrã Nearby Glasses modo canary

⚠ AVISO! ⚠

ASSEDIAR alguém por pensar que essa pessoa está a usar um dispositivo de vigilância oculto pode ser crime. Pode até ser um crime mais grave do que usar tal dispositivo. Consulte aconselhamento jurídico sobre as leis locais relativamente a este assunto.

⚠ NÃO ASSEDIE NINGUÉM, DE TODO ⚠


Nearby Glasses

A aplicação, chamada Nearby Glasses, tem um único propósito: procurar óculos inteligentes nas proximidades e avisá-lo.

Obter no Google Play Obter no IzzyOnDroid Obter no Obtainium Descarregar na App Store

Índice

Esta aplicação notifica-o quando há óculos inteligentes nas proximidades. Utiliza identificadores de empresas nos dados Bluetooth emitidos por estes. Por isso, é provável que existam falsos positivos (por exemplo, de headsets de realidade virtual). Assim, proceda com cautela ao aproximar-se de uma pessoa que use óculos. Podem ser apenas óculos normais, apesar do aviso desta aplicação.

O autor da aplicação, Yves Jeanrenaud, não assume qualquer responsabilidade por esta aplicação nem pela sua funcionalidade. Utilize por sua conta e risco. Por conceção técnica, a deteção de dispositivos Bluetooth LE pode, por vezes, simplesmente não funcionar como esperado. Não sou um programador licenciado. Isto foi tudo escrito no meu tempo livre e com conhecimentos que aprendi sozinho.
É provável que existam falsos positivos. Isto significa que a aplicação Nearby Glasses pode notificá-lo de óculos inteligentes nas proximidades quando, na verdade, pode haver um headset de realidade virtual do mesmo fabricante ou outro produto dessa empresa. Também pode não detetar óculos inteligentes nas proximidades. Mais uma vez: não sou um programador profissional.
No entanto, esta aplicação é gratuita e de código aberto, pode rever o código, alterá-lo e reutilizá-lo (sob a licença).
A aplicação Nearby Glasses não armazena quaisquer dados sobre si nem recolhe qualquer informação sobre si ou sobre o seu telemóvel. Não há telemetria, nem anúncios, nem outros incómodos. Se instalar a aplicação através da Play Store, o Google pode saber algo sobre si e recolher algumas estatísticas. Mas a aplicação em si não o faz.
Se optar por armazenar (exportar) o ficheiro de registo, isso depende totalmente de si e da sua responsabilidade quanto ao destino desses dados. Os registos são gravados apenas localmente e não são partilhados automaticamente com ninguém. Contêm poucos dados sensíveis; na verdade, apenas os códigos de identificação do fabricante dos dispositivos BLE encontrados.

Utilize com extrema cautela! Como foi dito antes: não há garantia de que os óculos inteligentes detetados estejam realmente nas proximidades. Pode ser outro dispositivo tecnicamente semelhante (ao nível do anúncio BLE) aos óculos inteligentes.
Por favor, não aja precipitadamente. Pense antes de agir com base em qualquer mensagem (não apenas desta aplicação).

Porquê?

  • Porque considero os óculos inteligentes uma intrusão intolerável, que ignora o consentimento, uma peça horrível de tecnologia que já é usada para criar vários e imensos conteúdos igualmente verdadeiramente nojentos. 1, 2
  • Alguns óculos inteligentes têm um pequeno LED que indica que está a ocorrer uma gravação. Mas isto é facilmente desativado, enquanto os fabricantes afirmam impedir isso e não assumem qualquer responsabilidade (a tecnologia tende a fazer isto há décadas). 3
  • Os óculos inteligentes já foram usados para reconhecimento facial instantâneo 4 e, segundo consta, virão com essa funcionalidade de série 5. Isto coloca muitas pessoas em perigo.
  • Os dados são usados para treinar IA, o que significa que as pessoas irão rever as gravações e ver, provavelmente, os vislumbres mais íntimos 6
  • Espero que esta aplicação seja útil para alguém.

Como?

  • É uma abordagem simples e bastante heurística. Como o BLE utiliza MAC aleatórios e os OSSID não são estáveis, nem o UUID dos anúncios de serviço, não é possível simplesmente procurar os beacons Bluetooth. E, para tornar as coisas ainda piores, alguns, como a Meta, por exemplo, utilizam serviços Bluetooth proprietários e os UUID não são persistentes, por agora 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. Segundo este, o nome da empresa fabricante aparece como códigos numéricos no cabeçalho do pacote de anúncio (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 IDs de empresa:
  - `0x01AB` para `Meta Platforms, Inc. (anteriormente 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, a Meta e outros fabricantes também têm outros produtos que vêm com Bluetooth e, portanto, com o seu ID, por exemplo, headsets de VR. Portanto, usar esses códigos de ID de empresa no processo de digitalização do aplicativo está sujeito a falsos positivos. Mas se você não consegue ver alguém usando um Oculus Rift ao seu redor e não há prédios onde eles possam se esconder, as chances são boas de que sejam óculos inteligentes.
- Durante o emparelhamento, os óculos inteligentes geralmente emitem o nome do produto, então também podemos procurar por isso. Mas é raro vermos isso em campo. Pessoas com a intenção de usar óculos inteligentes em bares, pubs, na rua e em outros lugares geralmente se preparam para isso com antecedência.
- Quando o aplicativo reconhece um dispositivo Bluetooth Low Energy (BLE) com intensidade de sinal suficiente (veja RSSI abaixo), ele envia uma mensagem de alerta. Isso deve ajudá-lo a agir de acordo.
- Além disso, procuramos por 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*, você também pode encontrar os Nilox Smart AI Glasses, que são vendidos pela ALDI e Hofer (na Áustria). Para reforçar isso, também procuramos pelo `primary_UUID`, um identificador de serviço que é fixo no lado do software desses óculos (`7905FFF0-B5CE-4E99-A40F-4B1E122D00D0`). Embora isso possa mudar no futuro, é improvável, pois tornaria dispositivos mais antigos inutilizáveis; portanto, podemos apenas adicionar mais UUIDs à rotina de digitalização nesse caso.
## Recursos
- O aplicativo *Nearby Glasses* mostra uma notificação quando óculos inteligentes estão por perto (ou seja, um dispositivo BLE de um desses IDs de empresa mencionados acima)
- **Por perto** significa que o RSSI (intensidade do sinal) é menor ou igual a um valor determinado: -75 dBm por padrão. Esse valor padrão corresponde a uma distância média e a um sinal razoável.
  ### O que é RSSI?
- Deixe-me explicar um pouco esse valor de RSSI:<br/>
RSSI é a sigla para Received Signal Strength Indication (Indicação da Intensidade do Sinal Recebido). O valor é uma indicação da intensidade do campo de recepção de aplicações de comunicação sem fio. [A Wikipedia tem um artigo bastante bom](https://en.wikipedia.org/wiki/Received_signal_strength_indicator) sobre o assunto.
Em resumo, o RSSI depende principalmente de:<br/>
  - Potência de transmissão do dispositivo
  - Design da antena
  - Paredes e obstáculos
  - Corpos humanos absorvendo 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 quase perda de sinal<br/>
Em ambientes fechados, as distâncias costumam ser muito menores.<br/>
O RSSI cai aproximadamente de acordo com<br/>
    `RSSI ≈ -10 * n * log10(distance) + constant`<br/>
- Portanto, o limite padrão de RSSI de -75 dBm corresponde a cerca de 10 a 15 metros em espaço aberto e 3 a 10 metros em ambientes fechados ou lotados. Assim, você tem uma boa chance de identificar a pessoa usando óculos inteligentes.
- *Nearby Glasses* mostra um log de depuração opcional que é exportável (como arquivo txt) e possui uma função de copiar e colar. Esses recursos são para usuários avançados (nerds) e para depuração adicional.
- Em *Configurações*, você pode especificar o tamanho do log e a depuração (exibir todos os itens de digitalização ou apenas quadros ADV).
- Você também pode inserir alguns **IDs de empresa** como uma string de valores hexadecimais, por exemplo, `0x01AB,0x058E,0x0D53`. Isso substitui a detecção integrada, então sua notificação aparecerá para o(s) novo(s) valor(es).
- Para melhor persistência, ele usa o *Foreground Service* do Android. Você pode desativar isso em *Configurações* se não precisar.
- O *Notification Cooldown* (Tempo de espera entre notificações) em *Configurações* especifica quanto tempo deve passar entre dois avisos. O padrão é 10000 ms, ou seja, 10 s. Isso também se aplica ao canário; por exemplo, 10s significa que ele permanecerá em alerta por 10s antes de se acalmar novamente.
- Agora está um pouco mais localizado: <img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary_hide.svg" align="right" alt="Desenho de um canário que se esconde debaixo de uma asa" height="100" width="100">
   - Inglês
   - Alemão
   - Alemão suíço
   - Francês
   - Espanhol
   - Chinês
   - Italiano
   - Português (Brasil)
   - Russo
   - Turco
   - mais idiomas em breve, eventualmente ([apoie este projeto contribuindo no seu idioma!](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/3))
- Agora o fundo do ícone do aplicativo não é mais transparente
- Agora também procuramos por UUIDs
- *Nearby Glasses* agora suporta modo escuro (via configurações do sistema)
- O problema de layout edge-to-edge deve estar corrigido a partir da [v1.0.4](https://github.com/yjeanrenaud/yj_nearbyglasses/releases).
- Recentemente licenciado sob AGPL 3.0
- Decidi renunciar ao CLA. Após algumas discussões com pessoas que sabiam mais do que eu sobre projetos colaborativos, ganhei a percepção de que esse era um passo desnecessário.
## iOS e Android
- Finalmente, após três semanas, a versão para iOS está disponível. Deve funcionar na maioria dos iPhones e iPads; até mesmo nos mais antigos (até o iOS 16). [O código-fonte e os arquivos 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 arquivos json da localização do Android), mas está funcionando até agora. *Nearby Glasses* está disponível na [Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896). (Chama-se original para distingui-lo dos imitadores). Um arquivo .ipa está disponível para sideload em [releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases).
  O aplicativo iOS não funciona em segundo plano, porque não encontrei nenhuma possibilidade de usar algo semelhante a `ForegroundServices` para digitalizar permanentemente por ADV BTLE devido às restrições do iOS. Portanto, há apenas um *Canary Mode* disponível em *Nearby Glasses* no iOS. Se você conhece Swift e iOS melhor do que eu (o que é provável), por favor, contribua!
- Como este repositório contém tanto o código do aplicativo Android quanto o do iOS, reorganizei as pastas. Portanto, há [/iOS](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/iOS) e [/Android](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/Android).

## Uso

- Veja [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) para baixar o APK ou use o Google Play Store. F-Droid e/ou Accrescent podem vir em seguida.
<img width="135" height="300" align ="right" alt="Captura de tela Nearby Glasses: Configurações" 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="Obtenha no 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="Baixe na App Store" src="https://assets.kitploit.com/production/public/readmes/12083/a6fa504b048d52b4e9f5108021dce33af0d96b8b78c34095072971f4a34471fa.png" /></a>
1. Instale o aplicativo (de [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) ou do [Google Play](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses), por enquanto) ou da [Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896), e abra-o
2. Toque no botão *Start Scanning*
3. Conceda permissões para ativar o Bluetooth (se ainda não estiver ativado) e para acessar dispositivos próximos. Algumas versões do Android também exigem que você conceda permissões para acessar sua localização (principalmente antes da Versão 13). *Nearby Glasses* não faz nada com suas informações de localização. Se você não acredita em mim, por favor, veja o [código](https://github.com/yjeanrenaud/yj_nearbyglasses/tree/main/app)
4. Se você não vir a digitalização começar, talvez seja necessário ativar o *Foreground Service* no seu telefone específico no menu *Configurações* (veja abaixo)
5. Está tudo pronto! Quando óculos inteligentes forem detectados por perto, uma notificação aparecerá. Isso acontece até você tocar em *Stop Scanning* ou encerrar o aplicativo definitivamente
7. No menu (canto superior direito, a engrenagem), você pode fazer algumas *Configurações*:
   1. *Enable Foreground Service*: Com isso, você impede que o Android pause o aplicativo, evitando assim que ele deixe de alertá-lo. Recomendo deixar isso ativado
   2. *RSSI threshold*: Este número negativo especifica a que distância um dispositivo pode estar para ser motivo de alerta pelo *Nearby Glasses*. Tecnicamente, refere-se à intensidade com que o sinal é recebido. Mais próximo de zero significa melhor sinal, portanto, menor distância entre seu telefone e os óculos inteligentes. Veja [RSSI acima para explicações e orientações](#how). Recomendo deixar em -75
   3. *Enable Notifications*: Você não gostaria de desativar isso
   4. Canary Mode. Este é o novo padrão. Com isso, você não receberá notificações do sistema alertando sobre óculos inteligentes por perto, mas em vez disso verá um canário que indica que não há óculos inteligentes ao redor. O aplicativo iOS só tem o modo canário devido a restrições técnicas. <img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary.svg" alt="Desenho de um canário" width="100" height="100" alignt="left">
   5. *Notification/Canary Cooldown*: Aqui, você especifica quantas notificações sobre óculos inteligentes encontrados por perto deseja receber ou por quanto tempo o canário deve se esconder. Escolhi 10 segundos (10000 ms) como valor padrão. Assim, você não perderá a notificação e, ao mesmo tempo, não será incomodado demais nem drenará sua bateria rápido demais
   6. *Enable Log Display*: Desativar isso pode economizar bateria. Isso está desativado no modo canário.
   7. *Debug*: É necessário para ver mais do que apenas os quadros BLE correspondentes no quadro de exibição do log. É útil para ver se as coisas estão funcionando. Isso está desativado no modo canário.
   8. *Max log lines*: O tamanho máximo que o log pode ter. 200 parece ser um bom equilíbrio entre vida útil da bateria e usabilidade do log (para nerds como eu). Isso está desativado no modo canário.
   9. *BLE ADV only*: Isso exclui outros quadros Bluetooth LE do log para melhor legibilidade. Isso está desativado no modo canário.
   10. *Override Company IDs*: Se quiser, você pode fazer o *Nearby Glasses* alertá-lo sobre outros dispositivos além dos especificados acima. Útil para depuração, pelo menos para mim. Deixe vazio se não precisar ou não souber o que fazer com isso
   11. Cada configuração é salva e tem efeito imediato. Para voltar, use o botão ou gesto de voltar
8. A função de exportação permite que você compartilhe um arquivo de texto do log do aplicativo. Para nerds como eu
9. Você também pode copiar e colar o log tocando no quadro de exibição do log

## ToDos
- **Agora está funcionando no mundo real!** Consegui que algumas pessoas testassem com óculos inteligentes verificados ao redor. Agradecimento especial à Lena!
- Veja [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) para baixar o APK.
- Também publiquei [*Nearby Glasses* no Google Play](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses). No entanto, sempre publicarei [releases aqui no GitHub](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) e [em outros lugares](https://yves.app/nearbyglasses/latest.apk), para aqueles que evitam o Google Play.

---

- Adicionar uma opção para colocar falsos positivos em uma lista de ignorados. Talvez na notificação?
- Não sou especialista em BT ou Android. Pelo que aprendi, também se poderia aprofundar na comunicação dos óculos inteligentes farejando o tráfego BLE. Ao fazer isso, provavelmente não precisaríamos confiar no dispositivo se comportando de acordo com as especificações BT, mas também poderíamos usar heurísticas nas transmissões de tráfego criptografado sem muitos falsos positivos. Mas não olho para pacotes de tráfego BT há mais de dez anos. Estou feliz por ter me lembrado dos quadros ADV... Então, se alguém puder ajudar nisso, seria muito apreciado!
---
- Adicionar **mais IDs de fabricantes** de óculos inteligentes. No momento, são Meta, Oakley e Snap. Uma lista de óculos inteligentes com câmeras disponíveis também ajudaria. Abri uma [ISSUE para isso](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/56), para que as pessoas possam **ajudar** enviando seus logs (que são perfeitamente seguros, na minha opinião) ao encontrarem outros óculos inteligentes de 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 você ainda não conseguir acessar o menu porque ele está de alguma forma misturado com a barra de status. Vou investigar isso o mais rápido possível. Enquanto isso, tente colocar sua tela no modo paisagem e gire *no sentido horário (para a direita)*.

## Tech-Solutionism?
Eu sei, este pode ser um lugar estranho para fazer isso, mas apenas me ouça. Estou ciente de que esta é uma solução técnica para um problema social, que é em si amplificado pela tecnologia.
Não quero promover o techsolutionism nem quero que as pessoas se sintam falsamente seguras. Ainda é uma abordagem imperfeita e provavelmente sempre será. Nem tudo é bom só porque este aplicativo existe agora. Precisamos de melhores soluções para conter a tecnologia de vigilância e a intrusão de privacidade.

## Compilar a partir do Código-Fonte
Como o *Nearby Glasses* é de código aberto, você também pode compilar o aplicativo a partir do código-fonte. Isso garante que não haja outras bibliotecas incluídas no APK e que você obtenha o que deseja.

Observe que este aplicativo é construído com:
- 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 Google Services ou plugins Firebase

### Requisitos

- **JDK 17** (obrigatório — o projeto tem como alvo o Java 17)
- **Android SDK Platform 35** instalado
  - compileSdk = 35
  - targetSdk = 35
- Git
### Compilando 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 sugerir a ideia de um modo canário
  • @pojntfx por apontar meus equívocos sobre 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 aplicativo iOS
  • Lena Hansen pelos testes de campo
  • Todos os demais que já forneceram feedback sobre o aplicativo!

Licença e Créditos

Ícone do aplicativo: O ícone é baseado em Eyeglass icons created by Freepik - Flaticon
Licença: Este aplicativo Nearby Glasses é licenciado sob a licença AGPL-3.0.
Canário: Os desenhos do canário foram feitos por mim e são 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 aplicativo

Categorias