quick-cocos2d-x基于源码加密打包功能的更新策略(3)

前篇: 安全

quick-cocos2d-x基于源码加密打包功能的更新策略(1) 服务器

quick-cocos2d-x基于源码加密打包功能的更新策略(2) ui

3、更新流程说明及特性分析

A.更新流程

  1. 加载初始安装包,载入旧资源列表
  2. 取最新资源列表文件,载入新资源列表
  3. 比较两个资源列表版本,若是一致,跳到第8步;如下流程中若是有误也跳到第8步
  4. 根据新资源列表检查现有文件,逐一下载新增或者有变化的文件,并加.upd后缀保存
  5. 每一个下载的文件在保存后立刻进行一次校验
  6. 全部文件下载完成,更新本地资源列表文件,用新列表替换旧列表
  7. 将下载的文件去掉.upd后缀,覆盖旧的文件
  8. 根据资源列表再校验一遍资源文件
  9. 第8步正确,则按资源列表的指示载入相关资源,启动程序(新版本)
  10. 第8步有错,说明资源列表与资源文件不匹配,删除本地资源列表文件(保证下次启动时从新更新资源),启动程序(原始安装版本)

B.安全性

能够看出在第6步以前,即便出错,也不会破坏原来的文件。跳到第8步后,通常可以以上一个更新成功的版本启动,除非上一个版本被用户破坏。 加密

第6步和第7步出错,会形成资源列表与资源文件不匹配,跳到第8步后,确定只有从原始版本启动了。 spa

第8步错误,有多是由于前面出错,也有多是用户本身破坏了本地文件。不管如何,仍是能从原始版本启动,并保证下次进入能再次更新。 .net

第8步正确,并不必定说明此次更新是成功的,但启动起来的必定是最后一次更新成功的版本。 blog

所以咱们能够确认,只要update模块自己流程没有问题,此更新方案是安全的。 资源

C.其余特性

  1. 对于肯定的终端,服务器端只须要维护一个最新版本的文件列表。无论客户端是什么版本,都能直接升级到新版本
  2. 本地已经下载过的文件不会再次下载,只作增量更新
  3. 本次更新下载了部分文件但未完成最后更新,下次更新,已经下载成功的文件不会再重复下载
  4. 代码通过压缩,减小下载量
  5. 根据客户端请求时的参数可以作到版本分发

后记

对于方案的介绍到这里就告一段落了。后面这部分原本还想展开一下的,但后来以为必要性没这么大,毕竟和你们分享的主要是解决方案而不是细节。 get

但愿个人分享对你们能有所帮助,也请你们对方案的不足之类多提意见! 源码

相关文章
相关标签/搜索