iOS MDM详解

Apple iOS MDM开发流程 一年前曾参与过中石油的一个移动平台项目,实现了通过MDM对iOS设备进行管理。由于苹果对于mdm这块的接口及开发流程只向几个合作伙伴进行了分享,并没有对具体实现的文档进行公开,所以国外有几个网站专门在做mdm设备的管理。现在把实现的过程分享给大家,希望能对大家有所帮助。 阅读详情

关于MDM分为以下几个步骤操作来介绍:

一、MDM介绍

MDM - Moblie Device Management 移动设备管理,目的就是让企业能够方便的管理 iPhone、Pad等移动设备。

当企业大量的使用移动设备办公或涉及到一些安全限制时设备管理的作用就能明显的体现出来,通过MDM IT人员门能够在企业环境下安全地注册设备,无线配置和更新设置,监督公司政策的遵守情况,还能远程擦除或锁定被管理的设备。例如(很多电子厂一线员工上班期间都不让带手机,害怕不法分子随便拍照泄露产品信息,如果此时引入MDM则可以再上班期间禁止员工的手机摄像头的应用,其他也不影响手机使用)。

通过MDM能实现以下操作:

  • 安装和删除一个描述文件
  • 安装和删除一个配置文件
  • 获取已安装的描述文件列表
  • 获取已安装的配置文件列表
  • 获取已安装的证书列表
  • 获取已安装的第三方的应用列表
  • 应用的安装与删除
  • 获取设备信息(UDID、Languages、DeviceID、BatteryLevel等)
  • 获取安全相关的信息
  • 设备锁屏、重启、关机、清除密码、数据擦除
  • 获取已启用的约束列表
  • 锁住、定位已丢失的设备
  • 设备相关的设置管理、设备名称、壁纸、移动网络等
  • 设置已安装的应用属性
  • 获得可更新的系统的信息
  • 安装一个文件或书籍

等等还有其他很多细微的功能没有全部列出来。是不是感觉MDM的功能很多很强大,如果你以前没有了解过它,肯定会很惊奇、没有越狱的设备居然还能够这样搞?O(∩_∩)O 是的,MDM就是这么强大,所以在企业应用部署及设备管理能发挥很大的作用。

虽然MDM的功能那么多,我们在实际应用中也就是涉及到,锁屏及密码删除、APP的安装和删除、配置文件的安装和删除、获取已安装的APP列表及其他设备相关的信息,也就是说常用的操作也就那几个。

二、关于

刚开始接触MDM我也一脸的懵逼,不知道该从何着手。看着网上零零散散的资料,问题涉及到的也是支离破碎,真不到他们是否具体操作过?有没有实际跑通?反正各大论坛的也都是转来转去,可能有的人理解了,做出来了,但是写的也是一概而过,真正的按照步骤操作时也是一团浆糊。没办法,我只能硬着头皮去看官方资料,因为其他有用的资料带来的信息太少了。

经过几个月的学习和了解、对MDM认知也慢慢的清晰了好多。至此我们的管理平台也跑通了,正打算部署到企业内部使用。所以我想好好的总结一下,把做过的,想过的,遇到的问题一步一步的记录下来,或许能够帮助你更好的理解MDM、快速的使用MDM。

三、MDM工作流程

引用官网提供的一张图:


MDM工作流程

从上图可以看出要实现MDM服务须涉及到,苹果推送服务器APNs、自己的或者第三方提供的MDM服务器、受管理的设备。实际中三者之间通过HTTPS相互通信,所以推送和普通APP推送一样必须要有推送证书。没有操作的情况下,除了设备本身和APNs之间保持连接,其他都不在连接状态。各自在系统中的作用如下:

  • MDM服务器:对于设备,通过它发送指令对设备进行管理,获取相关信息及操作,回应响应设备操作。对于APNs,向APNs发送一个命令,目的来唤醒设备去主动连接MDM服务器,报告其当前状态是否处于空闲(若设备空闲,MDM服务器会继续下一步操作比如开始发送指令)。
  • APNs:可看作其他两者之间的信使,主要就是转发MDM服务器指令给设备,意思告诉设备开始去连接服务器啦。
  • 设备:首先通过Safari访问服务器安装一个配置描述文件(下文叙述)并登记注册使其成为受管理的设备,当收到APNs指令后,根据已安装的配置文件的url 连接MDM服务器并报告其状态,然后接受下一步命令比如命令DeviceInformation(查询设备信息如ModelName、BatteryLevel、WiFiMAC等),设备收到XML格式的指令后再向服务器传送其相关查询的信息,如果不需要继续发送指令,服务器关闭连接。

另外设备和MDM服务器之间数据传输都是以XML格式形式,以PUT请求的方式进行的,所以发送指令时,服务器要把指令封装成一个XML的文件同时要实现PUT请求相关操作处理。APNs所发送的仅仅是一个与设备本身相关的标示符,没有其他命令,目的就是唤醒设备去连接MDM服务器。

四、要做的操作及我遇到过的问题

通过以上了解可看出,要实现一个完整的MDM服务,我们需要:制作APNs推送证书、设备安装的配置文件、实现https通信、实现MDM相关协议、学习MDM协议相关命令及使用、一个MDM服务器(这里不作主要叙述,因为这些相关的都是有我们后台做的)。所以接下来的时间我打算依次做以下任务。

以上即为MDM服务中几个关键的操作,其他的一些细微的方面的操作以后在慢慢整理。

正常情况下操作我遇到了以下几个问题:

问题1、 mobileconfig配置文件安装失败

    设备在安装过程中,一直提示安装失败!当我想使用抓包工具`Charles`查看时居然安装成功了,关闭软件再次安装还是失败,猜测可能由于`Charles`代理的作用能连接到还处于内网的MDM Server,若直接发布到外网应该能避免这个问题(目前还没有验证?)。

问题2、MDM服务器与APNs无法建立连接,造成一直推送不成功

  推送命令时Java后台一直报错,*`javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found`* 后来升级了SKD错误解除。

随之又出现错误 Software caused connection abort: recv failed 后经排查原来连接的是开发环境的地址,mobileconfig配置中有这个配置选项默认是生成环境,通过identity.apple.com/pushcert申请的推送证书只能是生成环境的证书,这一点我当时还傻傻的以为生成和推送都一样呢

问题3、命令推送成功后设备没有响应操作或者很慢

命令推送成功了有时没响应,多数都是在MDM Server 与 APNs之间,估计设备没被唤醒或者没有收到指令,APNs 和设备之间由于推送不是那么及时所以会有一定的延时。

当设备与Sever建立连接后,发送命令很快得到了响应。但有时连续几个操作后响应会很慢,猜测可能设备本身还没来得及处理,具体还的在研究。

问题4、想实现APP的静默安装

由于我们是企业应用分发,发布一个应用希望所有受控的设备强制安装即不需要弹框提示用户点击确认操作。但是还没有实现,好像安卓的可以,关于iOS 的还在研究。

五、总结

以上为MDM的简单介绍和理解,如果你也熟悉MDM有不恰当的地方谢谢指导,如果你不熟悉刚接触希望能有一点帮助。接下来我会安装以上所述操作步骤开展下一步的工作。



转载链接:http://www.jianshu.com/p/6112050ea31a



别再手动折腾了!用EasyControl MDM批量管理100台安卓/iOS设备的保姆级教程 本文详细介绍了如何使用EasyControl MDM解决方案批量管理100台安卓/iOS设备,涵盖设备注册、策略模板、应用部署、远程运维、安全加固和效能提升等关键步骤。通过MDM技术,企业可以大幅提升设备管理效率,减少运维成本,确保数据安全,适用于零售、外勤业务和公共展示等多种场景。 阅读详情

相关推荐

iOS企业应用分发实战:如何用自建MDM服务器绕过TestFlight的100人限制?

本文详细介绍了如何通过自建MDM服务器绕过TestFlight的100人限制,实现iOS企业应用的高效分发。内容包括MDM系统架构、企业证书申请、服务器部署优化及安全防护措施,帮助中小企业构建自主可控的应用分发体系,提升业务响应速度。

weixin_30564785的博客 245

Apple iOS MDM开发流程MDM监管锁

剩余的流程可以参考第三方MDM的文档以及网上的各种回答,综合一下,多试试,具体流程我也记不清了,我之前配置的时候是可以走通整个流程的。现在有很多开发MDM都是用来做租机的,这种情况起建议大家找已经开发好了MDM监管锁的公司购买反而成本和时间都更省一些,之前我合作过的一家公司MDM监管锁这块做的挺好的,技术开发实力强,不用加盟费(这一点是我最认同的)推荐给大家zzr688688zzr。由于苹果对于mdm这块的接口及开发流程只向几个合作伙伴进行了分享,并没有对具体实现的文档进行公开,所以这方面的资料非常少。

d198902的博客 1650

iMyFone LockWiper 全面解锁 iOS 18:从屏幕锁到 MDM 的一站式解决方案

本文详细介绍了iMyFone LockWiper作为iOS设备解锁的一站式解决方案,涵盖从屏幕锁到MDM的多种解锁场景。无论是忘记密码、Apple ID锁定还是企业MDM管控,LockWiper都能高效解决,支持从iOS 12到最新的iOS 18系统,包括iPhone 16系列。文章还提供了实战演示和排雷指南,帮助用户快速解锁设备。

ppp33的博客 826

苹果 ios mdm服务器搭建

#系统说明 在ios开发中我们遇到很多问题,ios并不像android那样生成一个apk就可以直接安装,安装一个已经签名的ipa都要走很多流程,苹果的文档也是惨不忍睹, 本系统是为了解决一些常见问题,我之前从事的是uniapp开发如果大家接触过都知道,当你开发完毕后上传ipa审核都需要mac系统非常的繁琐, 不仅仅是mdm系统,后续我会出更多关于ios的工具接口,接口化是为了方便调用,我的未来计划 mdm系统-完善 跨平台签名ipa-使用linux签名 应用分发 ios在开发中给用户手机安装需要走ios的

weixin_45209325的博客 1万+

企业IT必看:如何用MDM企业锁保护公司数据(附iOS/Android配置指南)

本文为企业IT管理员提供了一份实战化的MDM企业锁部署与深度管理指南。文章深入剖析了MDM企业锁如何超越简单的远程擦除,实现物理访问控制、逻辑操作限制和数据生命周期管理三大维度的深层管控,并详细提供了针对iOS和Android两大平台的精细化配置策略与操作指南,帮助企业构筑移动设备数据安全的铜墙铁壁。

coffee的博客 651

在Jetson orin板卡上部署ocr模型遇到错误

摘要:安装ONNX Runtime GPU版本时遇到问题,直接pip install onnxruntime-gpu会报错。解决方案是从test.pypi.org下载对应的.whl文件(如ort_nightly-1.14.0...aarch64.whl),本地安装后还需降级NumPy版本(如pip install numpy==1.26),以解决NumPy版本兼容性问题。整个过程涉及三个关键步骤:下载正确架构的wheel文件、本地安装、调整NumPy版本。

xdxd3c的博客 1526

Apple MDM 开发

本文首发于我的个人博客 www.cc-lab.cn/apple-mdm-d… MDM Vendor MDM Vendor 指提供 MDM 服务的角色,比如 AirWatch 就是一个 MDM Vendor,要成为一个 MDM Vendor 需要有企业版开发者账号,然后去 apple 那里申请 mdm vendor 证书(有效期一年)。MDM Vendor 证书可以用来签名 MDM Customer...

weixin_34174322的博客 1548

低电压高效率能源管理芯片BQ25570的基本用法及应用电路实例

BQ25570是一款低电压、高效率、集成了可编程功率追踪(MPPT)功能、BOOST升压功能和BUCK降压功能的综合型能源管理电路。冷启动工作电压为330mV,热启动工作电压为100mV。主要应用于温差发电片TEG、压电、摩擦发电和太阳能板的能量收集,也可以用于人体可穿戴自取能传感设备的能量管理。本文主要介绍了BQ25570相关参数计算、MPPT功能验证、工作逻辑和应用场景,并设计了一版测试电路,给出了不同应用需求的电路配置建议。

weixin_49213602的博客 3450

创建一个简单的 MDM 服务器(2)

四、实现 server URL接下来以推送最简单的锁屏命令为例,演示如何实现从服务器推送完整的 MDM 消息给注册设备。首先实现一个简单的Jsp 页面。页面中是一个 html 表单,在标签中我们会列出所有注册设备的 UUID(当然列出设备名称会更好),当你选择一个UUID,点击submit 按钮,服务器会向这个设备推送锁屏命令。servlet lock 来负责处理这个表单: Stringudid

kmyhy的专栏 1万+

nRF开发环境搭建全攻略:VS Code + nRF Connect SDK + Zephyr实战

嵌入式开发中,环境配置往往是新手入门的第一道障碍,尤其面对基于Zephyr RTOS的Nordic nRF平台时,工具链的复杂度常让人望而却步。理解构建系统、SDK版本管理和调试工具之间的协作关系,是高效开发的前提。Zephyr作为开源实时操作系统,通过设备树和Kconfig实现硬件描述与功能配置,而nRF Connect SDK(NCS)则是Nordic基于Zephyr的增强发行版,两者结合为物联网开发提供了强大支持。基于VS Code搭建开发环境,配合west工具管理多仓库、CMake/Ninja执行构

weixin_29188997的博客 226

【数学建模】编程手学习路线

在学习过程中,建议注重理论与实践相结合,多进行实例练习和项目实践,以巩固所学知识并提升实际应用能力。同时,保持对新技术和新方法的关注和学习,不断提升自己的专业素养和竞争力。NumPy、Pandas、Matplotlib和Seaborn等库是数据处理和可视化的重要工具。掌握常用机器学习算法的原理和应用,如决策树、支持向量机、神经网络等。学习内容包括微积分、线性方程组、矩阵运算、概率分布、统计推断等。学习内容包括基本语法、函数和模块、面向对象编程、文件操作等。深入了解优化理论和方法,如梯度下降法、牛顿法等。

2301_79586491的博客 2962

iOS企业应用分发太麻烦?手把手教你用自建MDM实现“一键安装”的完整闭环

本文详细介绍了如何通过自建MDM(移动设备管理)系统实现iOS企业应用分发的自动化闭环,解决传统分发方式效率低下的问题。从服务器搭建、证书配置到应用静默安装,手把手教你完成“一键安装”的全流程,特别适合需要频繁更新内部应用的企业用户。

weixin_30764883的博客 320

2026.4.15:超详细自动安装Ubuntu-Server的保姆级教程

这篇教程详细介绍了如何创建无人值守的Ubuntu Server 26.04自动安装镜像。主要内容包括:从安装镜像中提取autoinstall-user-data文件并修改为user-data配置文件;使用mkpasswd生成加密密码;通过软碟通工具修改ISO镜像,添加自动安装所需的user-data和meta-data文件;编辑grub.cfg引导文件以启用自动安装模式。教程提供了完整的yaml配置示例,包含网络、存储、用户等设置,并演示了最终制作完成的自动安装镜像效果。

拥抱具身智能,昇腾Ascend C 743

告别繁琐!用Docker+宝塔面板,30分钟搞定iOS MDM私有化部署(含SSL证书配置避坑)

本文详细介绍了如何利用Docker和宝塔面板在30分钟内完成企业级iOS MDM系统的私有化部署,包括SSL证书配置和常见问题解决方案。通过容器化技术和可视化面板,即使没有服务器运维经验的用户也能轻松搭建高效的移动设备管理系统,实现iOS设备的集中管理和安全控制。

weixin_30606461的博客 184

第1讲|AI产品经理全景图谱:不是“会用AI工具”,而是能对AI产品结果负责

本文从岗位本质出发,系统拆解 AI 产品经理的职责、岗位类型与能力模型,帮助读者理解 AI PM 与传统 PM 的核心差异,明确自己适合的转型方向,并建立“对 AI 产品结果负责”的产品认知。

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 1015

【2026 Science Robotics】Learning realistic lip motions for humanoid face robots

哥伦比亚大学Yuhang Hu团队提出了一种创新方法,通过10自由度软体嘴唇设计和自监督学习算法解决仿人机器人嘴唇动作僵硬问题。研究采用变分自编码器(VAE)和面部动作Transformer(FAT)模型,将语音信号转化为机器人可执行的电机指令。实验表明,该方法在多语言测试中表现优异,用户偏好率达62.5%,显著提升了口型同步的真实感和流畅度。该成果突破了传统机械结构的限制,为跨越"恐怖谷效应"提供了有效解决方案。

志在山顶的人,不会贪念山腰的风景 308

iOS企业应用分发太麻烦?手把手教你用MDM实现从上传IPA到员工手机自动安装的全链路

本文详细介绍了如何利用MDM(移动设备管理)系统实现iOS企业应用的全自动化分发流程,从IPA上传到员工手机自动安装。通过技术架构解析、证书配置、打包签名标准化等步骤,帮助企业提升分发效率400%,降低运维成本60%。适用于金融、教育等行业的大规模应用部署需求。

weixin_42683394的博客 398

Win11此电脑怎么放在桌面上?Win11此电脑如何显示在电脑桌面上?

相信用习惯Win10的用户都喜欢电脑电脑桌面上的此电脑,但是很多用户更新完Win11正式版以后,发现桌面只有回收站和Microsoft Edge图标,没有此电脑。那么,Win11此电脑要如何显示呢?下面小编为大家简单介绍一下操作方法!5、桌面图标设置窗口,点击勾选计算机,然后点击确定,桌面就可以显示此电脑图标了。1、桌面空白处,点击右键,在打开的菜单项中,选择显示设置;4、个性化 - 主题,相关设置下,点击桌面图标设置;3、右侧点击主题(安装、创建、管理);2、设置窗口,左侧点击个性化;

shengyin714959的博客 13万+

别再手动折腾了!用EasyControl MDM批量管理安卓/iOS设备的保姆级教程

本文详细介绍了如何使用EasyControl MDM解决方案实现安卓/iOS设备的批量管理,大幅提升企业IT管理效率。通过部署教程、核心功能演示和行业实践案例,帮助用户快速掌握移动设备管理(MDM)技术,实现策略下发、应用分发和远程维护的自动化操作。

weixin_30321449的博客 227

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Fleet移动端管理指南:iOS与Android设备策略配置详解

随着企业移动化进程加速,BYOD(自带设备)模式普及,如何高效管理iOS与Android设备成为IT团队面临的核心挑战。Fleet作为基于Docker的设备管理平台,通过MDM(移动设备管理)功能提供统一的移动设备管控方案。本文将从策略配置、设备enrollment、安全管控三个维度,详解Fleet移动端管理的实操方法。 ## 核心功能与架构 Fleet的MDM功能基于开源组件构建,支持跨平台...

gitblog_00826的博客 496

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

iOS 27 安全新规下,手机租赁商如何守住资产生命线?

随着 iOS 27 的发布,苹果公司对设备管理的网络安全要求进行了全面升级。对于手机租赁行业而言,这并非一次简单的技术迭代,而是一场关乎资产安全与风控能力的严峻考验。过去,租赁商评估移动设备管理(MDM)服务商时,可能只关注“锁机”按钮是否灵敏。但在 iOS 27 时代,这种观念已严重滞后。真正的风险不再仅仅是“锁不住”,而是设备在后台显示正常的情况下,实际上已经脱离了监管,陷入“状态不明”的危险境地。

zy971982866的博客 610

MDM设备锁实战指南:从基础配置到高级场景应用

本文详细介绍了MDM设备锁从基础配置到高级应用的完整指南。涵盖iOS和安卓设备的配置技巧、金融租赁场景的实战方案、设备丢失应急响应以及地理围栏等高级定制化功能,帮助管理员高效实现设备远程管控,提升企业移动设备安全管理水平。

weixin_30415113的博客 348

IOS上MDM技术资料

(转自:http://www.mbaike.net/special/1542.html) 一、MDM相关知识: MDM (Mobile Device Management ),即移动设备管理。在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之重,在移动互联网时代,员工个人的设备接入企业网络并查看、收发企业数据已十分普遍,在管理企业移动设备的同时,MDM还能提供全方位安全体系防护,同时在

u010100106的专栏 1292

基于IOS上MDM技术相关资料整理及汇总

一、MDM相关知识: MDM (Mobile Device Management ),即移动设备管理。在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之重,在移动互联网时代,员工个人的设备接入企业网络并查看、收发企业数 据已十分普遍,在管理企业移动设备的同时,MDM还能提供全方位安全体系防护,同时在移动设备、移动APP、移动文档三方面进行管理和防护。 网站服务:基于

郝辰涛的专栏 1379
上一篇: 27个提升效率的iOS开源库推荐
下一篇: 常用的iOS第三方资源
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值