阻止 iPhone 用户切换到华为用户的最大障碍就是 iCloud 上的照片无法导出。
8月29日,华为 Mate60 Pro正式开售。
本文讲解怎么在 OS X 上使用 boredazfcuk/icloudpd 把 iCloud 的照片全部导出,再配合 迁移iPhone手机短信到华为手机,可以让你无痛切换到华为手机。
再次注意,本文是在 Mac 上试验的,Linux 也许可以直接用,Windows 我就不知道了。
步骤
- 先随便进入到一个目录,新建 icloud 目录
|
|
- 创建 Docker 容器,并进入容器,之后的步骤都在容器内执行
|
|
- 注意观察
/home/user/iCloud
这个目录的权限, 因为这个目录的卷是 host 上的目录 (注意上面的--volume $(pwd)/icloud:/home/user/iCloud
参数):
比如下面得到 /home/user/iCloud
目录所属用户的 uid
是 501、所属用户组是 dialout
。
|
|
接下来你要定好 uid
、用户名
、gid
、用户组名
这4个参数:
- 如果直接看到了
uid
,说明用户不存在,那用户名
可以定死为tmp_user
。 - 如果直接看到了
gid
,说明用户组不存在,那么用户组名
可以定死为tmp_group
。 - 如果看到了
用户名
,那么uid
通过下面脚本得到,即使用容器系统原有的用户,下面的501
就是uid
:
|
|
- 如果看到了
用户组名
,那么gid
通过下面脚本得到,即使用容器系统原有的用户组,下面的20
就是gid
:
|
|
把结果填写在这张表里:
user | uid | group | gid |
---|---|---|---|
- 创建脚本配置文件,你需要填写的部分是:
apple_id
,这个是你的 apple 账号的名称,比如手机号或者邮箱号,自行在手机的设置界面里查看uesr
,填写之前确定的用户名
user_id
,填写之前确定的uid
group
,填写之前确定的用户组名
group_id
,填写之前确定的gid
|
|
有两个参数可以调整:
convert_heic_to_jpeg=True/False
,是否把 HEIC 格式的照片转换一份为 JPEG 格式,- 我的华为 Mate60 Pro 支持 HEIC 格式照片,所以就无须转换了。
photo_album
,指定下载哪个相册- 这个参数不提供就是下载所有照片,下载的照片的文件夹结构是
年/月/日
,而不是相名。 - 如果要下载相册,则必须是这种格式的
photo_album="相册1,相册2,相册名称带 空格 3"
- 这个参数不提供就是下载所有照片,下载的照片的文件夹结构是
- 初始化 iCloud cookie,这一步可能会失败,那就
rm -rf /config/*
然后重复此步骤
|
|
程序运行会出现以下提示,按照提示输入,注意这是一个模拟登陆的过程,有可能会让你输入两次验证码,照输就是:
|
|
出现以下提示则说明获取 cookie 成功
|
|
- 下载 iCloud 照片
先给 home/user/iCloud
目录建一个文件,否则脚本不会用户组名照片:
|
|
然后开始下载,过程很漫长,我8千张照片下载了10个小时:
|
|
- 整理目录结构
因为下载的照片目录结构是按照年月日分级的:
|
|
想办法扁平化一些,比如就按照年份来。
那就先按照年份创建一套新目录,比如:
|
|
按照年份把一个一个照片复制过去:
|
|
之后所有文件都在 flat
目录下,且目录结构如下:
|
|
注意,不过这样做有风险,因为 iCloud 上的照片可能重名,会导致丢失文件,通过下面命令检查一下扁平化前后文件数量是否一致:
|
|
- 使用在 Mac 上安装华为手机助手,把导出的照片上传到华为手机上的
Pictures
目录,有 4 个坑:
- Mac 上的华为手机助手无法直接上传目录
- Mac 上的华为手机助手照片传了千把张之后,就再也无法传上去了,提示失败
- 你得找一个真 USB 3.2/3.1 的数据线,否则传输速度很慢(也许是 USB 2.0 的速度,我8千张照片+视频传了5个小时)
- 你可以通过网络上传,毕竟比 USB 2.0 的速度快多了,但是:
- 在华为手机上开启 华为分享-共享至电脑,然后 Mac 打开 Finder - 网络,通过 SMB 协议访问华为手机是不行的
- 但是,在 Mac 上 系统偏好设置 - 共享 - 文件共享 - 选项 - 使用 SMB 共享,然后华为手机 文件管理 - 网络邻居 访问 Mac 是可以的
如何清理
如果你想重新来过,在宿主机上执行以下命令:
|
|
评论