Files
youlai-boot/sql/sn_device_policy.sql
TongTongStudio adb9b96cb7 feat(device): 设备签名升级为 ECDSA 并新增壁纸/图片/闹钟与策略扩展
签名与安全
- 设备验签由 HMAC 重构为 ECDSA P-256(SHA256withECDSA),抽出
  DeviceSignatureVerifier,canonical 串为 METHOD|path|bodyHash|ts|nonce
- 新增 CachedBodyRequestWrapper 支持请求体读取,multipart 不参与 bodyHash
- Redis 一次性 nonce 防重放,验签前校验设备存在且 status != 0(封禁即吊销)
- bind_phone 接口豁免过滤器,改由 Controller 用请求内公钥做 PoP 验签并自动注册
- 新增封禁/解封设备接口(sys:device:update),SQL 增加 sys_sn.public_key

家属端(client)
- 壁纸:上传单个 / 轮换(最多 7 张)/ 调整顺序,静态资源映射 /static/wallpaper/**
- 图片:发送到设备(contentType=24)、发送记录列表、收藏状态标记
- 闹钟:查询 / 新增 / 修改 / 删除,变更后推送设备同步(contentType=25)
- 新增请求绑定设备(contentType=20)、绑定成功通知(21)、反向拨号(22)

设备端(mobile)
- 新增 get_alarms / sync_alarms,按设备本地 id 整表覆盖重建
- 策略接口同步新增 20 项管控开关(安全模式、ADB、APN、飞行模式、定位等)

其他
- MQTT 首次连接失败不再阻塞启动,新增每分钟定时兜底重连
- 文件服务补充 md5/sha1/sha256 校验值,AppIcon 增加 iconSha1/iconSha256
- 新增 SQL:sn_device_key / sn_device_alarm / sn_device_picture / sn_device_wallpaper
2026-10-19 10:41:17 +08:00

60 lines
5.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- 设备策略信息表(sys_sn_device_policy)
-- 说明:存储设备的策略开关状态,与设备 SN 绑定,每个 SN 唯一一条。
-- 所有开关字段默认值均为 1(开启)。
-- =============================================================================
CREATE TABLE IF NOT EXISTS `sys_sn_device_policy`
(
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`serialno` VARCHAR(64) NOT NULL COMMENT '设备序列号(关联 sys_sn.serialno)',
-- ===================== 策略开关 =====================
`usb_data` TINYINT NOT NULL DEFAULT 1 COMMENT 'USB偏好设置(0关闭 1开启)',
`time_setting` TINYINT NOT NULL DEFAULT 1 COMMENT '时间设置管控(0关闭 1开启)',
`storage_card` TINYINT NOT NULL DEFAULT 1 COMMENT '存储卡(0关闭 1开启)',
`factory_reset` TINYINT NOT NULL DEFAULT 1 COMMENT '恢复出厂(0关闭 1开启)',
`wifi_hotspot` TINYINT NOT NULL DEFAULT 1 COMMENT 'WiFi热点开关(0关闭 1开启)',
`bluetooth` TINYINT NOT NULL DEFAULT 1 COMMENT '蓝牙开关(0关闭 1开启)',
`wallpaper` TINYINT NOT NULL DEFAULT 1 COMMENT '壁纸功能(0关闭 1开启)',
`notification_bar` TINYINT NOT NULL DEFAULT 1 COMMENT '通知栏显示(0关闭 1开启)',
`status_bar_pull_down` TINYINT NOT NULL DEFAULT 1 COMMENT '状态栏下拉开关(0关闭 1开启)',
`system_nav_bar_show` TINYINT NOT NULL DEFAULT 1 COMMENT '系统导航条显示(0关闭 1开启)',
`system_nav_bar_setting` TINYINT NOT NULL DEFAULT 1 COMMENT '系统导航栏设置(0关闭 1开启)',
`nav_bar_options` TINYINT NOT NULL DEFAULT 1 COMMENT '导航条选项(0关闭 1开启)',
`config_bluetooth` TINYINT NOT NULL DEFAULT 1 COMMENT '蓝牙功能开关(0关闭 1开启)',
`ota_upgrade` TINYINT NOT NULL DEFAULT 1 COMMENT 'OTA升级管控(0关闭 1开启)',
`install_apps` TINYINT NOT NULL DEFAULT 1 COMMENT '应用安装开关(0关闭 1开启)',
`auto_rotate` TINYINT NOT NULL DEFAULT 1 COMMENT '自动旋转(0关闭 1开启)',
`auto_brightness` TINYINT NOT NULL DEFAULT 1 COMMENT '自动亮度(0关闭 1开启)',
`eye_protection` TINYINT NOT NULL DEFAULT 1 COMMENT '护眼模式(0关闭 1开启)',
`dark_mode` TINYINT NOT NULL DEFAULT 1 COMMENT '深色模式(0关闭 1开启)',
`safe_boot` TINYINT NOT NULL DEFAULT 1 COMMENT '允许进入安全模式(0关闭 1开启)',
`adb_usb_debug` TINYINT NOT NULL DEFAULT 1 COMMENT '开启ADB/USB调试(0关闭 1开启)',
`mount_physical_storage` TINYINT NOT NULL DEFAULT 1 COMMENT '挂载外部存储(SD卡/U盘)(0关闭 1开启)',
`modify_system_time_zone` TINYINT NOT NULL DEFAULT 1 COMMENT '修改系统时间与时区(0关闭 1开启)',
`toggle_airplane_mode` TINYINT NOT NULL DEFAULT 1 COMMENT '切换飞行模式(0关闭 1开启)',
`modify_mobile_apn` TINYINT NOT NULL DEFAULT 1 COMMENT '修改移动网络/APN(0关闭 1开启)',
`uninstall_apps` TINYINT NOT NULL DEFAULT 1 COMMENT '卸载应用(0关闭 1开启)',
`camera` TINYINT NOT NULL DEFAULT 1 COMMENT '摄像头(0关闭 1开启)',
`usb_file_transfer` TINYINT NOT NULL DEFAULT 1 COMMENT 'USB文件传输(MTP)(0关闭 1开启)',
`modify_location_switch` TINYINT NOT NULL DEFAULT 1 COMMENT '修改定位开关(0关闭 1开启)',
`bluetooth_sharing` TINYINT NOT NULL DEFAULT 1 COMMENT '蓝牙对外分享(0关闭 1开启)',
`reset_network_settings` TINYINT NOT NULL DEFAULT 1 COMMENT '重置网络设置(0关闭 1开启)',
`adjust_global_volume` TINYINT NOT NULL DEFAULT 1 COMMENT '调节全局音量(0关闭 1开启)',
`modify_screen_timeout` TINYINT NOT NULL DEFAULT 1 COMMENT '修改屏幕超时休眠时间(0关闭 1开启)',
`manual_adjust_time_zone` TINYINT NOT NULL DEFAULT 1 COMMENT '手动调整系统时间与时区(0关闭 1开启)',
`modify_system_language` TINYINT NOT NULL DEFAULT 1 COMMENT '修改系统语言与区域设置(0关闭 1开启)',
`manual_adjust_brightness` TINYINT NOT NULL DEFAULT 1 COMMENT '手动调整系统亮度与自动亮度开关(0关闭 1开启)',
-- ===================== 通用字段 =====================
`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
`update_time` DATETIME DEFAULT NULL COMMENT '更新时间',
`is_deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除(0未删 1已删)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_serialno` (`serialno`),
KEY `idx_is_deleted` (`is_deleted`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '设备策略信息表';