Skip to content

🗳【备份插件】支持备份 iOS / Android / OSX,支持超快速备份,支持备份瘦身

License

Notifications You must be signed in to change notification settings

orcastor/addon-backup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OrcaS 手机备份插件 via

目标

  • 💣 性能提升
    • 🚀 支持超快速备份
      • 方案一:利用fuse,先写入本地内存文件系统
      • 方案二:直接对接协议层
      • 优化点:
        • 🗃 小文件打包
          • 大量小文件会导致写入性能下降(即使SSD盘也只有110 MB/s左右)
        • 🏎 智能调速
          • iPhone备份一阵发送数据,一阵收集数据,收发如果不同步耗时会成倍增加,优化为感知发端收集数据,收端写数据
        • 忽略不影响使用的文件(常见软件的缓存、安装包等)
        • 考虑用白名单机制,只保存需要的数据(图片/视频/微信等)这样就不依赖任务是否成功
  • 🛎 备份体验和交互优化
    • 断点续备
    • WIFI备份
    • 自动备份

性能测试

iOS备份

  • 手机:iPhone 6s Plus 40.5 GB
  • 磁盘:500 GB黑盘,写入速度上限150 MB/s
测试项 耗时 备份大小 平均速度
原版iTunes 20分钟 14.4 GB 12 MB/s
fuse内存文件系统 TBD TBD
直接对接协议层 10分钟(只接收数据不写磁盘) TBD

iOS恢复

  • 手机:iPhone 7 Plus 备份大小40.83 GB
  • 磁盘:1TB 希捷酷鱼,读取速度上限170 MB/s
测试项 耗时 数据大小 平均速度
原版iTunes 2小时24分钟 16.97 GB 1.96 MB/s
fuse内存文件系统 TBD TBD
直接对接协议层 TBD TBD

实现细节

iOS

  • 使用idevicebackup2像iTunes一样备份
  • 使用gidevice直接对接协议层
  • 注意:有issue中提到协议版本不是最新的风险
    • 例如使用备份工具异常退出后,再次发起备份,iTunes可能会通过特殊协议解除这个状态,
    • 通过libimobiledevice无法绕过,只能重启设备后恢复正常,需要通过抓包分析iTunes的行为跟踪

Android

监听USB设备热插拔事件

需要先安装libusb的C库

OS X

$ brew install libusb

Windows

libusb.info下载最新的二进制文件

Linux

$ sudo apt-get install -y libusb-dev libusb-1.0-0-dev

界面设计

  • 是否自动备份开关
  • 备份首页默认展示设备管理
    • 默认隐藏未连接设备
    • 按最近备份时间排序
  • 展示手机屏幕截图

注意事项

  • yarn run build:pro打包后的文件和webapp的放置到一起:

    ln -s $(addon-backup)/front/dist/ $(webapp)/dist/bak

About

🗳【备份插件】支持备份 iOS / Android / OSX,支持超快速备份,支持备份瘦身

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published