Android上部署Linux环境的方案总结对比

爱折腾的朋友真不少啊, 估计大家手中都多多少少有一两个退休的Android手机, 那我们就来好好研究下Android折腾的各种路子

经过我长期的折腾, 所了解到在Android手机上部署Linux环境的方案有以下几种, 在这里详细总结和比对一下, 看看哪一款最适合你手中的设备

1. 方案列表

  • Termux
  • Termux + Proot
  • Chroot, 比如 Linux Deploy, chroot-distro, Auto-Linux 等
  • 原生 Linux, 比如 postmarketOS, Armbian, Mobian, Ubuntu touch 等
  • QEMU 虚拟机, 以软件模拟任意硬件架构的方案

Android系统本身也可以折腾, 玩Magisk刷模块, 刷LSPosed等, 但本文主要聚焦于Linux环境, 暂不讨论这些

每一种方案各有优劣, 在折腾难度, 性能释放, 软件兼容, root需求等各方面均有自己的优缺, 我在这里将所了解的方案全部列出, 做一个横向对比, 方便小伙伴们根据自己的需求选择

2. 详细方案对比

左右滑动查看

方案 Termux Proot Chroot 原生Linux QEMU
root/bootloader 无需 无需 必须 必须 无需
C库 Bionic glibc glibc glibc glibc / 任意
折腾难度 ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐
原理概述 轻量终端 用户态模拟chroot 系统级根目录切换 独立Linux内核 硬件虚拟化
变砖风险 极低
性能损失 极低 约20% (I/O) 极低 (原生)
包管理器 pkg + 部分apt 完整发行版包管理 完整发行版包管理 完整发行版包管理 完整发行版包管理
系统目录结构 非标准目录结构 $PREFIX/bin $PREFIX/var 标准Linux目录结构 标准Linux目录结构 标准Linux目录结构 标准Linux目录结构
软件兼容 termux+bionic构建包 标准ARM Linux包 标准ARM Linux包 标准ARM Linux包 标准Linux包
软件来源 pkg 官方源 tur-repo 社区源 自编译 ARM Linux软件源 ARM Linux软件源 ARM Linux软件源 任意软件源
服务管理 termux-services 无 (termux中管理) sysv systemd 任意
Docker 不支持 不支持 不支持 支持 支持 (无限套娃)

3. 方案选择

通过上面的横向对比可以发现, 不同的方案都是在 难易程度 - 性能损失 - 灵活兼容 这三者之间进行权衡取舍

具体选择什么方案取决于自身需求和偏好

  • 无root简单玩玩, 跑跑脚本和简单开发 : 选择 Termux 原生环境, 极简配置 + 极低性能损失, 软件兼容性差, 但pkg和tur-repo中也有非常多常用软件了, 是最简单的方案
  • 无root, 但需要/想体验完整Linux环境 : 选择 Termux + Proot, 配置比较简单 + 极好的软件兼容, 通过ptrace拦截转译, 会有I/O性能损失, 计算密集型任务基本无影响, 但I/O密集型任务性能损失可能比上述提到的20%还要大, 但这是比较简单能玩起来, 且兼容性很好的方案
  • 已root能折腾, 想要完整Linux环境和极低的性能损失 : 选择 Chroot, 使用LinuxDeploy部署Linux, 支持开机自启动和sysv服务管理, 完整ARM Linux体验, 除了不支持Docker基本啥都能玩, 可以榨干退休Android的每一滴性能, 与底层Android共享内核, 硬件驱动完美, 是有点复杂但兼容性很好且性能释放完全的方案
  • 已root非常能折腾, 追求原生Linux + Docker极致体验 : 如果手上恰好有postmarketOS, Armbian, Mobian, Ubuntu touch等系统支持的型号的设备, 并且技术好, 可以试试, 折腾时要小心, 动了不该动的分区搞不好救砖都救不了, 而且驱动适配一般没有原生Android完美, 可能会有一些比如联网/蓝牙/拍照/声音/触控的小问题, 但是极致的折腾带来极致的体验, 折腾好了, 手中的Android将变成一台小巧的能随身携带的移动Linux服务器
  • 不在乎性能损失, 只要最灵活的体验: Termux + QEMU虚拟机, 都上虚拟机套娃了, 什么都可以跑, Linux, Docker, 甚至Windows都没有问题, 玩到这个份上就不要在乎性能问题

4. 全都想要怎么办

如果有人问: 简单 - 低性能损耗 - 兼容性和docker 都想要怎么办?

欢迎加入垃圾佬队列, 可以考虑牺牲一点便携性, 把旧手机换成J1800/J1900/1037U这类小主机, 海鲜市场50-100, 用x86架构来玩才是真的简单轻松, 4G RAM + 64G SSD 的配置就可以, 装一个飞牛跑一点轻量容器还是很舒服的, 小主机的尺寸比手机大一些, 但背个包也是能携带的

如果想性能好一点, 可以看看J3160/J4125小主机(200-300)

想性能更好一点, 可以考虑J5105/N100小主机(400-600), 可以拿来当NAS玩, J5105和N100视频解码也没有问题

性能还想再好一点, 可以考虑R5 5500u/R5 5700u这类CPU的小主机(1000-1500), 可以当性能强劲的NAS, 可以当办公主机, 打打小游戏都没问题

性能还想更好一点呢? 抱歉, 这已经超过了垃圾佬的讨论范围, 可以去玩m3/m4的mac mini

如果还有人问: 希望简单易用-兼容性好-还要便携-还要带桌面环境-能随时办公... 您是否在寻找"笔记本电脑"?

如果还有人问: 还想要大容量存储怎么办? 小主机无法为众多的小姐姐们安家, 可以考虑直接上成品NAS + 大容量HDD, 现在的国产NAS已经发展的很好了, 有大容量存储需求可以看看, 但是现在的存储/内存价格感觉有点贵了, 有闲置存储或者不差钱适合

具体要怎么玩还是需要看个人需求, 没有十全十美的方案, 不同的设备都有最适合它的场景, 不能性能焦虑

我们最开始想做的只是让换代的旧手机继续发挥余热, 并且练一练倒腾Linux的技术, 折腾本身才好玩, 真的折腾完一点问题没有了, 又会感觉没那么有意思了, 哈哈

相关推荐
YXXY3133 小时前
线程的介绍(四)
linux
李白你好3 小时前
AI Agent 架构的自动化渗透测试工具
运维·人工智能·自动化
一勺菠萝丶4 小时前
Docker Desktop 启动后容器自动启动怎么办?如何关闭容器自启动
运维·docker·容器
ylscode5 小时前
Comodo防火墙曝致命零日漏洞:单个IPv6数据包即可触发Windows蓝屏死机
运维·网络·windows·安全·安全威胁分析
kTR2hD1qb5 小时前
从 Responses API 到 Chat Completions:一个模型网关的设计复盘
linux·前端
实在智能RPA5 小时前
药企GMP合规自动化破局:实在Agent的功能完整度评估与落地实践
运维·人工智能·ai·自动化
姓刘的哦5 小时前
大模型祛魅
linux
Shota Kishi5 小时前
SLV 新增 allnodes-jito 支持:Solana 验证者多客户端运维与 AI agent 自动化解析
运维·自动化·区块链
hj2862516 小时前
linux下一步学习内容
linux·运维
睡不醒男孩0308237 小时前
数据库高可用运维实操指南:基于CLup的PostgreSQL生产环境自动化管理
运维·数据库·postgresql