• 安卓是基于Linux的,那么是不是可以把安卓手机当服务器用呢?那么我的树莓派是不是可以丢了呢~
  • 一开始想找直接将Linux系统刷到手机上,不过难度太大了而且据说很难适配,那这条路走不通了
  • 那么能不能直接从安卓调用底层的Linux呢?通过查找,也不行…
  • 后来发现了Termux、Linux Deploy、Aid Learning
  • 经过尝试,Aid Learning感觉好像是用Termux魔改的,增加了很多东西,各方面都挺完善的,但是也因此比较臃肿,手机跑也挺吃力的
  • Termux没用尝试过,但是好像说没有Linux Deploy自由度那么大,而Linux Deploy需要root才行,而且据说可以安装Docker,所以最终选了它(emm感觉被忽悠了…docker还是跑不了啊摔…不过除此之外基本上就和树莓派差不多了,而性能甚至更强)

准备

  1. 手机解锁bootloader(啊华为都关闭解锁通道了,还得花我8块大洋去解锁)
  2. 手机已root(又失去25大洋…)
  3. 下载安装Linux Deploy https://github.com/meefik/linuxdeploy/releases(我使用的版本是2.6.0-259)
  4. 下载安装Busy Box https://github.com/meefik/busybox/releases (其实这个我觉得没用,因为BusyBox我是安装失败了的,但是linux系统照样跑,但是很多教程都说需要安装,那么就先放上来好了)(安装失败可以在手机上尝试手动创建/system/xbin文件夹)

配置Linux Deploy、安装Linux系统

打开linux deploy,左上角设置,最重要的就是下面两个要勾上,其他的设置可采用默认的

然后点右下角配置要安装的linux系统

我这里以Debian为例,现在的手机一般都是arm64的,架构不要选错,不然会出现无法启动、无法ssh等各种奇怪的问题,如果安装出现问题,可以尝试选择其他arm架构进行安装,Debian默认源速度还行,就没有换国内源了

安装路径有一定要注意下,默认是${EXTERNAL_STORAGE}/linux.img,也就是外部储存,${ENV_DIR}则代表本机储存,有点坑在这里,因为所谓“内部”和“外部”并不是绝对的,和手机设置的默认储存位置有关,如果手机设置默认储存为本机的话,那么${EXTERNAL_STORAGE}其实代表的是安卓系统文件管理器能看到的目录的地址,${ENV_DIR}代表的是安卓文件系统的内部地址,也就是root之后才能看到的那部分的目录(有点绕啊…)
总之我想表达的是,最好使用绝对路径防止路径混乱,而绝对路径是从root之后的根目录算起的

其他的配置根据自己实际情况配置即可,我给他他5G,本地化记得选,防止中文乱码,没选的话也可以进Debian进行配置

如果需要挂载sd卡可以勾上挂载,ssh则是必选的

挂载的路径要根据自己系统实际情况来填,可以用任意可root的文件管理器找到sd卡的实际路径,再复制进去,因为每种手机的路径不一定一样的

其他没提到的如VNC,根据自己需要选即可,并非必须选项

我的建议是,安装的linux系统单纯作为一个运行的容器来用,最好不要储存数据,因为镜像安装后是一个***.img的整体文件。然后把数据文件(如自己的java程序、python脚本等)放在sd卡中并挂载到linux容器中,这样的话,不管以后安装了多少个镜像,都不会影响到数据,比如说有两个镜像,Debian和CentOS,不管启动哪个镜像,都是使用同一个sd卡,不需要重复复制数据文件进linux系统中。

配置完毕后,回退一步,点右上角三个点的地方,安装,等待十几分钟左右,出现<<< deploy代表安装成功,点击一下停止按钮,然后再点击启动

启动成功,注意看界面有没有出现fail的,要留意下,我一开始安装CentOS的时候Starting extra/ssh一直都失败=。=
然后就可以用putty、xshell等ssh工具进行连接了。
至此linux系统安装成功

其他说明

  1. 如果想安装CentOS,架构记得选aarch64,现在手机一般都是64位了,一些老的机子可能会是armhfp,我一开始安装CentOS的时候就选了armhfp,结果安装完毕后一堆fail,而且也无法ssh,后来换了aarch64就成功了。
    默认源是
    http://mirror.centos.org/altarch/
    可以更换为国内清华源,快很多
    http://chinanet.mirrors.ustc.edu.cn/centos-altarch/

  2. 如果配置的时候忘记选了本地化,会导致中文无法正常显示,可以根据下面的方式来配置
    终端输入
    dpkg-reconfigure locales
    会出现一个表,按空格选中带zh_CN的,然后按TAB选ok,然后需要选一个作为默认,用UTF-8的就好了。因为我没有GUI,所以也没必要再装字体,这样设置中文就不会乱码了

    3.如果需要安装JDK,可参考树莓派安装JDK的方式,根据自己需要选择32或者64位版本
    https://blog.csdn.net/weixin_43909881/article/details/113743082
    现在手机一般都是64位了,如果选错了32位的话java是运行不了的
    4.如果需要在启动容器时运行程序,而不是每次都要ssh登录手动运行,那么就需要开启初始化,初始化设置中可以设置运行的路径,默认是会运行/etc/rc.local

    因此我们需要编辑/etc/rc.local,若没有此文件则需要创建并给权限chmod +777 /etc/rc.local
    先编辑好要运行的脚本,如runxxx.sh
    然后将下面的内容追加到/etc/rc.local
    /bin/bash /xxx/runxxx.sh
    这样每次启动容器后都会自动运行runxxx.sh中的脚本

一些问题

关于Docker

结论:暂无没有解决办法
我花了大量时间在折腾Docker,没有Docker还是不太方便
尝试了在CentOS用yum安装,也尝试了Debian用apt-get安装,还有通过官方脚本安装,都无法启动docker
其中的原因是linux deploy安装的系统是运行在chroot下的,不支持一些命令,最重要的是无法使用systemctl

[root@localhost ~]# systemctl start docker
Running in chroot, ignoring request.

service也不行(行啊你又把球踢到了systemctl去了…)

[root@localhost ~]# service docker start
Redirecting to /bin/systemctl start docker.service
Running in chroot, ignoring request.

找了N多博客,来来去去都是那几篇而且还写得不明不白的=。=
后来找到了这个
https://www.cnblogs.com/sw-code/p/14998645.html
https://github.com/smaknsk/servicectl
有个大佬搞了个名为servicectl的来代替systemctl,试了下…
docker居然报错说docker不是用systemd来启动的,罢工…
没辙了…乖乖直接在linux上部署环境算了…不知道后面有没有办法可以解决

关于断网

结论:暂无没有解决办法
容器运行了一段时间(半天或者一天)后,会发现无法通过ssh访问了,然后点亮手机屏幕后又可以访问了,可能是因为手机的能耗策略,把网络关闭了,但是明明把所有能设置的都设置过了,如设置wifi永不断开,linux deploy设置手动管理等,还是无法解决此问题
看到过比较简单粗暴的做法就是,屏幕常亮,然后把屏幕颜色设置为黑色并调到亮度最低…(这…本强迫症表示不能忍…)
想试试写个脚本定时检测网络状况,断了就手动连上,然而本菜鸡还找不到相关命令,也不知道容器有没有权限去控制手机的wifi=。=
于是乎这个问题也只能暂时搁置了…

测试

可尝试使用此命令,将会关闭安卓应用层,同时手机会表现为像一块砖,手机未锁屏则界面卡死,手机锁屏则手机怎么按按钮都没有任何反应,但是其实此时我们安装的linux系统是可用的,随时可以用SSH登录
unchroot /system/bin/stop
如果想重新开启安卓,可执行下面的命令
unchroot /system/bin/start
或者长按手机电源键,但是这个时候其实是整个系统重启了,包括我们的Linux Deploy

因为等于没有屏幕了,所以可以用下面的命令查看电池信息
cat /sys/class/power_supply/Battery/capacity
/power_supply后面的文件夹名不一定是/Battery,根据自己手机实际情况修改
cat /sys/class/power_supply/Battery/status可以查看手机是否为充电状态,/Battery中有很多关于电池的参数可以查看

同样,网络收发数据也能在这里找到,/wlan0根据自己实际情况修改
接收数据 cat /sys/class/net/wlan0/statistics/rx_bytes
发送数据 cat /sys/class/net/wlan0/statistics/tx_bytes

用Linux Deploy让安卓手机成为Linux服务器相关推荐

  1. Linux Deploy在安卓手机安装LINUX系统

    准备工作 下载下列软件安装在手机上: Linux deploy https://github.com/meefik/linuxdeploy/releases Linux系统支撑软件 Busy Box ...

  2. 【linux deploy】安卓手机安装linux(ubuntu) 提供各种工具安装链接

    网易开源镜像站:http://mirrors.163.com/ 清华大学 http://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ 中科大源 http://mi ...

  3. linux deploy ENV 目录,手机安装linux deploy 安装和配置

    最近在淘了一款二手三星的sw-2014,正好最近正在研究智能家居.就想用它来搭建domoticz来管理,虽然手头也有一块吃灰的树莓派3b,但是觉得用树莓派搭建有点浪费,索性就用这款手机. [为什么不用 ...

  4. 在安卓手机安装Linux

    利用Linux Deploy这个软件,我们可以在安卓手机上安装Linux系统,当嵌入式用 具体看Linux Deploy在安卓手机安装LINUX系统 手机需要root权限且 Linux deploy ...

  5. 手机安装linux Noroot,安卓手机安装linux,Linux Deploy 和 GNURoot Debian 的尝试

    用闲置的安卓手机跑个小 Linux 服务器其实性能不一定很差,比较起内存和 cpu 核数,反而比几年前的笔记本更好(比如我已闲置的 Dell 1520). 方案主要有以下 2 种: Linux Dep ...

  6. 如何把你的安卓手机变成Linux?

     如何把你的安卓手机变成Linux? 使用KBOX或者Limbo PC Emulator: http://www.linux-magazine.com/Online/Features/Conver ...

  7. 使用Linux Deploy在android手机上部署Ubuntu

    使用Linux Deploy在android手机上部署Ubuntu 准备工作 一.安装BusyBox 二.使用Linux Deploy安装Ubuntu 1.修改设置 2.修改配置 3.分区安装(镜像安 ...

  8. Linux Deploy:在Android上部署Linux

    2019独角兽企业重金招聘Python工程师标准>>> PS: 打算在家里的旧安卓手机上安装linux,之前一直尝试使用complex Linux Installer,在我的泛泰A8 ...

  9. 教程 | 用安卓手机搭建 web 服务器(二)—— Nginx 安装配置

    上一步完成了必要的软件安装,接下来需要在 Linux 系统上安装 nginx. Nginx("engine x")是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能 ...

最新文章

  1. signature验证/salt验证/token验证的作用
  2. a different object with the same identifier value was already associated with the session:
  3. JavaScript 的DOM操作
  4. 【论文解读】CVPR 2021 妆容迁移 论文+ 代码 汇总,美得很美得很!
  5. 不裁员也好意思叫互联网公司?
  6. ANSYS入门——模态分析步骤与实例详解
  7. vscode的setting.json个人配置及个人常用插件
  8. 如何将gif动图分解成png格式?动图分解器如何使用?
  9. 微信小程序获取用户绑定手机号码完整版
  10. Alfresco文档管理系统 文档
  11. QQ-360大战影响恶劣
  12. 王欣复出后的第一款产品
  13. 快递业务商业计划书如何编写?
  14. render_template()
  15. 联想与戴尔台式计算机比较,戴尔台式机和联想台式机哪个好用
  16. Pr剪辑上分攻略 -- 文字效果
  17. 计算机按键会卡住,为什么电脑有时候会卡死,按键都不起作用,只能强制性关机...
  18. win10专业版激活(试试水)
  19. redisgo-ngrok实现内网穿透的管理
  20. 美国能限制linux内核,因故意引入漏洞,美国一所大学被禁止为 Linux 内核做贡献...

热门文章

  1. Minecraft 1.12.2模组开发(二十三) 霰弹枪!
  2. 华为鸿蒙推送更新,华为鸿蒙升级教程,快来看看你的手机可以升级吗?
  3. 大揭秘!“恐怖”的阿里一面,我究竟想问什么
  4. 在canvas上绘制3d图形
  5. 从200W超级闪充看iQOO 10 Pro的 “共情”能量
  6. Joint Learning of Deep Retrieval Model and Product Quantization based Embedding Index
  7. Python实现飞机大战游戏(后附完整代码文件和素材)
  8. 中文领域最详细的Python版CUDA入门教程
  9. 涉密信息系统安全保密建设探讨
  10. windows server 2012/2016 设置多用户远程桌面