分享基于 Pixel 1XL 的 All in Boom 照片备份方案

113 天前
 StephenChow

分享基于 Pixel 1XL 的照片备份方案

方案概览

外接硬盘

Pixel 1XL 的原系统不能支持 ext 文件系统,我重新刷了 Lineage OS 20 的版本。

硬盘插入之后是挂载在 /mnt/media_rw/xxxxx 下,Google 相册并不会读取上传这个目录下照片,而且默认我们也只需要同步硬盘下某些目录的照片。

  1. 我们在开机后把硬盘下的照片目录 bind 到/sdcard 目录。

    mount -o bind /mnt/media_rw/xxxx/SDCard_Mock /storage/emulated/0
    
  2. 通过 Tasker 定时任务,每天定期发广播触发系统扫描新文件,这样 Google 相册就能扫描到硬盘中新增的照片文件

    am broadcast -a "android.intent.action.MEDIA_SCANNER_SCAN_FILE" -d file:///sdcard/
    

手机同步软件

Android FolderSync 软件,一次买断,非常好用,可以设置定时任务和过滤器,完全不用操心。

IOS 下没找到 FolderSync 类似的软件,也订阅过几个相册同步软件,目前使用的 Pho 软件,免费且功能够用。

充电问题

之前我买过 Pixel 1 ,按照定期开机充电然后从 Samba 同步下载最近的照片,Google 相册再把照片同步到云端。在使用了一段时间我发现:

  1. 充电时相册同步发热非常严重,发热严重的话,Google 相册就停暂停同步了。
  2. 不充电的话同步放在那里同步的话, 经常忘了然后手机掉电到最后自动关机。

如此一段时间,我的 Pixel 就鼓包完全不可用了,然后自己动手准备把电池更换或者改直流供电,结果手惨直接把屏幕搞坏了 :(。

后来一直在关注有没有不拆机可以直接用充电头直接供电的方法,后来发现 ACC 这个 Magisk 插件有这个功能点,研究了实现发现是通过往 battery/battery_charging_enabled 写入 0 就可以关闭手机的充电。但是实际操作起来发现没有那么简单,在 Pixel 1XL 写入 0 之后,过了一段时间后 accubattery 看电池又有输入电流,表示又在充电了。后来各种方法试,结果试出来一种看起来毫无道理,但是却起作用的方法:

往 battery/battery_charging_enabled 不停的先写入 1 ,然后再写入 0

while true; do
	if [ -f "$flag_file" ] && [ "$(cat "$flag_file")" = "$expected_value" ]; then
	    echo 1 > /sys/class/power_supply/battery/battery_charging_enabled
	    echo 0 > /sys/class/power_supply/battery/battery_charging_enabled
	else
	    echo 1 > /sys/class/power_supply/battery/battery_charging_enabled
	fi
	sleep 1
done

虽然不知道原理是什么,但是从 accubattery 看电池没有输入电流了,只看到-2ma 左右的输出电流 :D

虽然只有-2ma 的输出电流,但是电池依然在缓慢放电,所以还是用 Tasker 做了电量的检测:

  1. 电量低于 25 的时候往 battery/battery_charging_enabled 写入 1 ,恢复充电
  2. 电量高于 85 的时候,重新执行上面的循环写入 1 0 的操作,使用充电头直接供电

无限可能

打通一切之后,我发现一个装了 Linux Deploy 一直开机的手机只用来同步相册似乎有点浪费,所以又安装了新的一些软件:

  1. Transmission:用来挂 PT 下载和上传
  2. Plex Server ,Emby Server:用来管理播放硬盘上的电影和剧集
  3. frpc:用于外网访问,这样我就能远程管理硬盘文件和控制 Transmission 下载
  4. smartd: 用来定期检查外接硬盘的健康信息
  5. box4magisk 模块:用手机做旁路由,有翻墙需求的手机可以把路由指向手机局域网 IP 就能翻墙

All In Boom

在论坛上经常看到大家分享的 DIY 方案被说成是 All In Boom ,我这个方案本来相册同步的方案中手机和硬盘只是相册一个中转站,心里想着 Boom 不 Boom 没有太大所谓,后来我发现这个方案手机电池如果出了问题可能会真的 Boom ,所以又在想这么一颗定时炸弹该怎么处理,后来淘宝上找到了小的防火的保险盒,把手机放到里面隔绝,通过锁眼的小洞把 Type C 线引出来接其他的硬盘和 Hub 。

这个小盒才是永远的家:

新的希望

随着折腾,我发现这个手机越来越像 NAS ,但是有一个很大的短板,Android 手机外接的硬盘是无法组 raid 。不过后来又发现绿联竟然有能组 raid 的硬盘盒这种产品,这个就解决了我的痛点,不过就是价格不美丽 :(,其他大甩卖的一天。

1646 次点击
所在节点    分享创造
20 条回复
azhangbing
113 天前
牛的!!! 解决我一个大问题!!!
jhytxy
113 天前
程序员思维都是这样全流程自己上的吗


你这需求在淘宝找一家手机改直供电的就完事了啊
TrackBack
113 天前
不装盒子里可能还好,装盒子里散不了热反而真可能 boom
rrfeng
113 天前
我的闲置只用来只定时手动上传一下小孩的照片…
PetTko
113 天前
每次看见这种 diy 都想问问,为什么不通过智能插座来控制电量,低电量自动充电,高电量自动停止。
jhytxy
113 天前
@PetTko 时间久了还是会 boom
不如改直供电一劳永逸
StephenChow
113 天前
@PetTko 这个方案也用过一段时间,但是本身小黄鱼上买的二手手机,电池本来就不太行,怕撑不了太久
StephenChow
113 天前
@TrackBack 用了一年多了,夏天摸了温度还好,感觉手机放在铁盒子上散热更好了 :D
StephenChow
113 天前
@jhytxy 是的,主要是折腾的乐趣
hellotitan
113 天前
pixel 1 之前用着用着 主板烧了...
lxxiil
113 天前
我是手机直接放在,一大块铝制功放电子散热,上面的,手机根本不会烫
Chevalierbite
113 天前
有模块控制充电的
hanxy1996
113 天前
pixel 1 已经鼓了两块电池了,定时充电也没用,一年左右就鼓
hronro
113 天前
我就用的原厂 ROM ,刷了支持 NFS 的内核,这样我就可以通过 NFS 挂在 NAS 到手机,然后照片视频直接传 NAS 就能用 Pixel 备份了
WhatTheBridgeSay
113 天前
累不累啊,直接一个 syncthing 解决所有问题,根本不用折腾 ROM 改造 FS 。至于供电问题,就找个 5V1A 的头一直插着就是了,再不放心装个 ACC ( Advanced Charging Controller )控制充电最高电量 60%不就完了么,楼主这套方案如果不是为了炫技那就是纯粹拿了个锤子看什么都像钉子,倒是非常善于制造问题并解决它。我的原则还是如非必要勿增实体
WhatTheBridgeSay
113 天前
另外提醒楼主一点,不是 NAS 就必须 RAID ,RAID 不是并且也不应该作为数据备份手段存在,它只保障可用性。你要真想用低成本 NAS 那就攒一台 X86 ,不一定比你买东买西拼起来后还需要耗费大量时间精力去维护的奇怪东西贵。当然这是从 ROI 层面考量的,如果楼主是自媒体博主那就另当别论了,折腾这些小众方案还是有一定吸引眼球的价值存在的
StephenChow
113 天前
@hronro 你说远场 rom 刷内核,我想起原厂 rom 还有个问题,通过 hub 接了网线,结果收到的数据会有概率错误,我 linux deploy 装了好几个 container ,京东上买了几个 hub ,逛了各种论坛都没找到解决方案。

最终刷了 lineage os 20 ,因为它升级了 kernel 版本,结果捎带手就把网线接收数据错误的这个问题解决了。
StephenChow
113 天前
@WhatTheBridgeSay 算是一种 DIY 的乐趣。

看到一个二手手机能实现这么多功能,物尽其用,感觉又焕发了第二春。

要不是手机放小盒里了,我本来还准备折腾把摄像头都利用起来,当作一个 IP Cam ,放在家里做监控。最近还看到 github 上有人在 Android 手机上跑 Docker ,搞得我也跃跃欲试。
hronro
112 天前
@StephenChow #17
谢谢分享,我之前也试过直接接网线,也遇到了断流的问题,我一直以为是我买的 USB 网卡有兼容性问题,没想到是内核的原因。现在 Lineage OS 用的内核是什么版本啊?
StephenChow
111 天前
@hronro 我刷地 lineage os 20 用的内核版本是 4.4

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

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

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

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

© 2021 V2EX