V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
StephenChow
V2EX  ›  分享创造

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

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

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

    方案概览

    https://s2.loli.net/2024/08/12/6MaCLey3SD4muXn.png

    外接硬盘

    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 。

    这个小盒才是永远的家:

    https://s2.loli.net/2024/08/12/r6uGkO1KnpcSQJy.jpg

    新的希望

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

    20 条回复    2024-08-14 08:58:57 +08:00
    azhangbing
        1
    azhangbing  
       104 天前
    牛的!!! 解决我一个大问题!!!
    jhytxy
        2
    jhytxy  
       104 天前
    程序员思维都是这样全流程自己上的吗


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

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

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

    要不是手机放小盒里了,我本来还准备折腾把摄像头都利用起来,当作一个 IP Cam ,放在家里做监控。最近还看到 github 上有人在 Android 手机上跑 Docker ,搞得我也跃跃欲试。
    hronro
        19
    hronro  
       102 天前 via Android
    @StephenChow #17
    谢谢分享,我之前也试过直接接网线,也遇到了断流的问题,我一直以为是我买的 USB 网卡有兼容性问题,没想到是内核的原因。现在 Lineage OS 用的内核是什么版本啊?
    StephenChow
        20
    StephenChow  
    OP
       102 天前
    @hronro 我刷地 lineage os 20 用的内核版本是 4.4
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2693 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 10:31 · PVG 18:31 · LAX 02:31 · JFK 05:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.