V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wuhoo
V2EX  ›  Apple

思路和解决方法 “iOS 其他系统空间 增长至 50GB,且备份还原无效”

  •  
  •   wuhoo · 63 天前 · 1674 次点击
    这是一个创建于 63 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题。因为我不能丢数据,所以被逼无奈,弄出了这个方法。我对 iOS 开发什么的一窍不通。

    现分享下思路和解决方法。希望能帮到有需要的人。

    第一次发,请轻拍。


    TLDR

    应该是 iOS 的 bug 。

    临时解决方法:iTunes 备份 -> 编辑备份文件(删除缓存文件和占用空间的大文件)-> 还原备份到手机上

    问题描述

    设备:iPhone 11, iOS 14.6 - 15.0.1, 128GB 。

    "其他系统空间"占用 50GB,且不停增长。2 个月尝试过一次 iTunes 备份+还原,稍微有些用,但很快就又变成 50-80GB 了。期间升级到了 iOS15 。这时再尝试iTunes 备份+还原是毫无用处

    尝试过的方法

    网上大部分都是老生常谈的无用方法,以下列举我尝试过的。

    无效的方法

    • 清空 Safari 历史和缓存、短信等。
    • 删除照片和回收站。
    • offload Apps
    • 清理占用空间大的 App
    • 重启设备。强制重启设备。
    • iTunes Sync:这个会清空 iPhone analytics 。
    • 更新 iOS:从 iOS14.6 到 iOS15 都有问题。升级到 iOS15 时还又多了 7-8GB 。
    • 重置所有设置:这个不丢数据,只是设置。
    • 各种第三方清理 App 和 PC 端软件。

    微有效的方法

    • iTunes 备份+还原:第一次(两个月前)有一些用,但空间占用很快就又涨上来了。

    有效方法

    • 完全重置:但是很多数据会丢失,对我而言重置也就没了意义。因此我不考虑。

    注:我没试过 iCloud,因为其隐私协议和网速问题。目测是没用的,因为占用空间的文件是 iPhone 备份的一部分,有人也确认过这点了。有需要也可以试试,没准儿行呢。

    思路

    思路是比较通用的:找出 iPhone 备份目录里最大的文件,删了,然后再还原。

    因为'iTunes 备份+还原'没效果,推测占用的空间是 iPhone 备份文件的一部分。这也和备份大小(~110GB )相吻合。觉得应该找出有问题文件夹(也就是最大的文件夹)。

    尝试过爱思和 iMazing 等,都不显示备份文件里目录大小的。所以转头盯上了 iPhone 备份目录里的 SQLite ( manifest.db ),这个加密的数据库存着备份目录和手机目录的映射关系。用iOSbackup解密 SQLite 数据库,用 WinDirStat 找出备份目录中的最大的文件。然后 SQLite DB Viewer 在数据库中搜索这些文件,找出有问题的目录。

    Root Cause

    通过在 SQLite 里查找 2-3 个最大的文件名字,发现都是在同一个目录下的视频文件。

    • AppDomainGroup-group.com.apple.mobileslideshow.PhotosFileProvider <- 这个是 iMazing 里的目录
    • Storage/photospicker/version=1&uuid=2B739297-59B0-4613-A1B7-551F3C5803C5&mode=current.mov <- 不知道是啥

    Google 搜索'Storage/photospicker',找到了相关的 bug report Picked asset files in system folder not cleaned yet after backup?。bug report 里面提到了 DS File 。我看了下photospicker文件夹里的内容,确实是这样的。我自己经常用群晖备份照片。根本问题是 iOS 把 DS File 上传下载的文件存了缓存,但没删。因此,应该是 iOS 的锅。

    解决方法

    本地,免费,不需要 iCloud,近乎无损。风险自负。

    1. iTunes 备份手机。选加密备份,因为要保存 Health 等数据。
    2. 用 iMazing,Create Editable Copy 。iMazing 会存一个新的备份,所以需要磁盘空间足够大。
    3. 选取新的备份。删除 AppDomainGroup-group.com.apple.mobileslideshow.PhotosFileProvider/photospicker 的内容。顺便看一下 AppDomainGroup-group.com.apple.mobileslideshow.PhotosFileProvider/draganddrop 。如果你的问题不是这个目录,请按照“思路”里面的方法找出有问题的目录。
    4. 因为是白嫖 iMazing,从 iMazing.Versions\Blueprints 把修改好的 iPhone 备份移动到 iTunes 备份目录下。iMazing.Versions 就在 iTunes 备份目录下。
    • 提示 1:请用 SSD 备份还原,速度快好几倍。SSD 大概 2-3 小时,HDD5-10 小时。
    • 提示 2:iTune 和 iMazing 需要至少手机 2 倍大小的磁盘空间,建议提前清空手机再备份 或者 用大硬盘。
    • 提示 3:必须备份+还原,我没找到可以直接修改手机文件系统的方法。数据请多份备份。
    • 提示 4:尽早清理空间。如果空间占用到了一定程度,可能都没法备份还原。
    • 提示 5:我为了保险,用 iMazing 修改备份文件。理论上直接改 SQLite 数据库也行。

    这个 bug 已经通过 feedbackassistant.apple.com 提交给苹果了,希望能赶紧修了。


    欢迎转发分享。只要表明出处(本页的 URL ),就不需要问我。

    注:之后可能会再整理下发到我自己的其他地方存档,例如 Github 。


    关键词:iOS,其他系统空间,空间不够用,备份还原,Manifest.db ,编辑 iTunes 备份文件,解密加密的 iTunes 备份的 SQLite,储存空间,其它空间,缓存,清除其他占用空间,储存空间已满

    10 条回复    2021-11-08 21:46:46 +08:00
    alfchin
        1
    alfchin  
       63 天前 via iPhone
    不错的办法
    moooookey
        2
    moooookey  
       63 天前 via iPhone
    库克:这个 bug 不着急修,还要给写这个 bug 的相关人员加钱
    felixcode
        3
    felixcode  
       63 天前   ❤️ 1
    传说中的 iPhone 不需要折腾
    qq316107934
        4
    qq316107934  
       63 天前
    写程序把存储空间占满,iOS 会自动释放这部分空间吗? 可以试试
    wuhoo
        5
    wuhoo  
    OP
       62 天前   ❤️ 1
    @qq316107934 嘿嘿,幸亏我写了 "我对 iOS 开发什么的一窍不通。"。写 iOS 代码是不可能的(懒+不会)。
    我试过拍视频和 iMovies 剪辑视频,会直接停止我的拍摄 或 iMovies 导出(提示因为空间不足),系统并没有自动释放空间。所以,猜测 iOS 并不会因为空间满了就释放缓存空间。

    @felixcode 我用 iPhone 确实比安卓少折腾了,总体是省心了。但一折腾就要命啊~ 这还是侥幸找到了解决方法。要是没找到的话,要么丢数据(完全重置系统),要么买更大的(但迟早也会没空间)。

    PS:希望这些删不掉的缓存只是 iOS14 时期的积累,iOS15.0.1 之后不会再有这个问题。别变成每个季度还原一次手机(捂脸
    qq316107934
        6
    qq316107934  
       62 天前
    @wuhoo #5 很遗憾,iOS 15.0.1 依旧有这个问题,我这边已经涨到 60GB 了,因为是 512GB 的一直没管
    wuhoo
        7
    wuhoo  
    OP
       62 天前
    @qq316107934 好的。我只希望 iOS15 不继续增加新的缓存。已升到 15.0.1,会继续观察。
    VIVVACI
        8
    VIVVACI  
       62 天前
    会不会是和 mac 一样的,这些空间实际上可以抹出,里面是一些备份信息之类的,等到需要的时候自动清空穿件实践最早的文件
    Foralrec
        9
    Foralrec  
       60 天前
    @VIVVACI 不会. 大部分应用静置时候快速转一圈就是在做这个事儿.
    不会自动清理出太多空间.
    0335boy
        10
    0335boy  
       30 天前
    13pro Max 128G iOS15.1 系统数据已经 90GB 了 有比我还高的么……
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2198 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 16:04 · PVG 00:04 · LAX 08:04 · JFK 11:04
    ♥ Do have faith in what you're doing.