Động cơ
- Đã khám phá khả năng truy cập qua mạng nội bộ của giường Sleep Number trong nhiều năm
- Đã tạo một plugin homebridge có thể điều khiển cài đặt giường thông qua HomeKit
- Sleep Number đã yêu cầu vô hiệu hóa plugin vì tần suất gọi API quá cao
- Đã quyết định tìm cách bỏ qua máy chủ bằng truy cập qua mạng nội bộ
Yêu cầu chuẩn bị trước
- Số hiệu model Sleep Number Hub: 360SIQ01D
- Cần thiết bị UART to TTY và các công cụ phần cứng khác
- Cần ổ flash USB-A
Giành quyền truy cập root
- Kết nối thiết bị UART vào header J16
- Kết nối console với thiết bị UART (baud rate: 115200)
- Bật nguồn hub và nhấn <SPACE> trong vòng 2 giây để dừng chuỗi khởi động tự động
- Chỉnh sửa biến môi trường khởi động
- Khi khởi động lần đầu, cắm ổ flash có tệp
let_me_root
- Mount lại phân vùng root ở chế độ rw và thêm tệp
let_me_root
- Thiết lập truy cập SSH
Tạo máy chủ điều khiển và giám sát mạng nội bộ
- Thiết lập máy chủ HTTP bằng Python 2.7.18
- Viết script máy chủ HTTP có thể chạy các script trong thư mục
/bam/scripts
- Sao chép script vào hub và chạy nó
Thêm script rc.d
- Thêm script rc.d vào phân vùng
/real.root
- Sao chép script vào hub và di chuyển đến vị trí phù hợp
- Thêm các symbolic link cần thiết
Các lệnh hữu ích
- Có thể dùng nhiều lệnh điều khiển giường khác nhau trong script
/bio
- Lệnh ví dụ:
arg=PSNL: Lấy giá trị số ngủ được thiết lập gần nhất của bên trái giường
arg=PSNS&arg=L100: Đặt số ngủ của bên trái giường thành 100
Các bước tiếp theo
- Khám phá chức năng điều khiển giường trong thư mục gốc
/bam
- Cân nhắc các vấn đề bảo mật của hub đang giao tiếp với máy chủ Sleep Number thông qua SSH tunnel
- Viết một ứng dụng web đơn giản có thể thay thế ứng dụng SleepIQ
Phụ lục: các biến môi trường U-Boot gốc của 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
- Các biến khác...
Ý kiến của GN⁺
- Hướng dẫn này cho phép truy cập qua mạng nội bộ tới giường Sleep Number, mang lại cho người dùng nhiều quyền kiểm soát hơn
- Xét đến các vấn đề bảo mật của hub, nên ngắt kết nối Internet bên ngoài
- Cũng có những sản phẩm nhà thông minh khác cung cấp chức năng tương tự
- Khi đưa công nghệ mới vào sử dụng, cần cân nhắc cẩn thận các vấn đề về bảo mật và bảo trì
1 bình luận
Bình luận trên Hacker News
Trước đây đã dùng một chiếc giường không có tính năng thông minh
Quan tâm đến hub giao tiếp với máy chủ Sleep Number thông qua SSH tunnel
Có một phương pháp tương tự để truy cập Eight Sleep Pod 3
Ban đầu tưởng đây là bài viết về hack giường Eight Sleep
Tiếp theo là một câu đùa về ransomware
Thật bất tiện khi Internet bị ngắt nên không thể điều chỉnh nhiệt độ giường
Đã quyết định không mua giường Sleep Number
Đặt câu hỏi vì sao một chiếc giường phải chạy Linux
Khuyên nên thêm dụng cụ hàn vào danh sách mua sắm