每小时进行5分钟的活动,能降低患上许多致命疾病的风险。——《程序员健康指南》
简介
使用Linux Deploy唯一的好处就是可以充分利用废弃的手机,而且手机具有省电,便捷的特点。安装了Linux之后,完全可以满足基本的学习Linux的需要,而且还不怕把系统搞死,大不了重装咯。ʅ(´◔౪◔)ʃ
- 其他方案
方案 | 说明 |
---|---|
Linux on Android | The Complete (GNU) Linux Installer for Android devices。可惜我手机不支持,不能试。 |
Linux on Android资源下载地址 | 包含了Ubuntu、Kali等等的系统镜像和脚本。 |
UserLAnd | 在Google Play Store中可以搜索到该应用。可以看看这边文章的介绍:How to Run Linux on Android Devices |
Chrome | 在OS X, Linux and Windows的Chrome上运行APK应用 |
ARChon | 使用ARChon运行时环境在Ubuntu上运行Android应用 |
AidLearning-FrameWork | 带图形界面的Linux运行在android手机上,内置caffe/tf/mxnet/pytorch |
准备工作
- 下载Linux Deploy
- 下载BusyBox
- 注意:必须使用同一个作者开发的东西:Linux Deploy和BusyBox来安装,不然会缺指令。
- 可以看看如何在Android 7 上安装:MIUI9 开发版 busybox安装,需要root,可以看下一小节的内容。
- 安卓手机一台,配置不用很高,我是在酷派8702d(移动送的垃圾手机)上跑出了Linux
- 配置:架构:armv7
- RAM:512
- CPU:4核1.2Hz
- 系统:Linux Kali sana
- 桌面环境:XFCE
- 说明:我自己增加了swap脚本,所以运行无压力。
下面是我是用的swap.sh,给脚本执行权限,在安卓机上执行就可以了,执行过一次后,将
mkdir -p /cache/swap
dd if=/dev/zero of=/cache/swap/swapfile bs=1024 count=460800
注释掉。在每一行前面加#注释掉即可。这里bs是块大小,count是总大小,bs*swap大小=count。
#mkdir -p /cache/swap
#dd if=/dev/zero of=/cache/swap/swapfile bs=1024 count=460800
完整脚本swap.sh
#!/system/bin/sh
mkdir -p /cache/swap
dd if=/dev/zero of=/cache/swap/swapfile bs=1024 count=460800
busybox mkswap /cache/swap/swapfile
busybox swapon /cache/swap/swapfile
附:如何用re管理器运行*.sh?
1、打开re管理器,将 *.sh
移动到/data/local/
中(随你,反正我都是放这里的,方便找)
2、长按 *.sh
文件,在弹出的dialog中找到权限设定,赋予其执行权限(执行那一列全打钩就好了)。
3、之后直接单击*.sh
文件,执行,就好了。可能要等很久,这视你创建的swap文件大小而定,等到出现以下信息即可。
Setting up swapspace version 1,size = XXX bytes UUID = XXX
小米手机
最近突发奇想,想要拿旧手机来重新安装下试试,发现小米Android 7.0的系统的获取ROOT权限是真的麻烦,本小节记录了作者在这个过程的尝试。
【原创】小米手机获取完整ROOT权限教程
- 第一步:root。
- 「卡刷」在小米官网的rom下载页面寻找对应机型的rom,下载开发版本的rom,挪到手机上的download_rom的目录。之后再系统的
设置-我的设备-MIUI版本
点击图标(比如MIUI 10的大log)10次,就可以解锁安装开发版本的权限。在当前界面(MIUI版本)的右上角选择「手动选择安装包」,选择我们刚才下载的开发版本的rom,安装即可。 - 「线刷」请见:通用线刷教程。
- 「卡刷」在小米官网的rom下载页面寻找对应机型的rom,下载开发版本的rom,挪到手机上的download_rom的目录。之后再系统的
- 第二步:解锁MIUI。
- 到小米官网的解锁页面查看教程,按照教程解锁。Mac电脑可以用XiaoMiTool V2 download来解锁。
- 附录:小米手机 在 mac 下怎么 root?
- 第三步:手机上点击
手机管家-应用管理-权限-ROOT权限管理
,等待安装完ROOT Rom即可使用Root权限。
获取完整权限
这一小节的内容可以在这篇小米手机 在 mac 下怎么 root?文章中看到。
- 刷入TWRP,可以在官网https://twrp.me/下载,也可以使用小米刷机助手XiaoMiTool V2 download来安装。
- 搞定之后,使用TWRP刷入Magisk即可。
- Magisk:https://github/topjohnwu/Magisk
关于救机
备份下我旧机器的ROM:Redmi Note4X - AndroidOne,红米Note4系列历史稳定版刷机包汇总、红米Note4X刷机包汇总(2019/05/20整理)。
小米3:小米3/4、ZUK Z2 Plus Android 10定制ROM上线,老机型刷起来……可惜手机报废了,没办法试试了。
小米5:【小米5】MIUI 9 MIUI 10 官方ROM历史刷机包汇总、小米5刷机包
fastboot指令 | 说明 |
---|---|
fastboot device | 手机处于FASTBOOT模式,输入指令后展示为4732dac10104 fastboot ,则设备正常。 |
fastboot update update.zip | 更新系统。 |
fastboot flash boot boot.img | 输入boot镜像。 |
fastboot flash system system.img | 输入系统镜像。 |
fastboot flash recovery recovery.img | 输入recovery镜像。 |
- 如果你的手机变砖了,可以使用官方提供的线刷包:红米Note4X刷机包汇总(2019/05/20整理)。
- 下载之后解压
mido_images_9.5.16_20190516.0000.00_7.0_cn_4015b9c2e8.tgz
,目录结构如下所示:
➜ mido_images_9.5.16_20190516.0000.00_7.0_cn tree
.
├── flash_all.bat // 重刷所有分区的数据,Windows使用
├── flash_all.sh // 重刷所有分区的数据,Unix系列的系统使用,包括OS X和Linux
├── flash_all_except_storage.bat
├── flash_all_except_storage.sh
├── flash_all_lock.bat
├── flash_all_lock.sh
├── flash_all_lock_crc.bat
├── flash_all_lock_crc.sh
├── flash_factory.bat
├── flash_factory.sh
├── flash_gen_crc_list.py
├── flash_gen_md5_list.py
├── flash_gen_resparsecount
├── images
│ ├── NON-HLOS.bin
│ ├── adspso.bin
│ ├── boot.img
│ ├── cache.img
│ ├── cmnlib.mbn
│ ├── cmnlib64.mbn
│ ├── crclist.txt
│ ├── ***.img(省略,太长了)
│ └── userdata.img
├── md5sum.xml
└── misc.txt
- 使用
./flash_all.sh
就可以救机了~O(∩_∩)O
➜ mido_images_9.5.16_20190516.0000.00_7.0_cn ./flash_all.sh
product: mido
(bootloader) Device unlocked: true
......(我觉得你们不会看的)......
Finished. Total time: 15.147s
Rebooting OKAY [ 0.006s]
Finished. Total time: 0.006s
安装
下面的设置说明和部署设置都是Linux Deploy的。
安装成功的极简配置
安装类型 | 成功 | 原因 |
---|---|---|
镜像文件 | ✅ | |
目录 | ❌ | 找不到/bin/sh |
分区 | ✅ | 最靠谱的方案,没有之一 |
RAM | 没试过 | |
自定义 | 没试过 |
镜像文件
- 左上角按钮
- PATH 变量:
/sbin
,需要使用BusyBox安装指令到/sbin
路径,然后在Linux Deploy中配置为一致的路径。Android 7.0实验通过。 - 更新操作环境
- PATH 变量:
- 右下角按钮
- 发行版:Ubuntu
- 架构:armhf
- 发行版 GUN/Linux 版本:xenial
- 源地址:
http://mirrors.ustc.edu/ubuntu-ports
- 安装类型:镜像文件
- 安装路径:
${EXTERNAL_STORAGE}/linux.img
- 用户密码:自己改
- 启用SSH服务器:✔️
- 允许使用音频输出:✔️
- 允许使用图形环境:✔️
- 图形子系统:VNC,VNC的密码和用户密码一致,端口号为5900
- 桌面环境:LXDE
参考自:Android 搭建Linux系统
分区
- 制作分区
- 使用工具(可以使用TWRP或者是Windows上的软件)将SD卡分为FAT32、EXT4(安装Linux)、SWAP。
- 使用
adb
或者是其他一些命令行工具找到分区号- 根据分区的的顺序,可以依次找出对应的分区。
mido:/dev/block # ls | grep mmcblk1 # 找出我们制作好的分区
mmcblk1
mmcblk1p1 # FAT32
mmcblk1p2 # EXT4
mmcblk1p3 # SWAP
- 其他配置参照
镜像文件
,安装类型改为分区
,安装路径改为mmcblk1p2
,之后点击右上角按钮安装即可。
设置说明
各项设置说明 | 设置选项 | 说明 |
---|---|---|
设置1 | 锁定屏幕 | 这个根据个人喜好可以选择开启,推荐关闭,因为你要对linux进行操作的话用的是VNC Viewer或者ssh,和Linux Deploy没半毛钱关系,关了吧。 |
设置2 | 锁定Wi-Fi | 这个推荐开启,防止vnc或者ssh突然掉线,关闭wifi也是可以在本地操作linux的。 |
设置3 | 语言 | 选择简体中文后,退出软件再次进入即可完成语言切换。 |
设置4 | 字体大小 | 自带终端的字体显示大小,根据个人喜好调整,默认12。 |
设置5 | 滚动大小 | 自带终端最大保留数据行数,默认100行。 |
设置6 | 主题 | 分为暗色和亮色,根据个人喜好调整。 |
设置7 | 显示图标 | 推荐开启,防止后台被系统杀掉。 |
设置8 | 开机启动 | 推荐关闭。 |
设置9 | 环境目录 | Linux Deploy的系统环境目录,不推荐修改。 |
设置10 | 内置终端 | 默认开启即可。 |
设置11 | 建立符号链接 | 关了就行了。 |
设置12 | 更新环境 | 在设置完成后需要运行一次,如果有修改设置9的话,需要在修改后再次运行一次。 |
设置13 | 移除环境 | 在修改设置9前执行一次这个选项。 |
设置14 | 调试模式 | 显示各种调试信息。 |
设置15 | 跟踪模式 | 我个人理解为设置14的加强版,显示数据量更多,包括各种后台的操作命令都显示出来了。 |
设置16 | 日志 | 是否选择记录终端操作日志,推荐关闭,根据个人喜欢选择。 |
设置17 | 日志文件 | 给设置16选择一个保存目录。 |
部署设置
设置项 | 说明 |
---|---|
发行版 | 包括很多了,我选的是Kali。 |
发行版版本 | 发行版代号。 |
架构 | 根据处理器不同,需要选择不同的架构,一般自动认识别出当前CPU架构并选择。 |
镜像地址 | 默认是发行版的官方默认源,都是国外的,可以自己设定国内的源。比如 Debian,可以设定Debian中国官方源http://ftp.debian/debian/。可见 - 源地址推荐 |
安装类型 | 默认选择文件即可。(文件相对比较慢,分区比较快;成功率最高的是目录和分区。) |
安装路径 | 这个设置会比较麻烦,很多机器默认是/storage/emulated/0/ 等等这种类型,这种的特别容易出现读取错误的情况,推荐修改为/sdcard/xxx 的格式,xxx 可以是自定义的存储目录,当然你直接把img镜像安存储器根目录也没什么不可以。 |
镜像大小 | 这个得依照你存储器的文件系统和剩余空间大小来定了,如果是FAT32的文件系统那最大设置不能超过4095MB,但是exFAT或者Ext4的就没这个限制,只要你空间够,设置多大都可以。 |
用户名 | linux用户名,不用多说。 |
User password | linux用户密码,默认是android,之后系统的登陆密码就是这个。 |
DNS服务器 | 这个一般不用填了。 |
本地化 | 就是linux的locale设置,中文的话就是zh_CN.UTF-8。 |
桌面环境 | 默认是LXDE,我选的Xfce,如果有自信的话可以试试其他的,反正我就XTerm、LXDE、Xfce能正常运行,其他全是x-server崩溃,不知道什么原因。 |
选择组件 | 桌面环境根据个人喜好选择,如果不选桌面环境VNC服务器就无法运行,上面选的桌面环境也不会安装。SSH推荐选上,Android上操作linux还是命令行用起来容易些。 |
Chroot目录 | 这个设置不用管。 |
SSH | 推荐开启,使用JuiceSSH 或者ConnectBot SSH 进行管理很方便。 |
SSH设置 | 调整SSH服务端口号,默认22,不推荐修改。 |
图形界面 | 要是安装了桌面环境和VNC服务器就开启吧。 |
图形子系统 | 默认VNC,其他两个我不会设置就不做介绍了。 |
图形化界面设定 | 颜色深度改为24 ,DPI不动,长宽自行根据机器情况进行调整。 |
自定义脚本 | 我没用过… |
自定义挂载 | 推荐开启,可以访问机器的存储。 |
挂载点 | 挂载目录的绝对路径,直接设置根目录/也没什么不好,在linux中可以cd /mnt 进行访问和管理。 |
安装过程
- 首先,安装BusyBox,打开之后BusyBox后,安装BusyBox提供的工具集。
- 安装了Linux Deploy后,打开,如下图,
假如你需要中文,点击左上角的按钮,找到Setting -> language -> 简体中文。 - 之后,点击左下角下载图标,
- 下面演示的是安装类型是文件的教程。
这里的安装路径自行定义成绝对路径,不知道路径的可以下载re管理器进行查看。需要注意的是在SD卡中限制最大大小为4096M,比较小,假如你需要更多的内存,可以使用分区安装。 - 推荐:分区安装。首先,你需要有外置SD卡,使用分区软件将SD卡分成两个区,一个是FAT32格式的(内存卡默认格式),一个是EXT4(最好是EXT4格式的,当然你要EXT2或者EXT3也是可以的),EXT4分区用来安装Linux。
- 在Deploy Linux中设置安装类型为分区
- 安装路径为
/dev/block/mmcblkXpY
- X表示是那一块内存,系统的默认为
0
,内存卡默认为1
; - Y表示当前内存的分区位置,可以用re管理器在
/dev/block
中查看你的分区的位置。 - 文件系统选择EXT4(最好是EXT4格式的,当然你要EXT2或者EXT3也是可以的)
- X表示是那一块内存,系统的默认为
- (内置的我不知道怎么弄,但是有一个软件Apps2SD,自带分区功能)
-
点击安装即可。
- 说明:
- 安装(重装)的时候需要按最下面的停止按钮一次。
- 要是改了右下角的下载图标的配置,就要点击左上角的配置,让设置生效。
-
安装过程根据网速不同时间长短不定,当安装完成后会出现
deploy>>......<<deploy
两者之间没有错误信息,并且是有内容的。
-
点击启动,就可以在Android手机使用Linux了。
Linux的使用
Linux Deploy是不提供终端的,所以我们需要自己下载终端模拟器,常见的有以下这些:
手机端
- ConnectBot SSH登陆客户端
- 默认端口是22,也可以在设置里面设置为其他的。要使用SSH功能需要在右下角的下载图标->SSH Enable那里打勾。
- 默认登陆指令:
- ssh 用户名@ip地址:端口(Linux中)
- IP地址在标题栏[X.X.X.X]
- 在ConnectBot中单单需要填用户名@ip地址:端口
- 终端模拟器
- 默认登陆指令:
- telnet ip 端口
- 默认登陆指令:
window
Window端需要下载一个PUTTY。
密码登陆
假如你的linux不设置密钥登陆,使用密码登陆的话。
直接填入ip地址,确认即可登陆。IP在Linux Deploy页面的状态栏,被挡住了请关闭竖屏锁定,横屏即可看到了。
密钥登陆
1.填入地址:
2.填入主机名(你的Linux 用户名):
3.下面一步我们需要另外一个软件PUTTYgen生成*.ppk文件,在下面这张图右边Brower哪里导入使用的。
4.打开PUTTYgen。
5.导入你的密钥,并生成*.ppk文件。生成好了后,返回步骤3,Brower进去,确认即可。
Linux
linux是最简单的,直接在终端执行ssh 用户名@ip地址:端口
语句即可。
源地址推荐
- 中科大 - http://mirrors.ustc.edu/Linux`s Name/
- 阿里云 - http://mirrors.aliyun/Linux`s Name/
- 比如:
http://mirrors.aliyun/kali/
- 比如:
选择桌面
- Linux 公社 - 5款最佳Linux桌面环境的优缺点比较
- 脚本之家 - linux桌面环境gnome,kde,xfce,lxde 使用比较
- tao546377318的博客 - kali切换桌面环境
- 这个是安装教程,我就不赘述了。
- 推荐使用XFCE
可以使用
update-alternatives --config x-session-manager
切换桌面。
VNC
安装完桌面,我们可以使用VNC来可视化。
对于VNC和SSH服务器的设置,如果是在手机上操作的话,地址可以直接填localhost
,端口号SSH默认是22
(前面修改了的自己调整),VNC端口号为执行vncserver
后提示的端口号,一般为1
。
- VNC Viewer
注意: Kali有些版本是自带vncserver的,可以使用执行vncserver查看是否安装了。
1.在Linux Kali上安装vnc4server(debian系列通用)
sudo apt-get install vnc4server
2.启动vnc4server,输入vnc4server此时系统会提示你输入密码,在通过客户端链接时将会用到这个密码。
You will require a password to access your desktops.
Password:<-这里要求输入密码
Verify:<-核对密码
xauth: file /root/.Xauthority does not exist
New 'localhost:1 (root)' desktop is localhost:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost:1.log
设置完之后,我们需要修改xstartup
的配置
vim /root/.vnc/xstartup
之后,修改文件,下面是XFCE桌面环境的。
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#这里我安装的是XFCE的,如果不是这个,请注意修改下面这一句。
startxfce4 &
要是需要修改vnc界面参数,可以修改/etc/vnc.conf
文档进行设置。
VNC常见错误
Kali中VNC遇到的错误
假如遇到了这种问题:(这个错误前提是你安装了vncserver,但是你不小心删了vncpasswd这个文件,就会出现这个错误了)
root@localhost:~/.vnc# vncserver
You will require a password to access your desktops.
vncserver: Couldn't find "tigervncpasswd" on your PATH.
Please install the tigenvnc-common package, i.e., sudo apt-get install tigenvnc-common.
只需要下载一个东西就行了。在终端输入
apt-get install vnc-server
终端显示:
root@localhost:~/.vnc# apt-get install vnc-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package vnc-server is a virtual package provided by:
tigervnc-xorg-extension 1.7.0+dfsg-2
tigervnc-standalone-server 1.7.0+dfsg-2
tigervnc-scraping-server 1.7.0+dfsg-2
You should explicitly select one to install.
E: Package 'vnc-server' has no installation candidate
之后,直接选第一个安装即可,因为我们缺少的就是vncpasswd这个组件。
apt-get install tigervnc-xorg-extension
- 附上:rpm系的安装方法。
- 老左博客 - 完整Linux VPS(CentOS)安装VNC+XFCE可视化桌面环境 附安装FireFox浏览器
- 四月一日君的博客 - [转载]Linux上VNC 启动和关闭 已经常见问题
- secooler 快乐的DBA - 【VNC】修改VNC分辨率大小
Linux使用
- Linux安装常用软件
- 安装常见的Linux软件,配置常见的开发环境,美化等。
Kali Linux
Kali安装常见软件
- kali linux常用安装软件
- Enweitech Software Works - 安装 Kali Linux 后需要做的 20 件事
- 安装 Kali Linux 后需要做的 20 件事
- 这里有几个东西是我喜欢的,比如Tor。
- Curllen的博客 - 关于 kali linux2016 安装中文版firefox
- 安装火狐浏览器:apt-get install iceweasel-l10n-zh-cn
- kali Linux添加add-apt-repository
Kali 汉化
如果没有安装locale工具,则首先要安装它,修改/etc/locale.gen
内文件,以en
或zh
前面#
删除掉。然后执行
dpkg-reconfigure locales
选择语言包。需要添加上zh_CN开头的几个选项,当然你也可以只添加一个,然后,选择其中的一个作为默认。设置完成后,执行locale命令检查一下当前的locale设置是否为中文了。
终端执行下面命令:
echo "LANGUAGE=zh_CN:zh:en_US:en" >> /etc/environment
echo "LC_CTYPE=zh_CN.UTF-8" >> /etc/environment
echo "LANG=zh_CN.UTF-8" >> /etc/environment
如果我们重启桌面后,发现整个系统的界面显示的还是英文。使用locale命令检查系统的locale设置,发现已经配置为中文。
假如你遇到了某些应用的标题等显示为中文,但是工具菜单等显示和文件管理器等都显示成了英文。这种情况很有可能是因为/etc/enviroment
文件里有关语言的环境变量的设置不对。打开/etc/enviroment
文件,通常会发现下面两个字段:
LANGUAGE="en_US:en"
LANG="zh_CN"
在LANGUAGE字段添加中文的设置,比如:
LANGUAGE="zh_CN:zh:en_US:en"
中文环境当然需要中文字体的支持,手工添加中文的xft字库。详见下方安装文泉驿字:
- Kali Rolling更新源,安装open-vm-tools-desktop/文泉驿字
安装后,重启桌面即可享用中文版Linux Kali了
Debian
- 源地址推荐:http://mirrors.ustc.edu/debian/
- 发行版:Jessie
安装Lnmp
ヽ(°◇° )ノ注意:一定要改完再执行install.sh
或者upgrade.sh
。
在安装lnmp的时候,需要修改脚本文件,主要是在Lnmp
主目录下的include
下的php.sh
和upgrade_php.sh
都需要更改。主要原因是因为Android(树莓派同理,也是要改脚本的。o(︶︿︶)o 唉)不支持ZendOptimezer
和ZendLoad
。反正在vim或者vi编辑器中搜索zend,有的全部删除。删除内容如下图:从cd 行开始删除到EOF行(包括EOF行)。删除好了执行install.sh
或者upgrade.sh
即可。
最终效果
XFCE
LXDE
附录
- 脚本之家 - ubuntu下安装VNC远程桌面的详细步骤
- Linux公社 - Linux deploy 使用教程
- 基于debian或debian衍生版英文系统切换为中文
更多推荐
用Linux Deploy在Android手机上安装Linux
发布评论