首页/安卓相册迁入 iPhone

安卓相册迁入 iPhone

作者 Azalea · 实测日期 2026-06-12

Move to iOS 官方路径依赖 Google 账号。你在 Pixel 上以为「原图」,到 iPhone 可能已经过一档压缩或拆掉 motion photo。Azalea(net.duguying.photos)的路径是:旧机 MediaStore → 你自己的桶或 USB → 新机认领。HEIC 不会在中途生成,JPEG 仍是 JPEG。坏文件也会原样过去。原图不经过 Azalea 的服务器。

2026-04-02 实验室:Pixel 8(Android 15)→ iPhone 16(iOS 18.7),腾讯云 COS ap-guangzhou 中转。11,208 张照片、406 段视频,合计 11,614 项、81.95 GB。跨两晚 Wi-Fi,664 分钟,平均约 2.10 MB/s。7 次网络失败可重试。1 个损坏 MP4 无法恢复。认领后 iPhone 系统相册仍空,直到手动下载测试张。收藏标记没有过来,符合 Android 对不上 local_identifier 的设计。

为什么不走官方工具

Google 相册「传输到 iOS」会走它们的云。存储增强开过的库,到 iPhone 上常见再编码。动态照片到 Live Photo 的语义经常对不齐。你要的是文件字节,不是「看起来还在网格里」。Azalea 不托管原图,中转介质是你的 COS/OSS/S3 或你插上的盘。USB 上有 .album/manifest.jsonl;对象存储靠 index/ 下的清单。

iPhone 侧不要先开 iCloud 照片再认领。两套库会让你分不清哪张是下载来的。实验室开箱先装 Azalea,没有开 iCloud 照片。旧机 Google 相册备份已关了三个月,避免两边各删一次。

步骤

  1. 旧 Android 给 Azalea 完全访问,不要「所选照片」。打开「备份存储」→「新建配置」,填同一套将给 iPhone 用的 Bucket 与密钥,或选将插到新机的 USB 文档树(OpenDocumentTree + 可持久化 URI,extra.mode=bridge)。
  2. 打开自动备份。看「备份状态」待处理降到 0。Pixel 8 那次照片平均 4.08 MB,视频平均 89.2 MB,含一批 4K60。插电、连稳定 Wi-Fi。厂商杀后台就打开应用续。
  3. 抽查至少 20 项:最近一周、最旧、最长视频、一张文件名带冒号或表情的。打开盘或桶上的 4K,确认仍是 3840 宽,不是 1080。
  4. 新 iPhone 开箱先装 Azalea,权限选「所有照片」。不要先登 iCloud 照片。
  5. 「新建配置」填完全相同的 provider、Bucket、地域、密钥;USB 则在系统「文件」里选同一个目录,保存 security-scoped bookmark。名称可自定义,自定义名称不会帮你指向正确的桶。
  6. 认领。USB 先插盘再进页刷新。对照项数与字节。系统相册空是正常的,进已备份库下载几张验证。
  7. 旧机先不要恢复出厂。实验室坏文件 VID_20231102_221418.mp4 来自更早 Infinix,2,048,512 字节,本地第一秒后黑屏,COS 上 MD5 与本地一致,记 unrecoverable。旧机还在,你才有地方对照。

失败

  • 新机「新建配置」填成了另一个 bucket 名:认领到空库。表单里 provider 只读,名称可自定义。回到两端配置核对 Bucket 字符串,不要靠昵称。
  • 旧机待处理未到 0 就认领:差几百先看 Android「备份状态」是否还有后台任务,HyperOS 尤其爱杀。
  • 那个坏 MP4:传输没坏,源就是残的。不要从清单里删,免得下次又当新任务上传。其余 7 次是 UnknownHostException / iOS 侧网络错误,重试成功。失败数不等于丢文件。
  • 先开 iCloud 照片再认领:网格里混着占位图和已下载项,抽查时你会以为 Azalea 压缩了。关 iCloud 照片,只看已备份库。
  • USB 认领时盘没插上:iOS 没有插拔通知,点刷新才 isAvailable()。选错成 iCloud Drive 文件夹也会空。

认领之后 iPhone 上实际看见什么

已备份库的张数应对上旧机截图。系统「照片」网格空,是因为认领不把 81.95 GB 灌进本机。进已备份库下载一张 JPEG、一张动态照片拆开后的静图、一段 4K,分别看字节。动态照片不会在中途变成 Live Photo 文件对;到了 iPhone 上如何呈现取决于系统,不取决于 Azalea 有没有「合成」。收藏、Android 相册文件夹名、Google 相册里的共享相册成员,都不会过来。

桶的 Root 前缀必须一致。实验室是 pixel8-lab/。新机漏填前缀,list 到另一棵对象树,表现为空库。profile 名称可以叫「家里 COS」或「迁机」,字符串不影响认领;Bucket、region、密钥、root 才影响。子账号权限缺 delete 一般仍能认领和下载;缺 get 就点不开。

旧机在认领期间仍可开机。发现缺了 2023 年,打开旧机把权限改成完全访问,让索引变大,待处理重新出现,跑完再在新机刷新。不要在新机上对空库点「开始备份」指望它去旧机拉文件——新机没有旧机的 MediaStore。

USB 中转时 iPhone 必须手选目录。盘上已有 .album/manifest.jsonl 就认这份,不要在盘根再「新建配置」选一个空子目录。Mate 60 写过的盘同样能被 iPhone 认领,机制与 COS 那次相同,只是介质换成 bookmark。

介质怎么选

对象存储适合两台手机不在同一房间。Pixel→iPhone 走 COS,密钥是你的子账号,只给这一个 bucket 的 list/put/get/delete。Root 前缀 pixel8-lab/。两端 profile 名称不同,bucket 与密钥相同即可认领。

USB 适合坐在一起搬家。iOS 不能枚举 U 盘,必须在「文件」里选一次。Android 写盘时 exFAT 非法字符会转义。同一块盘可以被两台认领,见认领硬盘那篇。华为 Mate 60 OTG 在 61% 拔过一次,12 个临时文件重试,机制与换机无关,但告诉你盘路径允许中断。

家庭群晖也可以当中转:DS220+ DSM 7.2.2,share photos,两台手机已写过同一库。出门用对象存储,回家切 Samba,应用支持多份配置。

FAQ

认领后系统「照片」为什么是空的? 认领读的是已备份库,不会把 81.95 GB 立刻灌进本机。实验室手动下载测试张后网格才出现。这是腾空间的另一面,也避免新机 128 GB 被撑满。

收藏和相册结构会过来吗? 不会按 iOS 相册 1:1 出现。Android 对不上 local_identifier。原文件在,标记不在。

Google 相册里已经有一份,还要 Azalea 吗? 官方传输会走它们的策略。你要原字节、要以后还能迁回 Android 或第三台设备,用自己的桶或盘。Azalea 不托管原图。

坏文件会不会弄丢整库? 不会。那 1 个 MP4 单独标 unrecoverable,其余 11,613 项可用。抽查时专门点开最长视频和来源不明的旧文件。

要不要当天抹旧机? 不要。清单页写了至少放 48 小时。认领空白时先查桶地域和是不是建了第二个配置。旧机 PhotoKit 源还在,缺的年份才能补;抹了就只剩桶里已经写出的那些。

迁机当天把充电头、短线、盘或密钥打印件放在同一只袋子里。Wi-Fi 名称换成酒店网络后,对象存储会变慢,待处理停住不算丢库。打开应用看「备份状态」,数字在降就继续等。Pixel 8 那次平均 2.10 MB/s,就是被休眠和往返拉低的,不是 COS 把原图压小了。