2 points par GN⁺ 2024-07-02 | 1 commentaires | Partager sur WhatsApp

Motivation

  • Exploration depuis plusieurs années de la possibilité d’accéder au lit Sleep Number via le réseau local
  • Création d’un plugin homebridge permettant de contrôler les réglages du lit via HomeKit
  • Demande de Sleep Number de désactiver le plugin en raison d’une fréquence trop élevée des requêtes API
  • Décision de trouver un moyen de contourner les serveurs via un accès au réseau local

Prérequis

  • Numéro de modèle du hub Sleep Number : 360SIQ01D
  • Un périphérique UART vers TTY et d’autres outils matériels sont nécessaires
  • Une clé USB-A est nécessaire

Obtenir les droits d’accès root

  1. Connecter le périphérique UART au header J16
  2. Connecter une console au périphérique UART (baud rate : 115200)
  3. Mettre le hub sous tension et appuyer sur <SPACE> dans les 2 secondes pour interrompre la séquence de démarrage automatique
  4. Modifier les variables d’environnement de démarrage
    • Sauvegarder les variables d’environnement par défaut
    • Supprimer run set_bootargs; de la variable bootcmd
    • Ajouter ce qui suit à la variable 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. Au premier démarrage, insérer une clé USB contenant le fichier let_me_root
  6. Remonter la partition root en rw puis ajouter le fichier let_me_root
  7. Configurer l’accès SSH

Créer un serveur de contrôle et de supervision sur le réseau local

  • Configurer un serveur HTTP avec Python 2.7.18
  • Écrire un script de serveur HTTP capable d’exécuter les scripts du répertoire /bam/scripts
  • Copier le script sur le hub et l’exécuter

Ajouter un script rc.d

  • Ajouter un script rc.d à la partition /real.root
  • Copier le script sur le hub et le déplacer à l’emplacement approprié
  • Ajouter les liens symboliques nécessaires

Commandes utiles

  • Le script /bio permet d’utiliser diverses commandes de contrôle du lit
  • Exemples de commandes :
    • arg=PSNL : récupérer la dernière valeur de numéro de sommeil définie pour le côté gauche du lit
    • arg=PSNS&arg=L100 : définir le numéro de sommeil du côté gauche du lit à 100

Étapes suivantes

  • Explorer les fonctions de contrôle du lit dans le répertoire racine /bam
  • Prendre en compte les problèmes de sécurité du hub, qui communique avec les serveurs Sleep Number via un tunnel SSH
  • Écrire une petite application web pouvant remplacer l’application SleepIQ

Annexe : variables d’environnement U-Boot d’origine du 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
  • Autres variables...

Avis de GN⁺

  • Ce guide permet un accès au lit Sleep Number via le réseau local, offrant davantage de contrôle à l’utilisateur
  • Compte tenu des problèmes de sécurité du hub, il est recommandé de couper la connexion à Internet externe
  • Il existe aussi d’autres produits de maison connectée offrant des fonctions similaires
  • Lors de l’adoption de nouvelles technologies, il faut examiner avec soin les questions de sécurité et de maintenance

1 commentaires

 
GN⁺ 2024-07-02
Avis Hacker News
  • Utilisait autrefois un lit sans fonctions intelligentes

    • Deux contrôleurs filaires étaient connectés à la pompe
    • Aucun Internet ni microcontrôleur Linux n’était nécessaire
    • Dormait confortablement sans se soucier du piratage
  • S’intéresse au hub qui communique avec les serveurs de Sleep Number via un tunnel SSH

    • Se demande s’il utilise PubkeyAuth ou un mot de passe
    • Imagine la possibilité d’un détournement DNS
    • Cite la célèbre phrase d’Homer Simpson : "le lit monte et descend"
  • Il existe une méthode similaire pour accéder au Eight Sleep Pod 3

    • Certains modèles incluent une carte MicroSD modifiable
    • La méthode utilisée sur TFA pourrait être un bon moyen d’obtenir un accès root sans la carte
    • Eight Sleep signe les mises à jour du firmware, mais envoie aussi la clé privée utilisée pour la signature
  • Pensait qu’il s’agissait d’un article sur le piratage d’un lit Eight Sleep

    • A été surpris en voyant une vraie photo du "Number Sleep Hub"
    • Est choqué d’apprendre qu’Eight Sleep et Sleep Number sont deux entreprises qui fabriquent des lits refroidis par eau
  • Voici une blague sur un rançongiciel

    • "Si vous ne payez pas 1 000 dollars, vous ne pourrez pas dormir dans votre lit pendant le mois prochain"
  • Trouve pénible de ne pas pouvoir régler la température du lit quand Internet est coupé

  • Décide de ne pas acheter de lit Sleep Number

    • A eu deux matelas dont les cloisons internes se sont cassées après l’externalisation de la production en Chine
  • S’interroge sur la nécessité pour un lit d’exécuter Linux

    • Ne comprend pas pourquoi un lit aurait besoin de 1 Go de RAM et d’un OS complet
    • A aussi eu du mal à trouver une machine à laver sans connexion Wi‑Fi
    • Il devient de plus en plus difficile d’éviter les appareils intelligents
  • Recommande d’ajouter un fer à souder à la liste de courses