当前位置: 首页 > news >正文

网站模块顺序调整用layui做的一个网站模板

网站模块顺序调整,用layui做的一个网站模板,手机网站建设策划,广州去东莞回来要隔离吗近期如果有开发者的 iOS 真机升级到 18.4 beta#xff0c;大概率会发现在 debug 运行时会有 Permission denied 的相关错误提示#xff0c;其实从 log 可以很直观看出来#xff0c;就是 Dart VM 在初始化时#xff0c;对内核文件「解释运行#xff08;JIT#xff09;」时…近期如果有开发者的 iOS 真机升级到 18.4 beta大概率会发现在 debug 运行时会有 Permission denied 的相关错误提示其实从 log 可以很直观看出来就是 Dart VM 在初始化时对内核文件「解释运行JIT」时出现权限不足的问题 ../../../flutter/third_party/dart/runtime/vm/virtual_memory_posix.cc: 428: error: mprotect failed: 13 (Permission denied) version3.6.0 (stable) (Thu Dec 5 07:46:24 2024 -0800) on ios_arm64 pid3252, thread259, isolate_groupvm-isolate(0x107205400), isolatevm-isolate(0x107369000) osios, archarm64, compno, simno isolate_instructions108e375a0, vm_instructions108e375a0 fp16bb19560, sp16bb19540, pc109889864pc 0x0000000109889864 fp 0x000000016bb19560 Dart_DumpNativeStackTrace0x18pc 0x000000010943aeb8 fp 0x000000016bb19580 dart::Assert::Fail(char const*, ...) const0x30pc 0x0000000109536100 fp 0x000000016bb19a30 dart::Code::FinalizeCode(dart::FlowGraphCompiler*, dart::compiler::Assembler*, dart::Code::PoolAttachment, bool, dart::CodeStatistics*)0x82cpc 0x00000001095f51c8 fp 0x000000016bb1a040 dart::StubCode::Init()0x31cpc 0x0000000109485c30 fp 0x000000016bb1ab00 dart::Dart::DartInit(Dart_InitializeParams const*)0x2a9cpc 0x0000000109870310 fp 0x000000016bb1ab20 Dart_Initialize0x3cpc 0x0000000108f1aaf4 fp 0x000000016bb1b0f0 flutter::DartVM::Create(flutter::Settings const, fml::RefPtrflutter::DartSnapshot const, fml::RefPtrflutter::DartSnapshot const, std::_fl::shared_ptrflutter::IsolateNameServer)0x1d60pc 0x00000001093f17dc fp 0x000000016bb1b850 flutter::Shell::Create(flutter::PlatformData const, flutter::TaskRunners const, flutter::Settings, std::_fl::functionstd::_fl::unique_ptrflutter::PlatformView, std::_fl::default_deleteflutter::PlatformView (flutter::Shell) const, std::_fl::functionstd::_fl::unique_ptrflutter::Rasterizer, std::_fl::default_deleteflutter::Rasterizer (flutter::Shell) const, bool)0x310pc 0x0000000108e3b060 fp 0x000000016bb1c5c0 -[FlutterEngine createShell:libraryURI:initialRoute:]0x934pc 0x0000000108e42c4c fp 0x000000016bb1c630 -[FlutterViewController sharedSetupWithProject:initialRoute:]0x1ccpc 0x0000000108e42a58 fp 0x000000016bb1c660 -[FlutterViewController awakeFromNib]0x58具体原理就是在于从目前 iOS 18.4 beta 上看iOS 加强了对应用运行时修改内存权限的限制也就是上面出现 mprotect failed: 13 (Permission denied) 的原因。 mprotect 全称是 “memory protect” 可以用于修改内存页的保护属性让 App 可以动态调整某块内存的访问权限例如将 RX 只读执行权限切换为 RW 可读写权限。 而为什么 Flutter 在 Debug 时需要 mprotect 其实这就要说到 Dart VM 虽然在 Debug 模式下 Dart VM 是通过 JIT 模式解释执行的但是从 Dart 2.0 之后就不再支持直接从源码运行对于 Dart 代码现在会统一编译成一种「预处理」形式的二进制 dill 文件我们一般称它会 Kernel AST 文件 也就是如今在 Dart 里就算你是 JIT 运行那么你也是跑着一个二进制的 Kernel dill 只是 Kernel AST 不包含解析和优化 简单说它仅仅是对源码进行了二进制加工转化 让 Dart 代码从高级语法转换为统一且平台无关的中间格式。 所以 Flutter 在 debug 运行时 JIT 运行的是一个未签名的二进制文件并且需要直接 hotload 也就是需要 Dart VM 在运行时根据 Kernel 二进制文件生成机械码并且在可以接受 hotload 的热更新所以它是通过 VM 来“解释”和“生成“所以它会需要 mprotect 的系统调用。 比如上面的 StubCode 相关部分在当前的 kernel JIT 模式下就极度依赖 VM 运行时的动态生成。 当然这个过程依赖于 get-task-allow get-task-allow 可以允许其他进程 如调试器 附加到当前 App 上让额外的进程获取到当前应用的任务端口从而让它们可以执行诸如在内存上写入和读取内容之类的行为最终达到 hotload 的目的。 那为什么在 release/profile 就不会有问题呢很简单代码已经被完全打包成机械码并且需要生成的代码都包括在 snapshot 内所以并不需要上述这些“魔法加持”。 那么回过头来从 iOS 18.4 开始 系统加强了对应用运行时修改内存权限的限制具体来说就是 系统不再允许未经代码签名的二进制文件通过 JIT 编译直接执行之前可以是因为这是一个“安全漏洞”因为之前的机制允许开发者在真机上绕过某些签名要求也就是 iOS 18.4 的新安全策略禁止了这种未经签名的动态代码生成支持。 那么到这里你应该大概了解了问题的原因目前 Flutter 官方表示在他们热修复此问题之前尽可能先请不要升级到 iOS 18.4 beta。 而目前官方修复的思路主要大概是 在 Flutter debug 构建时使用解释代码支持在解释代码下支持 dartffi解决 debug 解释字节码可能带来的性能下降问题 而目前暂时评估的方向有 增加 simarm64Simulator for ARM64配置支持让 Dart VM 可以解释生成的代码恢复 Dart 字节码运行混合模式执行其中 App 通过 AOT/JIT 签名编译并且仅解释修改后的代码 其实这里的第三点「混合模式执行」很有趣因为这是 Flutter 热更新框架 shorebird 在 iOS 上目前的热更新方案App 整体通过 AOT 运行只有热更新 patch 存在的时候针对该部分进行解释执行 也就是 shorebird 针对 Dart VM 自己“魔改”并“插入”了一个解释器所以可以看到 shorebird 的 Eric (Flutter 前创始人) 针对和这个也和 Dart/Flutter 团队进行了密切的沟通 事实上Eric 对于 Dart VM 这部分工作还是很“担心的”毕竟 shorebird 作为分支方这种修改合并无疑会给他们带来许多工作量而如果 Dart 团队的方案能尽可能贴近 shorebird 那就最好不过了 目前来说好消息在于只要你的真机不升级到 iOS 18.4 beta 那么就不会有影响而 Flutter/Dart 团队大概率会在 iOS 18.4 正式发布前修复这个问题毕竟方向都有了。 当然这也体现了“利用漏洞”完成需求的可靠性很低因为你不知道哪天平台就把后门关闭了。
http://www.hkea.cn/news/14486303/

相关文章:

  • 个人主机做网站设计公司企业网站详情
  • 简繁英3合1企业网站生成管理系统做推广的网站带宽需要多少钱
  • 好的建筑设计网站wordpress里面的rss订阅
  • 有什么公司建网站如何建立小程序商城
  • 无锡手机网站建设报价wordpress寻模板
  • 永康网站开发郑州网站建设、
  • php源码项目门户网站开发智能建站实验报告
  • 云梦网站怎么做浮窗网站当电话线
  • wordpress游戏站北京商场人气排名
  • 不能上传图片到网站目前做网站最流行的程序语言
  • 哈尔滨网站建设哈尔滨网站标题用什么隔开
  • 档案网站建设书四川企业网站建设
  • 网站排名技巧保定网站建设公司大全
  • 广州科 外贸网站建设wordpress 4.7.8
  • 网站关键词建信建设投资有限公司网站
  • 介绍自己的做的网站吗android网站开发
  • 备案网站管理系统离线修改wordpress主题
  • 三大门户网站行业门户网站的优化怎么做yps行业门户系统
  • dw做汽车网站cms网站开发网站模板
  • 青海省建设厅官方网站青海西宁网站建设
  • 网站建设报价分析免费logo
  • 造价工程建设协会网站wordpress防止图片被采集
  • 网站每年需要续费吗域名收录
  • 卖辅助网站怎么做wordpress 字体调整
  • 机械制造网站上海定制app开发公司
  • 在线手机网站制作网站制作与网站建设
  • 上海网站建设网络公司网站设计流程步骤
  • 做挂件像网站成都网页设计培训学校哪家好
  • 违禁网站用什么浏览器东莞阳光网投诉查看
  • 网站自助制作服装公司网站首页