鸿蒙 听说鸿蒙已经推送升级了,有没有大佬解释一下鸿蒙是怎么实现跨系统 OTA 升级的呀。。

咸鱼菜鸡 · 2021年04月28日 · 最后由 codeskyblue 回复于 2021年04月29日 · 3998 次阅读

如题~有大佬研究过吗

共收到 8 条回复 时间 点赞

我理解应该是原系统保持不变,直接又下载了另外一个系统进来,然后修改了引导选项。就行本来安装了 Windows 的系统,又安装了一个 Ubuntu 一样,只是将负责启动的 Bootloader 部分,改成了启动 Ubuntu。

codeskyblue 回复

如果这样的话 怎么保留之前的应用和数据呢

咸鱼菜鸡 回复

只要保留应用使用的 api,底层的文件系统也保持不变。应用就会无感知。

作者:函谷关刚刚好
链接:https://www.zhihu.com/question/436277882/answer/1687806439
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

任何一个对操作系统有了解的人都知道,OTA 换内核并不是什么问题,某些人黑都没黑到点子上。我简单讲一下系统 OTA 的流程,以及一点前置知识。首先,现代操作系统往往通过 bootloader 启动,bootloader 和系统本身可以说是完全独立的。其次,OTA 流程:1、通过网络或其他通讯手段,从服务器获取任务包 2、关闭主操作系统,启动 bootloader 或其它升级环境此处,升级环境可以是在闪存上运行,即升级环境相关可执行数据位于闪存,也可以是先将升级环境释放到 ram,然后从 ram 运行,即升级环境相关可执行数据位于内存,在安卓平台上,升级环境通常被称为 recovery。3、启动任务包任务包的内容可以是多种多样的,以系统升级的 OTA 为例,一般是包含了资源文件和执行脚本,通过执行脚本,将资源文件替换指定的原系统文件。如果是从 ram 运行的 bootloader,则可以修改 bootloader 本身。以此来看,替换系统还是替换内核抑或是替换开机画面,实际上对于 OTA 这个流程本身来说没什么区别,只是如果要做到替换系统的同时跨系统保留一定的数据,OTA 脚本将会较为复杂,同时要求对替换前和替换后的系统的全面了解。实际上,若单是替换内核,比替换系统更为简单,在替换前内核和替换后内核接口兼容的前提下,直接删除原内核,然后把新内核的文件移动到原内核路径即可。

也许并没有跨系统呢

缺部华为可以升鸿蒙的机子。

codeskyblue 回复

这样的话 不会导致系统变慢嘛 或多或少都有点吧

Blaine 回复

这谁都不好说,毕竟没见过鸿蒙手机

需要 登录 後方可回應,如果你還沒有帳號按這裡 注册