另类码头:安卓手机绕过 docker 成为服务器之旅

订阅番剧 + 自动下载 + 流媒体平台
看了这个帖子之后,lz 深感私人流媒体平台的强大与 docker 蕴含的无限可能,开始调研在宿舍里部署服务器的可行性。不幸的是,lz 的位置并不能控制宿舍的有线网口,而控制有线网口的舍友属于买防辐射内衣比他怀孕的老婆还积极的类型,对添加一台 mini 电脑主机表达了一定的抵触情绪,谈判也随之破裂。
就在 lz 山穷水尽之时,再次翻阅这条帖子,突然发现这套方案不止能安装在一般的 x86 主机上,其最初被提及是被安装在安卓手机里,lz 顿时重燃希望,立即网购一台 MI6 开始尝试。
当然,安卓在 linux 的基础上进行了魔改,从目前查阅到的资料来看,想在安卓系统里安装 docker 不是一件易事(至少对于技术储备不足的 lz 来说绝对不是《简单的亚批》)。
To be continued…

6個讚

请问是东方铁心小姐吗?:pleading_face:

1個讚

看了一眼原动态,应该是用 Linux deploy 部署的 Linux,没记错的话那是个基于 chroot 的工具,我还曾经在自己的 Mi 4c 上玩过。chroot 装 Linux 比较麻烦的问题大概就是 systemd(没有真正的硬件控制权),装 docker 不能直接用 systemd 管理 containerd 和 docker service。

另外如果需要手机长期开机的话必然要插电,那建议 root 之后装个模块把电池充电上限控制到 60% ,否则长期满充电池鼓包不是开玩笑的事儿……或者有动手能力的话可以自己改直供电方案拆掉电池,我之前就想试但一直太忙了没空玩 :rofl:

1個讚

我有个朋友给一台一加刷了 arch
然后安装 arm 版的 docker
:face_holding_back_tears_hugging_face:

1個讚

我的那套方案是安装在家里的老 x86 电脑里的,原动态提到的安卓机的方案对我来说也是超纲的…

虽说在宿舍里确实会怀念那套方案,但这个季度我着实不感兴趣,估计不会折腾了,2 部番就简单挂在 qbittorrent 下订阅了

可以看看这个?
https://www.zhihu.com/question/51710030/answer/2875412609

久违来同步一下进度吧。

经过多方查找资料,lz 大致总结出 4 条可能的路线:

  1. 编译安卓内核,开放相关功能,使用 termux 直接运行 docker
  2. 在 termux 中安装 qemu 虚拟机,在虚拟机中安装 docker
  3. 安装 postmarkOS,这是一个完整的 linux 系统
  4. 使用 linux deploy,在其中安装 docker(这也是原动态使用的方法)

综合看来,编译安卓内核有些超纲,qemu 虚拟机性能偏弱,postmarkOS 没有提供 MI6 的刷机包要自己做,所以 lz 选择了 linux deploy 这条路线,选择 debian10 发行版。

然而这条路也不是一帆风顺的。lz 碰到的第一个问题就是 ssh fail,ssh 无法启动;解决了这个问题后,紧接着就是 systemd:

这的确是一个棘手的问题,因为很多 docker 操作就是依赖 systemctl的,但也不是绕不过去。尝试通过执行dockerd 直接启动 docker 守护进程,给出了新的报错信息:

failed to start daemon: Devices cgroup isn't mounted

查询资料得知 linux deploy 提供的 linux 发行版都不是完整的,cgroup 和正常的不同。总而言之,lz 目前被卡在这了。暂时没心情研究了,再鸽一段时间。

1個讚

Android 魔改 Linux,太傻逼,google 是个傻逼公司。Linux foundation 应该修改 license,禁止 google 使用 linux 内核。

其实可以再等等,今天看到新闻说 Google 正在给 Android 增加自带的 Linux VM 和 Terminal,并且完整支持 cgroup 等特性,甚至准备支持嵌套虚拟化 :rofl: 说不定到明年这个问题直接被 Google 解决了。

1個讚

到明年我就不需要这套抽象方案了…

感觉最近哪哪都有 linux,windows 有了 wsl,安卓准备增加 Linux VM,国内在发展自己的 linux 发行版,连我父母的单位都在试点安装国产操作系统

这个其实很早就在发展了,比如说麒麟、deepin
至于易用性我只能说一言难尽
之前暑假实习我有个朋友给我拍照,当时那个整机应该是联想的,系统几乎是 deepin
她拿着一个.exe 文件问我怎么装 wps
我还愣了好久

诶?我也刷到了哈哈哈
https://mp.weixin.qq.com/s/7jkSauAYeDRCMkMIme_srw

哈哈看来这些文章的受众还挺集中的

阶段性放弃在安卓上安装 docker 的想法后,我又尝试了一些其他玩法。

首先就是 clash,它能帮助我从 F-Droid 和 google play 获取软件,而只需要允许局域网连接并且开放相关端口,安卓手机就能成为一台代理服务器实现全屋科学上网。

然后是 samba,虽然无法运行 docker,但在 linux deploy 中还是有很多软件是可以运行的,其中 samba 能让安卓手机成为 smb 服务器,在局域网内方便地共享文件。

我希望通过 auto bangumi 实现番剧的自动订阅,但实际上 qbittorrent 本身也支持 rss 订阅,而 qbittorrent-nox 可以直接安装运行,再配合上述的 samba 文件服务器,在电脑上映射网络驱动器,也算完成了低配版的番剧自动订阅,或许还能抽出空跑跑 PT 啥的。

我最近在研究 Android 嵌入 Rust 项目交叉编译出来的二进制文件并在后台运行,之前考察过 tauri 有 sidecar 功能,但仔细研究发现 android 上其实不支持。
Android 官方文档又很垃圾,看了看发现似乎只能提供 Rust 源码编译,不能直接嵌入 binary,难顶

其实 F-Droid 支持镜像源的,不需要挂代理就能用。清华 TUNA 就维护了一个 镜像源

你的面前有一堵墙,你想到对面,你可以爬墙,拆墙,也可以绕过墙。

说到底我的目的终究是搭建局域网流媒体平台并实现自动化追番。在无法安装 docker 的情况下,三件套中的 qbittorrent 可以很轻松地通过 apt 直接安装。

自动化的核心是 AutoBangumi,虽然很不推荐,但官方还是提供了不依赖 docker 的本地部署运行的方法。按照其给出的方法成功安装并运行 AB,再写一个延时自启动脚本使其符合服务器场景。

最后便是 jellyfin,或许同样是 chroot 系统的问题,直接部署 jellyfin 同样会有一些奇奇怪怪的问题,我便将目光投向 jellyfin 的孪生兄弟 emby,令我惊喜的是 emby 直接提供了 Android 版 server 的安装包,安装完成后正常使用,在不使用高级功能的情况下平替 jellyfin。

总之,问题在某种程度上解决了,旅途也算告一段落。