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

2021-10-06 14:47:06 +08:00
 wuhoo

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

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

第一次发,请轻拍。


TLDR

应该是 iOS 的 bug 。

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

问题描述

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

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

尝试过的方法

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

无效的方法

微有效的方法

有效方法

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

思路

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

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

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

Root Cause

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

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 备份目录下。

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


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

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


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

3630 次点击
所在节点    Apple
11 条回复
alfchin
2021-10-06 15:42:48 +08:00
不错的办法
moooookey
2021-10-06 18:13:15 +08:00
库克:这个 bug 不着急修,还要给写这个 bug 的相关人员加钱
felixcode
2021-10-06 20:18:32 +08:00
传说中的 iPhone 不需要折腾
qq316107934
2021-10-06 20:50:34 +08:00
写程序把存储空间占满,iOS 会自动释放这部分空间吗? 可以试试
wuhoo
2021-10-07 00:55:47 +08:00
@qq316107934 嘿嘿,幸亏我写了 "我对 iOS 开发什么的一窍不通。"。写 iOS 代码是不可能的(懒+不会)。
我试过拍视频和 iMovies 剪辑视频,会直接停止我的拍摄 或 iMovies 导出(提示因为空间不足),系统并没有自动释放空间。所以,猜测 iOS 并不会因为空间满了就释放缓存空间。

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

PS:希望这些删不掉的缓存只是 iOS14 时期的积累,iOS15.0.1 之后不会再有这个问题。别变成每个季度还原一次手机(捂脸
qq316107934
2021-10-07 02:13:37 +08:00
@wuhoo #5 很遗憾,iOS 15.0.1 依旧有这个问题,我这边已经涨到 60GB 了,因为是 512GB 的一直没管
wuhoo
2021-10-07 02:28:47 +08:00
@qq316107934 好的。我只希望 iOS15 不继续增加新的缓存。已升到 15.0.1,会继续观察。
VIVVACI
2021-10-07 12:00:01 +08:00
会不会是和 mac 一样的,这些空间实际上可以抹出,里面是一些备份信息之类的,等到需要的时候自动清空穿件实践最早的文件
Foralrec
2021-10-09 16:47:01 +08:00
@VIVVACI 不会. 大部分应用静置时候快速转一圈就是在做这个事儿.
不会自动清理出太多空间.
0335boy
2021-11-08 21:46:46 +08:00
13pro Max 128G iOS15.1 系统数据已经 90GB 了 有比我还高的么……
MsHan
2022-11-27 16:19:59 +08:00
这个问题真的是烦死人,上周六重置了手机,一周时间又从 8G 变成 70G

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/806077

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX