Skip to content

重要更新(8.15)

重点升级

本次更新重点加强设备安全风控、身份登录、应用管理与操作审计。升级前请备份数据库和现有配置,并在测试设备验证策略、定位、锁机及应用安装流程后再应用到正式环境。

设备安全与风控

  • 新增自动丢失模式与自动定位:满足触发条件后可自动开启设备丢失模式并执行定位,减少人工操作和响应时间。
  • 优化实时激活锁检测逻辑:提升激活锁状态检测的及时性和准确性,降低状态不同步带来的设备风险。
  • 新增 WebStore 防护能力:针对 iOS 27 以下系统版本存在的严重漏洞补充防护方案,建议存量设备尽快完成策略检查。
  • 新增风控断网逻辑:命中风控条件时可执行断网限制,降低高风险设备继续联网操作的可能性。
  • 新增待生效设备策略提示:设备策略尚未执行或仍在等待生效时,后台会显示明确提示,便于管理员及时跟进。

商务信息与身份登录

  • 新增商务信息自定义:支持根据实际业务配置和展示商务相关信息。
  • 优化 IDP 登录逻辑:调整身份提供方登录流程,提高登录稳定性和异常场景兼容性。
  • 新增 IDP 非免密登录选项:管理员可按业务需要选择免密或非免密登录方式,满足不同账号安全策略。

应用、壁纸与支付模式

  • 新增安装 App 功能:支持通过设备管理后台向符合条件的设备下发应用安装任务。
  • 新增自定义支付模式:可结合支付模式限制 App,并支持对应的壁纸自定义配置。

设备运维与审计

  • 新增一键删除未执行命令:可批量清理尚未执行的设备命令,减少无效任务堆积。
  • 新增设备访问限制修改历史日志:记录访问限制的修改内容、操作时间和相关操作信息,便于审计与问题追踪。
  • 新增设备定位历史:保存设备定位记录,方便管理员查看历史位置变化和排查异常情况。

当前版本1.0.0

更新索引,添加设备添加专用账号,增加离线锁机 较上版本更新方式: 增加表 user_settings user_device_add_account 全部表索引均有修改 需要同步索引 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data/static/mdm.html 更新 前端更新

当前版本1.0.1 表增加 device_ip_history user_add_user_relation 表新增记录 INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('disableQuitRemoteManage', '1', '1970-01-01 00:00:00', '2024-07-31 12:11:29', '禁止退出远程管理 1是 0否'); INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('wxAppid', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '微信小程序appid'); INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('wxAppSecret', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '微信小程序appSecret'); INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('wxWorkAesKey', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '企业微信AesKey'); INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('wxWorkAgentId', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '企业微信AgentId'); INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('wxWorkCorpId', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '企业微信CorpId'); INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('wxWorkSecret', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '企业微信Secret'); INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('wxWorkToken', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '企业微信token');

功能: 增加

重置最新安全策略

历史活动区域 http://localhost:9528/doc.html#/mdm%E6%A8%A1%E5%9D%97/%E8%AE%BE%E5%A4%87%E5%8E%86%E5%8F%B2%E6%B4%BB%E5%8A%A8%E5%8C%BA%E5%9F%9F/searchUsingGET_7

丢失模式状态更新增加2和3 分别为 待丢失 待解除

商户添加商户 http://localhost:9528/doc.html#/mdm%E6%A8%A1%E5%9D%97/%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/userAddUserUsingPOST

获取商户添加商户列表 http://localhost:9528/doc.html#/mdm%E6%A8%A1%E5%9D%97/%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/searchUserAddUserUsingGET

分配余额 http://localhost:9528/doc.html#/mdm%E6%A8%A1%E5%9D%97/%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/allotAmountUsingPOST

mdm.html需要修改

可设置快速注册设备模式

代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data/static/mdm.html 更新 前端更新

当前版本1.0.1

数据库增加字段 https://admin.mdm.top/conf/http.pac 改成自己的域名 改完以后访问下这个链接看是不是正常 先添加再更新代码 INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('httpPac', 'https://admin.mdm.top/conf/http.pac', '1970-01-01 00:00:00', '2024-08-05 23:07:38', 'httpPac代理文件url'); 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

当前版本1.0.2

更新内容: 优化任务机制 插入数据 INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('taskErrRetry', '300', '1970-01-01 00:00:00', '1970-01-01 00:00:00', '任务失败重试时间 /秒'); 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

当前版本1.0.3

更新内容: 优化任务机制 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

当前版本1.0.4

增加abm自动解绑 增加abm解绑 增加单独删除监管文件 修复添加余额bug 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启‘

前端编译更新 用户设置页面需要添加

html
<div  class="text item" >
首次开启激活锁后自动解绑ABM 1开启 0关闭 :<el-input style="width: 200px;margin-left: 20px;margin-bottom: 0px" v-model="settings.quickReg" ></el-input> 
</div>

当前版本1.0.5 数据库添加 INSERT INTO mdmadmin.sys_settings (s_key, s_value, create_time, update_time, remark) VALUES ('taskNoResErrRetry', '60', '1970-01-01 00:00:00', '2024-08-23 22:14:48', '命令发送未响应重试 /秒');

1.添加如果命令已发送未响应进行重试机制 2.检测命令优化卡在命令已发送 3.异步任务不在加入延迟队列 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

当前版本1.0.6

升级spring boot 版本

application-dev.yml文件更新

{

resources: static-locations: file:./data/web

改为

web: resources: static-locations: file:./data/web

}

添加

mvc: pathmatch: matching-strategy: ant_path_matcher

添加 management: endpoints: enabled-by-default: false

数据库更新 创建device_token_log表 CREATE TABLE device_token_log ( log_id varchar(64) NOT NULL COMMENT 'logid', device_id varchar(64) NOT NULL COMMENT '设备ip', device_token varchar(255) NOT NULL COMMENT '设备token', create_time datetime NOT NULL COMMENT '创建时间', device_magic varchar(255) NOT NULL COMMENT '设备magic', PRIMARY KEY (log_id), KEY device_id (device_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备token变动';

代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

当前版本1.0.7

数据库执行

ALTER TABLE device_access_auth_list ADD COLUMN auth_type INT(1) NOT NULL DEFAULT 1 COMMENT '权限类型_权限:1-配置:2';

ALTER TABLE device_access_auth_list ADD COLUMN auth_value VARCHAR(100) NOT NULL DEFAULT "" COMMENT '配置的权限值';

INSERT INTO `mdmadmin`.`device_access_auth_list` (`auth_id`, `auth_key`, `auth_name`, `remark`, `is_delete`, `disable_value`, `create_time`, `default_status`, `is_show`, `auth_type`, `auth_value`) VALUES ('13', 'safe_dns', '安全dns', '安全dns', 0, '无', '2024-08-28 11:26:25', 1, 1, 2, '{\"dnsUrl\": \"https://dns.alidns.com/dns-query\"}');

INSERT INTO `mdmadmin`.`device_access_auth_list` (`auth_id`, `auth_key`, `auth_name`, `remark`, `is_delete`, `disable_value`, `create_time`, `default_status`, `is_show`, `auth_type`, `auth_value`) VALUES ('14', 'wifi', '默认wifi', '默认wifi', 0, '无', '2024-08-28 11:26:25', 1, 1, 2, '{\"wifiName\": \"mdm.top\",\"wifiPassword\": \"123456789\"}');

INSERT INTO `mdmadmin`.`device_access_auth_list` (`auth_id`, `auth_key`, `auth_name`, `remark`, `is_delete`, `disable_value`, `create_time`, `default_status`, `is_show`, `auth_type`, `auth_value`) VALUES ('15', 'httpProxy', '禁用退出远程管理', '开启后用户无法退出远程管理', 0, '无', '2024-05-13 19:55:31', 1, 1, 2, '{\"pacUrl\": \"\"}');

ALTER TABLE device_mdm_profile CHANGE disable_erase disable_erase INT(1) NOT NULL COMMENT '是否开启远程管理按钮限制_是:1-否:0 字段弃用';

UPDATE sys_settings SET remark = 'httpPac代理文件url 弃用' WHERE s_key = 'httpPac';

ALTER TABLE user ADD COLUMN staff_device_auth INT(1) NOT NULL DEFAULT 1 COMMENT '员工设备权限_所有:1-仅自己:0';

功能变化

  • 禁用退出远管理按钮弃用 合并至设备访问限制 使用 禁用退出元管理权限替代 device_mdm_profile表对应的 disable_erase 也弃用
  • 追加两个三个权限 安全dns 默认wifi 禁用退出远程管理
  • 安全dns 必须开启 用于限制某些app通过dns污染达到屏蔽监管锁指令的效果
  • 禁用退出远程管理 原 禁用退出远管理按钮
  • 默认wifi 建议开启 该功能开启以后用户可以直接连接到指定wifi 用于开启丢失模式以后 设备没有wifi也没有移动数据导致无法解锁的情况 在这种情况下 再寻找一个手机 开启热点 wifi名称和密码设置成一样即可自动连接上

接口改动

admin/updateAuthList 增加 authValue 字段 user/addStaff 增加 staffDeviceAuth 字段

前端改动(自定义ui需改动)

mdm_vue\src\views\admin\setting\authList.vue 添加 authValue 字段的修改和查询字段

mdm_vue\src\views\device\list\info\deviceInfo.vue 去除禁用退出远程管理按钮相关按钮 和 信息展示 src\views\staff\list.vue 增加字段staffDeviceAuth

代码更新:

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data\web的前端需要更新覆盖

部署成功后操作

  1. 登录管理员账号,进入“平台管理 → 权限清单”,找到“禁用退出远程管理”并修改权限值为 {"pacUrl": "你的 pac 文件地址,也就是 OSS 地址"},保存即可。

新版权限清单

  1. 进入“平台管理 → 权限清单”,找到“安全 DNS”,将权限值修改为 {"dnsUrl": "https://你的域名/dns/query"}。注意将“你的域名”替换成当前后台域名。

新版权限清单配置

nginx配置文件更新 追加dns配置

location = /dns/query {  # 匹配 https://你的域名/dns/query
		# 代理到上游 DoH 服务器
		proxy_pass https://dns.alidns.com/dns-query;
		
		# 设置请求头
		proxy_set_header Host dns.alidns.com;
		proxy_set_header Accept-Encoding "";
		proxy_set_header Connection "keep-alive";
		
		# 确保请求和响应不被缓存
		proxy_buffering off;
		proxy_request_buffering off;
		
		# 传递客户端的请求头
		proxy_pass_request_headers on;
		
		# 设置正确的协议版本
		proxy_http_version 1.1;
		
		# SSL 配置,启用 SNI 支持
		proxy_ssl_server_name on;
}

完整配置参考

server {
    listen         80;
    server_name    mdm.ppgjx.com; # 域名
    client_max_body_size 1024M;
    add_header Strict-Transport-Security max-age=15768000;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl; # 老版本是ssl on;较新的为listen 443 ssl;
    server_name mdm.ppgjx.com; # 域名
    keepalive_timeout 10m;
    client_max_body_size 1024M;
    ssl_certificate      /etc/nginx/cert/mdm.ppgjx.com.pem; # 申请的证书,把证书和秘钥上传到nginx.conf的同级目录cert的目录下
    ssl_certificate_key  /etc/nginx/cert/mdm.ppgjx.com.key; # 秘钥
    ssl_session_timeout 24h;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location /_AMapService/ {
            set $args "$args&jscode=db3c4ab14c402d6c9ce1e7d66d3c09f6"; #高德地图的jscode
            proxy_pass https://restapi.amap.com/;
    }
	location = /dns/query {  
		# 代理到上游 DoH 服务器
		proxy_pass https://dns.alidns.com/dns-query;
		
		# 设置请求头
		proxy_set_header Host dns.alidns.com;
		proxy_set_header Accept-Encoding "";
		proxy_set_header Connection "keep-alive";
		
		# 确保请求和响应不被缓存
		proxy_buffering off;
		proxy_request_buffering off;
		
		# 传递客户端的请求头
		proxy_pass_request_headers on;
		
		# 设置正确的协议版本
		proxy_http_version 1.1;
		
		# SSL 配置,启用 SNI 支持
		proxy_ssl_server_name on;
	}
    location / {
            proxy_pass http://127.0.0.1:34567; 
            proxy_redirect off;
            root /opt/mdm/data/web; # 替换为你实际的web根目录路径
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Port $server_port;
            add_header Content-Security-Policy upgrade-insecure-requests;
      }
}

更新后需要重启 nginx

systemctl restart nginx

更新systemctl 服务器 解决日志写入过大的问题

vim /usr/lib/systemd/system/mdm.service
[Unit]
After=syslog.target network.target remote-fs.target nss-lookup.target


[Service]
WorkingDirectory=/home/mdm
User=mdm
Group=mdm
Type=simple
ExecStart=/home/mdm/xjar /usr/bin/java -jar /home/mdm/mdmadmin-0.0.1-SNAPSHOT.xjar --spring.config.location=/home/mdm/application-dev.yml
PrivateTmp=true

[Install]
WantedBy=multi-user.target

当前版本1.0.8

数据库执行

CREATE TABLE `auth_list` (
  `auth_id` varchar(64) NOT NULL COMMENT '权限id',
  `auth_name` varchar(64) NOT NULL COMMENT '权限名称_c_ss',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `api_path` varchar(255) NOT NULL COMMENT 'api路径_c_ss',
  `classify` varchar(255) NOT NULL COMMENT '权限分类',
  PRIMARY KEY (`auth_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限列表';

CREATE TABLE `role_list` (
  `role_id` varchar(64) NOT NULL COMMENT '角色id_c',
  `auth_list` text NOT NULL COMMENT '权限id列表[]_c',
  `create_time` datetime NOT NULL COMMENT '创建时间_c',
  `update_time` datetime NOT NULL COMMENT '更新时间',
  `org_id` varchar(64) NOT NULL COMMENT '组织id_c',
  `user_id` varchar(64) NOT NULL COMMENT '用户id_c',
  `is_delete` int(1) NOT NULL COMMENT '是否删除_是:1-否:0',
  `role_name` varchar(64) NOT NULL COMMENT '角色名称',
  PRIMARY KEY (`role_id`),
  KEY `org_id` (`org_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色列表';

CREATE TABLE `user_auth` (
  `user_id` varchar(64) NOT NULL COMMENT '用户id_c',
  `role_id` varchar(64) NOT NULL COMMENT '角色id_c',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '更新时间',
  `org_id` varchar(64) NOT NULL COMMENT '组织id_c',
  PRIMARY KEY (`user_id`) USING BTREE,
  KEY `org_id` (`org_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户权限列表';

CREATE TABLE `user_api_token` (
  `user_id` varchar(64) NOT NULL COMMENT '用户id',
  `api_token` varchar(64) NOT NULL COMMENT 'token',
  `create_time` datetime NOT NULL,
  `update_time` datetime NOT NULL,
  `org_id` varchar(64) NOT NULL COMMENT '组织id',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户apitoken\r\n';

CREATE TABLE `user_notify` (
  `nt_id` varchar(64) NOT NULL COMMENT '通知id',
  `user_id` varchar(64) NOT NULL COMMENT '用户id',
  `title` varchar(255) NOT NULL COMMENT '标题',
  `ass_title` varchar(255) NOT NULL COMMENT '副标题',
  `content` varchar(1000) NOT NULL COMMENT '内容',
  `email` varchar(100) NOT NULL COMMENT '邮箱',
  `nt_status` int(1) NOT NULL COMMENT '通知_等待:0-已完成:1',
  `is_read` int(1) NOT NULL COMMENT '用户是否已读_未读:0-已读:1',
  `email_status` int(1) NOT NULL COMMENT '邮箱发送状态_等待:0-成功:1-失败:2',
  `wx_status` int(1) NOT NULL COMMENT '微信群发送状态_等待:0-成功:1-失败:2',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '更新时间',
  `email_err` varchar(255) NOT NULL COMMENT '邮箱发送失败原因',
  `wx_err` varchar(255) NOT NULL COMMENT '微信群发送失败原因',
  `wx_name` varchar(255) NOT NULL COMMENT '微信群名称',
  `org_id` varchar(255) NOT NULL COMMENT '组织id',
  PRIMARY KEY (`nt_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统通知';

INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('accessAppList.add', '添加APP', '2024-09-25 22:34:20', 'accessAppList/add', 'APP管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('accessAppList.delete', '删除APP', '2024-09-25 22:34:20', 'accessAppList/delete', 'APP管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('accessAppList.search', '查询APP', '2024-09-25 22:34:20', 'accessAppList/search', 'APP管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('accessAppList.update', '修改APP', '2024-09-25 22:34:20', 'accessAppList/update', 'APP管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.abmClose', 'ABM解绑', '2024-09-25 22:34:20', 'deviceInfo/abmClose', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.allotDevice', '分配设备', '2024-09-25 22:34:20', 'deviceInfo/allotDevice', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.clearPasscode', '清除锁屏密码', '2024-09-25 22:34:20', 'deviceInfo/clearPasscode', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.controlClose', '一键删除监管', '2024-09-25 22:34:20', 'deviceInfo/controlClose', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.deviceActivateLockClose', '关闭激活锁', '2024-09-25 22:34:20', 'deviceInfo/deviceActivateLockClose', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.deviceActivateLockOpen', '开启激活锁', '2024-09-25 22:34:20', 'deviceInfo/deviceActivateLockOpen', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.disableLostMode', '关闭丢失模式', '2024-09-25 22:34:20', 'deviceInfo/disableLostMode', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.enableLostMode', '启用丢失模式', '2024-09-25 22:34:20', 'deviceInfo/enableLostMode', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.enableTimeLostMode', '启用定时丢失模式', '2024-09-25 22:34:20', 'deviceInfo/enableTimeLostMode', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.eraseDevice', '抹除设备', '2024-09-25 22:34:20', 'deviceInfo/eraseDevice', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.exportDevice', '导出设备', '2024-09-25 22:34:20', 'deviceInfo/exportDevice', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getActivationLockSkipCode', '获取激活密码', '2024-09-25 22:34:20', 'deviceInfo/getActivationLockSkipCode', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getDeviceInfo', '获取设备信息', '2024-09-25 22:34:20', 'deviceInfo/getDeviceInfo', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getHomeInfo', '获取主页统计', '2024-09-25 22:34:20', 'deviceInfo/getHomeInfo', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getLocation', '获取定位', '2024-09-25 22:34:20', 'deviceInfo/getLocation', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.lockMsgUpdate', '修改锁屏消息', '2024-09-25 22:34:20', 'deviceInfo/lockMsgUpdate', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.removeMobileFile', '删除监管文件', '2024-09-25 22:34:20', 'deviceInfo/removeMobileFile', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.resetAuth', '重置为最新安全策略', '2024-09-25 22:34:20', 'deviceInfo/resetAuth', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.search', '搜索设备', '2024-09-25 22:34:20', 'deviceInfo/search', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.setWp', '设置壁纸', '2024-09-25 22:34:20', 'deviceInfo/setWp', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.updateAccessAppAuth', '修改APP访问限制', '2024-09-25 22:34:20', 'deviceInfo/updateAccessAppAuth', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.updateAccessAuth', '修改设备访问限制', '2024-09-25 22:34:20', 'deviceInfo/updateAccessAuth', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.updateDevice', '更新设备', '2024-09-25 22:34:20', 'deviceInfo/updateDevice', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.updateDeviceInfo', '修改设备信息', '2024-09-25 22:34:20', 'deviceInfo/updateDeviceInfo', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.updateIos', '强制更新系统', '2024-09-25 22:34:20', 'deviceInfo/updateIos', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.deviceActivateLockClose', '关闭激活锁', '2024-09-25 22:34:20', 'deviceInfos/deviceActivateLockClose', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.deviceActivateLockOpen', '开启激活锁', '2024-09-25 22:34:20', 'deviceInfos/deviceActivateLockOpen', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.disableLostMode', '关闭丢失模式', '2024-09-25 22:34:20', 'deviceInfos/disableLostMode', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.enableLostMode', '启用丢失模式', '2024-09-25 22:34:20', 'deviceInfos/enableLostMode', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.resetAuth', '重置为最新安全策略', '2024-09-25 22:34:20', 'deviceInfos/resetAuth', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.updateDevice', '更新设备', '2024-09-25 22:34:20', 'deviceInfos/updateDevice', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.updateIos', '强制更新系统', '2024-09-25 22:34:20', 'deviceInfos/updateIos', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.addGroup', '添加分组', '2024-09-26 16:02:34', 'group/search', '设备分组');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.deleteGroup', '删除分组', '2024-09-26 16:02:34', 'group/deleteGroup', '设备分组');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.getMyGroupList', '获取自己分组', '2024-09-26 16:02:34', 'group/getMyGroupList', '设备分组');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.search', '设备分组搜索', '2024-09-26 16:02:34', 'group/search', '设备分组');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.updateGroup', '修改分组', '2024-09-26 16:02:34', 'group/updateGroup', '设备分组');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('lostMsgList.addLost', '丢失消息添加', '2024-09-25 22:34:20', 'lostMsgList/addLost', '丢失消息管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('lostMsgList.deleteLost', '丢失消息删除', '2024-09-25 22:34:20', 'lostMsgList/deleteLost', '丢失消息管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('lostMsgList.getMyLostList', '获取自己的所有丢失消息', '2024-09-25 22:34:20', 'lostMsgList/getMyLostList', '丢失消息管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('lostMsgList.search', '丢失消息获取', '2024-09-25 22:34:20', 'lostMsgList/search', '丢失消息管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('lostMsgList.updateLost', '丢失消息修改', '2024-09-25 22:34:20', 'lostMsgList/updateLost', '丢失消息管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('task.search', '操作记录查询', '2024-09-25 22:34:20', 'task/search', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('userAmountFlow.search', '流水信息查询', '2024-09-25 22:34:20', 'userAmountFlow/search', '系统管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('wallpaper.add', '添加壁纸', '2024-09-25 22:34:20', 'wallpaper/add', '壁纸管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('wallpaper.delete', '删除壁纸', '2024-09-25 22:34:20', 'wallpaper/delete', '壁纸管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('wallpaper.search', '查询壁纸', '2024-09-25 22:34:20', 'wallpaper/search', '壁纸管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('wallpaper.update', '修改壁纸', '2024-09-25 22:34:20', 'wallpaper/update', '壁纸管理');

更新功能 :

系统管理新增角色管理

已创建的员工账号需要设置默认权限后才使用

员工分配角色功能请在“账号与员工 → 员工管理”中操作。

代码更新:

yml新增 is-read-cookie: false

image-20241008231039078

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data\web的前端需要更新覆盖

当前版本1.0.9

数据库执行

INSERT INTO `mdmadmin`.`sys_settings` (`s_key`, `s_value`, `create_time`, `update_time`, `remark`) VALUES ('workToolRotId', ' ', '1970-01-01 00:00:00', '1970-01-01 00:00:00', 'workTool机器人id');

CREATE TABLE `user_notify` (
  `nt_id` varchar(64) NOT NULL COMMENT '通知id',
  `user_id` varchar(64) NOT NULL COMMENT '用户id',
  `title` varchar(255) NOT NULL COMMENT '标题',
  `ass_title` varchar(255) NOT NULL COMMENT '副标题',
  `content` varchar(1000) NOT NULL COMMENT '内容',
  `email` varchar(100) NOT NULL COMMENT '邮箱',
  `nt_status` int(1) NOT NULL COMMENT '通知_等待:0-已完成:1',
  `is_read` int(1) NOT NULL COMMENT '用户是否已读_未读:0-已读:1',
  `email_status` int(1) NOT NULL COMMENT '邮箱发送状态_等待:0-成功:1-失败:2',
  `wx_status` int(1) NOT NULL COMMENT '微信群发送状态_等待:0-成功:1-失败:2',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '更新时间',
  `email_err` varchar(255) NOT NULL COMMENT '邮箱发送失败原因',
  `wx_err` varchar(255) NOT NULL COMMENT '微信群发送失败原因',
  `wx_name` varchar(255) NOT NULL COMMENT '微信群名称',
  `org_id` varchar(255) NOT NULL COMMENT '组织id',
  PRIMARY KEY (`nt_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统通知';


CREATE TABLE `user_sub_device_status_notify` (
  `user_id` varchar(64) NOT NULL COMMENT '用户id',
  `org_id` varchar(64) NOT NULL COMMENT '组织id',
  `sub_ids` varchar(255) NOT NULL COMMENT '订阅设备状态类型id数组[]',
  `create_time` datetime NOT NULL,
  `update_time` datetime NOT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户订阅设备状态通知';

新增微信机器人和邮箱通知 设备状态

使用微信机器人需要开通企业微信以及worktool微信机器400元/年

https://worktool.apifox.cn/

使用教程参考普通用户后台功能说明->设备状态订阅

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data\web的前端需要更新覆盖

当前版本1.1.0

数据库执行

ALTER TABLE device_info ADD COLUMN mac_restore_password VARCHAR(64) NOT NULL DEFAULT "" COMMENT 'mac的恢复锁密码';
ALTER TABLE device_info ADD COLUMN mac_pin VARCHAR(64) NOT NULL DEFAULT "" COMMENT 'mac的pin密码';
ALTER TABLE device_info ADD COLUMN mac_is_apple_silicon INT(1) NOT NULL DEFAULT 0 COMMENT 'MAC是否是mac芯片_是:1-否:0';
ALTER TABLE device_info ADD COLUMN network_type INT(1) NOT NULL DEFAULT 0 COMMENT '网络类型_未知:0-数据:1-wifi:2';
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.lockMac', '锁定mac', '2024-09-25 22:34:20', 'deviceInfo/lockMac', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.enableRestoreLock', '启用恢复锁', '2024-09-25 22:34:20', 'deviceInfo/enableRestoreLock', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.disableRestoreLock', '关闭恢复锁', '2024-09-25 22:34:20', 'deviceInfo/disableRestoreLock', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getMacPin', '获取macpin密码', '2024-09-25 22:34:20', 'deviceInfo/getMacPin', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getRestoreLockPassword', '获取恢复锁密码', '2024-09-25 22:34:20', 'deviceInfo/getRestoreLockPassword', '设备管理');

新增支持mac apple芯片的上锁

支持通过机器人锁机与查询

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data\web的前端需要更新覆盖

当前版本1.1.1

数据库执行

INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.updateAccessAuth', '修改设备访问限制', '2024-09-25 22:34:20', 'deviceInfos/updateAccessAuth', '设备批量管理');

新增批量修改设备访问限制

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data\web的前端需要更新覆盖

当前版本1.1.2

功能新增:

最新技术可防止屏蔽监管锁 (禁止退出远程管理权限勾选的前提下)

可以关闭设备的网络: (禁止退出远程管理权限勾选的前提下)

数据库执行

ALTER TABLE device_info ADD COLUMN store VARCHAR(64) NOT NULL DEFAULT "" COMMENT '门店';
ALTER TABLE device_info ADD INDEX `idx_store_create_time`(`create_time`, `store`) USING BTREE;
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.searchStore', '搜索门店', '2024-09-25 22:34:20', 'group/searchStore', '设备分组');
ALTER TABLE device_info  ADD COLUMN network_close int(1) NOT NULL DEFAULT 0 COMMENT '网络关闭_是:1-否:0';
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.networkClose', '关闭网络', '2024-09-25 22:34:20', 'deviceInfo/networkClose', '关闭网络');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.networkOpen', '开启网络', '2024-09-25 22:34:20', 'deviceInfo/networkOpen', '开启网络');

yml配置文件添加 isMain: true

image-20241224230711241

nginx添加

location /mdm/pac/ {
		proxy_pass http://127.0.0.1:34567; # 将请求转发到目标服务器
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Forwarded-Port $server_port;
}

image-20241225125102264

登录管理员账号,进入“平台管理 → 权限清单”,找到“禁用退出远程管理”,将 pacUrl 修改为空。

新版权限清单页面

注意:pacUrl值为空以后 已经上锁的设备需要重置一下权限才能生效 pacUrl为空后服务器负载会增加 但是可以防止屏蔽监管锁(前提是设备的禁止退出远程管理权限勾选)

针对于pacUrl为空后服务器负载会增加的情况 可以再部署一台服务器 新部署的服务器 yml文件 isMain改成false

image-20241225145607835

然后更改nginx配置

location /mdm/pac/ {
		proxy_pass http://127.0.0.1:34567; # 将请求转发到目标服务器
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Forwarded-Port $server_port;
}

改为(建议新服务器使用内网ip)

location /mdm/pac/ {
		proxy_pass http://新服务器的ip:34567; # 将请求转发到目标服务器
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Forwarded-Port $server_port;
}

当前版本1.1.3

数据库新增

ALTER TABLE device_info ADD COLUMN auto_close_auth INT(1) NOT NULL DEFAULT 1 COMMENT '自动关闭权限_是:1-否:0';

功能变化: 新增自动关闭权限白名单

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

当前版本1.1.4

数据库新增

ALTER TABLE user_amount_flow  ADD COLUMN to_user_id VARCHAR(64) NOT NULL DEFAULT 0 COMMENT '交易对象用户id';
ALTER TABLE device_info ADD COLUMN  no_online_auto_lost  INT(1) NOT NULL DEFAULT 1 COMMENT '离线自动丢失_是:1-否:0';

已有的mdm cert添加配置

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

更新data/web内容

当前版本1.1.5

阿里云创建oss

读写权限改为公共读

image-20250428153254486

阻止公共访问关闭

image-20250428153324375

yml添加阿里云oss

#一旦使用 不允许切换
aliOss:
  accessKeyId: xxxxxxx
  accessKeySecret: xxxxxxx
  bucketName: xxxx
  endpoint: oss-cn-beijing.aliyuncs.com
  #访问域名
  domain: xxx.oss-cn-beijing.aliyuncs.com
  #地图缓存存储目录
  dataDir: mdm

对应的参数获取

image-20250428153601895

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

登录管理员账号,进入“平台管理 → 权限清单”,找到“禁用退出远程管理”,将 pacUrl 修改为 OSS 地址。

当前版本1.1.6

更新内容: 新增支持苹果商务管理自定义身份方 登录上锁软件无需使用验证码 使用方法 普通用户后台功能说明-无验证码登录上锁APP教程

执行SQL

html
ALTER TABLE device_command_task MODIFY COLUMN remark VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '任务备注';
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('user.updateIdpClient', '更新idp客户端Key', '2024-09-25 22:34:20', 'user/updateIdpClient', 'IDP');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('user.loginIdp', '登录idp', '2024-09-25 22:34:20', 'user/loginIdp', 'IDP');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('user.queryIdp', '查询idp', '2024-09-25 22:34:20', 'user/queryIdp', 'IDP');
ALTER TABLE user  ADD COLUMN abm_email VARCHAR(3000) NOT NULL DEFAULT '' COMMENT '绑定的abm邮箱';
ALTER TABLE user  ADD COLUMN login_abm_pc int(1) NOT NULL DEFAULT 0 COMMENT '允许Idp登录商务管理_开启:1-关闭:0';
CREATE TABLE `idp_client_list` (
`org_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '组织id',
`client_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端id',
`client_key` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端密钥',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`org_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='idp客户端列表\r\n';

需要删除satoken的redis

application-dev.yml is-read-cookie设置为true

image-20250608190240957

application-dev.yml satoken 添加 jwt-secret-key,值可以自定义,但不能为空。

image-20250608190255478

需要把data/static/idp.html拷贝到服务器对应的位置上

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

data/static/web目录替换

当前版本1.1.7

修复激活锁的bug

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

当前版本1.1.8

从商务管理解绑abm和解除激活锁支持实时监测

执行SQL

ALTER TABLE user_device_add_account ADD COLUMN org_id VARCHAR(64) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT '组织ID';
UPDATE user_device_add_account SET org_id = user_id;

INSERT INTO auth_list (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('userDeviceAddAccount.search', '搜索专用账号', '2024-09-25 22:34:20', 'userDeviceAddAccount/search', '专用账号');

INSERT INTO auth_list (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('userDeviceAddAccount.addAccount', '新增专用账号', '2024-09-25 22:34:20', 'userDeviceAddAccount/addAccount', '专用账号');

INSERT INTO auth_list (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('userDeviceAddAccount.updateAccount', '更新专用账号', '2024-09-25 22:34:20', 'userDeviceAddAccount/updateAccount', '专用账号');


INSERT INTO auth_list (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('userDeviceAddAccount.deleteAccount', '删除专用账号', '2024-09-25 22:34:20', 'userDeviceAddAccount/deleteAccount', '专用账号');

yml is-read-cookie设置为true

image-20251008145051799

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

当前版本1.1.9

新增刷机模式

INSERT INTO auth_list (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.setDeviceFlashMode', '设置刷机模式', '2024-09-25 22:34:20', 'deviceInfo/setDeviceFlashMode', '设备管理');

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

data/static/web目录替换

当前版本1.2.0

新增回收站 支付模式

INSERT INTO auth_list (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.setDevicePayModel', '设置支付模式', '2024-09-25 22:34:20', 'deviceInfo/setDevicePayModel', '设备管理');
INSERT INTO auth_list (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.setDeviceIsTrash', '设置回收站', '2024-09-25 22:34:20', 'deviceInfo/setDeviceIsTrash', '设备管理');

mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启

data/static/web目录替换

独立构建的 MDM 监管锁教程站