LinuxDeploy搬砖之路

linux deploy 是用来在安卓环境上搭建一个linux容器的工具(app)可以用来让老手机完成家庭智能网络设备管理等linux上可以完成的事

我按我搬砖顺序来讲故事,干货不太可能集中放置,要看干货建议直接ctrl+f找代码段,我会尽量贴源地址方便大家参考。这篇文件会详尽记录我踩过的坑,方便你们乘凉。资料在文末(注:我的两个安卓设备均为4.3-4.3的设备,安卓5.0+建议magisk+termux。由于5.0+安卓改动内容相当大,部分内容不宜作为参考)

为何搬砖

一个字:穷

两把剪线键盘在学校说等着开学去搞,也没带一把回来(都是104键)另一把垃圾薄膜也放在学校。放假前说着寒假就搞香橙派(PC2)也没时间玩别的,发现家里只有ps/2键盘,结果就是没东西玩了(香橙派就是要用掉它的图形性能)。准备某鱼入个百元机giao一搞,想起来家里有旧手机最后翻出来能用的就一个coolpad8720l和一个老人家在p夕夕买的山寨平板。

两个字:折腾

也差不多同时发现了meefik大佬的linux deploy(下简称LD),于是开始了断断续续长达一个月的搞机之旅。(不知道为什么那么多csdx上的码农那么不喜欢著名出处,给个教程给个链接,原作者就被忘得一干二净)

开搞

1. 刷机

酷派手机

  1. 配置:4核32位armv7l 1+4g

  2. 刷机包:找个刷机包我直接host掉了百度前三页,最后就找到一个能用的刷机包,当年的那些刷机网站全都把数据扔了,死都找不到第二个卡刷包,这就是互联网吗,吐了吐了。

  3. rec:还好找到了一个煤矿的rec还带root,不然干死了

  4. 精简:安卓4.3 刷机包到手折腾了很久,最后是直接zip解压删apk就完事

  5. 总结:垃圾堆里翻金子

寨机

  1. 配置:最有意思的来了,到手一看安卓7.1 124g存储,搞一搞查一查,1688有真相,估计就是个4.3或者4.4,1+16g soc差不多mt67xx

  2. 刷机:寨版不知道cpu型号也不太可能找到刷机包,就只能找到联发科官方工具

  3. root:360root(光明正大的讲这个root还是不错的,百度简直是个笑话前三个app都没用,而且360已经放弃这个app了所以说说无所谓

统一步骤

  1. 线刷rec(寨机跳过

  2. 卡刷简化zip,可以同时把所需软件加入刷机包(寨机跳过

  3. 最后root精简系统软件

2. 环境

  1. 瑞士军刀busybox

  2. shell类软件(终端模拟器v1.07或其他方便手机独立操作)

  3. sshclient软件(还可以远程telnet替代adbshell连接电脑的麻烦)

  4. es文件浏览器(从谷歌下载没得广告,用于清理存储卸载软件,开放ftp等,这软件是真nb还支持tv pad 4.4-)

  5. x11/vnc(可选,看你是否需要图形环境)

  6. LD 2.51(这是releases里最后一个支持4.4-的版本,当然源程序是开源的,你大可以自己编译更高版本)

3. 安装

  1. 先装busyboxapp和busybox,完事觉得不需要升级busybox工具版本就可以卸了节约空间

  2. !5.0+安卓版本请勿全部参照)es查看存储,记住所见非所得,因为分区的事我差点被搞死,/sdcard下的剩余空间可能会小于实际可用空间,因为部分卸载掉的系统软件空间我们是可以使用的,具体可用多少建议在下面建立镜像时再次查看系统可用空间在确定

我的情况:酷派总共才1+4g es显示已用为 百兆左右/2.17g 我在建立2g.img后还剩余1g多,这表示我可以扩容到3g+

  1. 开始搞大头:配置LD :

· 左上角点开选择设置,应用栏建议勾选锁定wifi和cpu唤醒,其他按需调整

· 环境一栏只要先更新环境即可,首次开软件会自动更新环境,出大问题的时候移除在更新是一个好方法(我没用过)

· 管理一栏勾选telnet毙掉本地主机,这样你就可以摆脱adbshell直接远程telnet到 手机 http守护是用于webshell(我没连上过)我觉得没用自带的终端好像就是跳转到浏览器连这个(问题是我为了压榨空间浏览器都卸了)

· 调试里面最重要的就是勾调试模式,以后配置完美了或者是大概能确定问题了就可以不开减少主页面输出,其他随意吧,日志啥的占空间我就没弄

· 接下来介绍与设置同级的三个按钮“配置文件”“仓库”“终端”

· 配置文件是用来管理多个Linux系统配置的,也可以改配置名称就是主页最上面的标题名(five功能

· 仓库是预先提供的配置(five功能

· 终端之前说过了(five功能

· 为什么是five功能呢?因为配置自己手动调就可以了,自带的还是要改配置,终端可以借助telnet实现adb式管理

· 最后说一下具体步骤:

· 主界面右下角点开配置linux预装信息 然后主界面左上角点安装,装完了点启动。当前任务看主界面跑码有>>>or<<<界定状态,尽量不要在以<<<结束前执行其他操作

· 启动会自动进行配置操作,包括ssh等,如果出现ssh连不上右上角手动重新配置即可再有问题,就看下面debug过程了

· 我只成功过Ubuntu和kali的配置,其他bug没法帮你们de。文字很多过程很长,走到这你可能成功了一大半了,后面是看运气的时候

· 我以ubuntu为例,如果你的LD版本低先装xenial(16.04LTS)在升级到bionic(18.04LTS)架构尽可能不变,对自己手机架构了解的可以自己改,出事了大不了花时间重来。

· 装低版本是因为高版本可能会出现app要预装的linux软件包和源不一致导致安装失败或ssh failed(那就得重装)

· 源地址换国内源:清华源 记住和普通源不同要加上-ports,其他系统也应该需要换名称例如archlinuxarm,不行就用自带源,建议用http不带s的源,阿里云等强制s可能导致获取不到源

· 安装类型如果不是sd卡整个安装建议就镜像,路径默认为/sdcard/linux.img既然有root可以修改到任意位置,不建议改,方便es进去主目录就能直接看到镜像,而且避免因路径要root权限导致的不必要的麻烦

· 镜像大小超过一定值就会变成2g,建议就0(自动)或者其他默认值,我们后面可以通过扩容扩展容量,这里插一下我的情况:

即使把酷派清理到几兆/2.17g仍旧不能加入2g以上镜像,多哪怕1m都会在创建镜像时失败,但是之前说过建完2g还有1个多g可用,这里就是我的当时的一大难关。我想过改安卓刷机包或者安卓分区等,最后都以失败而告终。扩容的问题我们下面再说

· 文件系统ext4没什么问题,用户密码自己搞定,特权用户改root(貌似可以换行添加多个)

· 本地化不同版本选项不同,默认即可,中文需求自己搞定

· dns自动或者大厂,后面视版本不同选项可能稍有不容,trigger就理解为触发器,比如power trigger就写一些用于开机自启动的命令

· 初始化建议点上,没具体比较过区别,挂载也是,不会对安装造成影响。

· ssh不启用我是不会玩,声音自选图形不建议选,我们可以进入系统后自己添加桌面环境,设置可以更自由

· 桌面环境自己搞定把,我用的是xfce4+vnc网上教程一大把,从csdx白嫖来的东西确实太简单了,建议可以多去github查md和issue而不是csdx上找成品(二手资料)

4. 扩容

  1. github地址先给你们https://github.com/meefik/linuxdeploy/issues/395

  2. 缩小img自己想办法,我技术水平有限只会扩容:停止容器然后telnet或安卓终端执行下面的命令。n换成你要的大小(g)自己算一下就好,path换成img路径应该没什么问题

    
    dd if=/dev/zero bs=1048576 count=n*1000 >> path/linux.img
    
    e2fsck -f path/linux.img
    
    resize2fs path/linux.img
    
    
  3. 这时来了一道大坎。由于以上命令要在linux环境或者直接在手机上,所以需要环境有这些指令及指令所需的库。手机缺指令,没错就是busybox之外的指令,我从我mi6上cp了指令过去,执行失败,在linux内对loop0执行,执行失败,所以想到之前的一堆高难度骚操作。为什么我不移动镜像到别的linux环境呢?3g内容无法移动回到我酷派上去,系统判定过大,和之前直接创建2+g镜像失败是一个原因。最后功夫不负有心人,我本来4gimg在我平板上是不打算动的,结果装完图形环境发现空间不够用,想要扩容到10g,先执行了一下我酷派上缺的那个resize2fs 欸,成功了,然后我就开始扩容,发现它缺酷派上有的e2fsck指令,这是候你就会发现es太有用了,两边直接指令互补了一下,发现e2fsck 还需要一个.so的依赖库文件我财大气粗直接搜了一下几个字母把所有相关.so都复制过去了。本打算如有雷同直接跳过,没想到没有显示文件重名冲突。扩容平板到10g进系统df -h简直完美。随即把酷派的linxu扩容到3.2g,基本是榨干了最后一点存储。

DEBUG

安装系统有异常

换源换版本换系统依次换,换到成功为止。这也是我为什么最后一个月就只装了ubuntu的原因,centos老是有问题,kali成功过一次没空间装图形太鸡肋。

ssh ...failed

之前软件包没装完或者部分包有异常安装失败导致的,重装系统。执行上一bug步骤

ssh ... mesg:ttyname failed:...

可以正常进ssh没问题,进了之后直接sudo vi /root/.profile 在最后一行前面添加 tty -s && 重新配置一下就好了,不改其实也没什么事

进入普通用户 命令行退格等乱码

如果遇到按退格显示^H切su即可解决,根治编辑/etc/passwd 找到你的普通用户把最后的默认sh改为bash或其他shell

php-fpm 装了php用不了

我当时请yoyojacky帮我搞的,他也试错了很多次,甚至帮我重新编译安装了nginx,最后不知道怎么搞好的有问题私聊我发一小段当时操作录像过去。其实即使正常了php但是连接数据库等还是有问题,我最后是放弃了php。其他内容

普通用户无法su

重新配置即可,根治:把用户添加进sudoers 过程自己百度

重新配置后连不进ssh 过程中出现ssh2

LD 只配置ssh ssh2无法配置,但在配置过程中可能会遇到ssh自动转到了ssh2,这是一件很尴尬的事情,我尝试过在安卓下挂载这个img再在img内部修改配置文件,挂载失败。结论就是重装系统。我想着看到这的应该都是无技术力的,所以应该不会有技术力改LD配置让LD配置ssh2。如果你真的有这个技术力欢迎与我交流。

总结

敲个字还能把windows敲蓝屏了。前天更新的小更新,都连着蓝了两次了。文字太多了建议全看一边后在对着debug慢慢debug安装和debug基本上是保姆式的了。删除系统软件前先确定有rom备份。mt的寨板虽然没有刷机包我也是对照网上资料先备份原厂包的,有的系统应用要试一下才知道能不能删。扩容补丁前也请备份一下/system/lib。总体其实没什么难度,但是如果我当时有份文档可以少走好多弯路,希望我也能够帮助你们节省时间少走弯路。

link

LD:https://github.com/meefik/linuxdeploy/releases

busybox: https://github.com/meefik/busybox/releases

扩容指令补丁:https://lanzous.com/ibo3ung

终端模拟器: https://lanzous.com/ibo44mf

国外版es文件浏览器: https://lanzous.com/ibo4k8h

该文章由wjcwqc原创,同步到github page和
禁止转载至csdn。转载请注明出处

你可能感兴趣的:(LinuxDeploy搬砖之路)