2 pontos por GN⁺ 2024-07-02 | 1 comentários | Compartilhar no WhatsApp

Motivação

  • Há alguns anos venho explorando a possibilidade de acesso pela rede local à cama Sleep Number
  • Criei um plugin do homebridge para controlar as configurações da cama via HomeKit
  • A Sleep Number pediu que o plugin fosse desativado porque a frequência de requisições à API ficou alta
  • Decidi encontrar uma forma de contornar os servidores por meio de acesso pela rede local

Pré-requisitos

  • Número do modelo do Sleep Number Hub: 360SIQ01D
  • É necessário um dispositivo UART to TTY e outras ferramentas de hardware
  • É necessário um pendrive USB-A

Obtendo acesso root

  1. Conecte o dispositivo UART ao header J16
  2. Conecte um console ao dispositivo UART (baud rate: 115200)
  3. Ligue o hub e pressione <SPACE> dentro de 2 segundos para interromper a sequência de boot automático
  4. Edite as variáveis de ambiente de boot
    • Faça backup das variáveis de ambiente padrão
    • Remova run set_bootargs; da variável bootcmd
    • Adicione o seguinte à variável bootargs:
      console=ttymxc0,115200 root=/dev/mmcblk${linux_mmcdev}p1 rootwait rdinit=/bin/bash -- -c "sed -i 's/LMR=`.*`/LMR=let_me_root/' /init; exec /init"
      
  5. Na primeira inicialização, insira o pendrive com o arquivo let_me_root
  6. Remonte a partição root como rw e adicione o arquivo let_me_root
  7. Configure o acesso SSH

Criando um servidor de controle e monitoramento na rede local

  • Configure um servidor HTTP usando Python 2.7.18
  • Escreva um script de servidor HTTP capaz de executar scripts no diretório /bam/scripts
  • Copie o script para o hub e execute-o

Adicionando um script rc.d

  • Adicione um script rc.d à partição /real.root
  • Copie o script para o hub e mova-o para o local apropriado
  • Adicione os links simbólicos necessários

Comandos úteis

  • É possível usar vários comandos de controle da cama a partir do script /bio
  • Comandos de exemplo:
    • arg=PSNL: obter o último valor de número de sono configurado para o lado esquerdo da cama
    • arg=PSNS&arg=L100: definir o número de sono do lado esquerdo da cama como 100

Próximos passos

  • Explorar os recursos de controle da cama no diretório root /bam
  • Considerar os problemas de segurança do hub, que se comunica com os servidores da Sleep Number por meio de um túnel SSH
  • Escrever um app web simples que possa substituir o aplicativo SleepIQ

Apêndice: variáveis originais do ambiente U-Boot do hub

  • baudrate=115200
  • bootcmd=run find_board_name; run set_bootargs;setenv boot_mmcdev 0; run bootcmd_mmc;setenv boot_mmcdev 1; run bootcmd_mmc
  • Outras variáveis...

Opinião do GN⁺

  • Este guia torna possível o acesso pela rede local à cama Sleep Number, dando ao usuário mais controle
  • Considerando os problemas de segurança do hub, é recomendável desconectar a conexão externa com a internet
  • Também existem outros produtos de casa inteligente que oferecem funções semelhantes
  • Ao adotar novas tecnologias, é preciso considerar com cuidado questões de segurança e manutenção

1 comentários

 
GN⁺ 2024-07-02
Comentários do Hacker News
  • No passado, eu usava uma cama sem recursos inteligentes

    • Dois controladores com fio estavam conectados à bomba
    • Não precisava de internet nem de um microcontrolador Linux
    • Eu dormia tranquilamente sem me preocupar com hacks
  • Há interesse no hub que se comunica com os servidores da Sleep Number por meio de um túnel SSH

    • Há curiosidade se usa PubkeyAuth ou senha
    • Imagina-se a possibilidade de sequestro de DNS
    • Cita a famosa frase de Homer Simpson: "a cama sobe e desce"
  • Existe um método semelhante para acessar o Eight Sleep Pod 3

    • Alguns modelos incluem um cartão MicroSD modificável
    • O método usado no TFA pode ser uma boa forma de obter acesso root sem o cartão
    • A Eight Sleep assina as atualizações de firmware, mas também envia junto a chave privada usada na assinatura
  • Achou que fosse um texto sobre hackear camas da Eight Sleep

    • Ficou surpreso ao ver uma foto real do "Number Sleep Hub"
    • Ficou chocado ao descobrir que tanto a Eight Sleep quanto a Sleep Number fabricam camas com resfriamento a água
  • A seguir, uma piada sobre ransomware

    • "Se você não pagar 1000 dólares, não vai conseguir dormir na sua cama no próximo mês"
  • É inconveniente não conseguir ajustar a temperatura da cama quando a internet cai

  • Decidiu não comprar uma cama Sleep Number

    • Já teve dois colchões cuja divisória interna quebrou depois que a produção foi terceirizada para a China
  • Questiona por que uma cama precisa rodar Linux

    • Não consegue entender por que alguém precisaria de uma cama com 1 GB de RAM e um sistema operacional completo
    • Também foi difícil encontrar uma máquina de lavar sem conexão Wi‑Fi
    • Está cada vez mais difícil evitar dispositivos inteligentes
  • Recomenda adicionar ferramentas de solda à lista de compras