Termux 资料

Termux 维基

Termux第三方中文维基

个人 Termux 软件资源备份:

通过百度网盘分享的文件:Termux
链接:https://pan.baidu.com/s/1ouhSs68coGcndMep6zioOg
提取码:user


Android 文件系统目录 结构 初步认识

​ Android系统的内核使用的是Linux内核, 所以Android的文件目录结构和Linux系统的文件目录结构类似。
​ Android系统使用虚拟文件系统(VFS), VFS的目录是以/为根节点,根节点下又有不同的节点。而我们的物理存储设备就是挂载都这些节点上,如下图所示:

这里写图片描述

粗略了解一下,然后打开MT模拟器上手看看:

(机型:Redmi Note12 Tubro)


在根目录下

  1. /data/app/ apk的安装目录。注意:该目录需要获取root权限才能查看

  2. /system/app/ 存放系统必要应用的apk文件

  1. /storage/ 该节点是内置存储卡和外置SD卡的挂载点,/storage/emulated/0/是内置存储卡挂载点, /storage/sdcard1是外置SD卡挂载点(不同的设备挂载节点不一样,有些设备可能会挂载到/mnt/节点)。

就先了解这三个。


接下来看看opencv试试(逝世)

Android跑OpenCV-Python

我们将使用termux

最好在f-droid上下载termux而不是在GooglePlay(GooglePlay上是已不受支持的旧版本)

termux介绍:

termux本体包括termux中所作所有内容全部储存在/data/data/com.termux/files/home下,能够直接整体卸载

直接进入termux,开始敲代码:

1
2
# Python环境
pkg instal python
1
2
# python下opencv环境
pkg install opencv-python
1
2
# 使用termux内置的nano编辑器 (新建)进入first.py文件
nano first.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# first.py 内容
import cv2

# 创建一个VideoCapture对象,参数0表示使用第一个摄像头
cap = cv2.VideoCapture(0)

# 检查摄像头是否成功打开
if not cap.isOpened():
print("无法打开摄像头")
exit()

# 创建一个无限循环来持续获取视频帧
while True:
# 读取一帧
ret, frame = cap.read()

# 如果正确读取帧,ret为True
if not ret:
print("无法读取帧")
break

# 显示帧
cv2.imshow('实时视频流', frame)

# 按下'q'键退出循环
if cv2.waitKey(1) == ord('q'):
break

# 释放VideoCapture对象
cap.release()
# 关闭所有OpenCV窗口
cv2.destroyAllWindows()
1
# 文件编辑完成后,Ctrl+O保存,再回车确认,再Ctrl+X退出编辑

打开文件后,下方有一堆文字,那就是快捷键说明。例如:^G 即为 Ctrl+G ,功能为显示帮助文本。

  • Ctrl+G,显示帮助文本
  • Ctrl+O,保存当前文件
  • Ctrl+R,读取其他文件并插入光标位置
  • Ctrl+Y,跳至上一屏幕
  • Ctrl+K,剪切当前一行
  • Ctrl+C,显示光标位置
  • Ctrl+X,退出编辑文本
  • Ctrl+J,对其当前段落(以空格为分隔符)
  • Ctrl+W,搜索文本位置
  • Ctrl+V,跳至下一屏幕
  • Ctrl+U,粘贴文本至光标处
  • Ctrl+T,运行拼写检查
  • Ctrl+_,跳转到某一行
  • ALT+U,撤销
  • ALT+E,重做
  • ALT+Y, 语法高亮
  • ALT+#,显示行号
1
2
# 运行 first.py
python first.py

这个时候无法打开摄像头:

1
2
# 安装termux api接口
pkg install termux-api

使用如下命令行替换官方源为 TUNA 镜像源

1
2
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.list
apt update && apt upgrade

termux换源


因为Android14对于data/data文件夹的访问以及操作限制,折腾了半天,


termux如何删除文件 - CSDN文库


退出交互式Python:exit()


对于import cv2 报错问题的解决:

[Bug]: OpenCV is not working · Issue #20334 · termux/termux-packages (github.com)

1
pkg install x11-repo
1
pkg install matplotlib
1
pkg install opencv

termux-api-start

启动termux-api


1
2
# root 权限
pkg install root-repo

termux 安装 ubuntu

1
2
# proot-distro,是一段bash脚本,用于在Termux中管理与安装proot下Linux发行版。
pkg install proot-distro
1
2
# 查看可安装的linux系统
proot-distro list
1
2
# 安装 ubuntu 22.04 lts
proot-distro install ubuntu-oldlts
1
2
# 进入 ubuntu 22.04 lts 环境
proot-distro login ubuntu-oldlts
1
2
# 退出环境
exit
1
2
# Linux 创建普通用户example
useradd -d /home/example -m example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 密码示例
root@localhost:~# cd /home
root@localhost:/home# ls
example
root@localhost:/home# ls -l
total 4
drwxr-x---. 2 root root 3452 Aug 8 11:02 example
# 给用户example创建密码
root@localhost:/home# passwd example
New password: 123456
Retype new password: 123456
passwd: password updated successfully
# 给root用户创建密码
root@localhost:/home# passwd
New password: 123456
Retype new password: 123456
passwd: password updated successfully
root@localhost:/home#

配置 Ubuntu 桌面

1
2
3
4
5
6
7
8
9
apt-get update && apt-get install wget -y && wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/DesktopEnvironment/Apt/Xfce4/de-apt-xfce4.sh --no-check-certificate && bash de-apt-xfce4.sh

"""""""""""
1. apt-get update:更新软件包索引文件,确保您拥有最新的软件包列表和版本信息。
2. apt-get install wget -y:安装 wget 工具,-y 参数表示自动回答所有提示为“是”,以便安装过程无需用户干预。
3. wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/DesktopEnvironment/Apt/Xfce4/de-apt-xfce4.sh --no-check-certificate:使用 wget 下载名为 de-apt-xfce4.sh 的脚本。--no-check-certificate 选项告诉 wget 在不验证服务器 SSL 证书的情况下继续操作,这在服务器使用自签名证书或您在没有访问证书颁发机构证书的环境中工作时可能很有用。
4. bash de-apt-xfce4.sh:使用 bash 执行下载的脚本。
de-apt-xfce4.sh 脚本似乎是自动化安装 Xfce4 桌面环境和 VNC 服务器,允许您通过 VNC 查看器远程访问桌面环境。
""""""""""""
1
2
3
4
5
安装好--初始化
--选键盘布局--中国
--选键盘布局--中文普通话
--继续初始化
--选择所处的地理位置,后续的配置问题将缩小范围
1
2
vncserver-start
vncserver-stop
1
2
3
The VNC Server will be started at 127.0.0.1:5901
You can connect to this address with a VNC Viewer you prefer
Connect to this address will open a window with Xfce4 Desktop Environment

最后会出现设置输入桌面系统密码,该密码用于连接VNC Viewer软件。

按照提示会输入四次

1
2
3
4
5
6
7
8
9
10
11
12
13
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:
xauth: file /root/.Xauthority does not exist
New 'remote-desktop' desktop is localhost:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost:1.log

root@localhost:~#

当出现 root@localhost:~# 即代表安装桌面系统完成。

注意:img

生成的 localhost:1VNC Viewer软件连接Ubuntu桌面系统的Address。

转到 VNC Viewer –

– VNC Viewer:New connection

– Address:localhost:1

– Name:Ubuntu

–connect–ok

点击右上角的 叉号,即可退出VNC Viewer,但注意此时并未完全退出,需要在 Termux的linux系统 (即root@localhost:~# 后 )输入:

1
vncserver-stop

才可以彻底的退出VNC Viewer。(为再次进入做好前提条件)

然后在需要在 Termux的linux系统 (即root@localhost:~# 后 )输入:

1
vncserver-start

才具备再次进入VNC Viewer桌面的前提条件。


Termux Linux 环境

启动!
1
2
# 进入 ubuntu 22.04 lts 环境
proot-distro login ubuntu-oldlts
1
2
# (如果需要图形化界面)进入 vnc 桌面
vncserver-start
退出
1
2
# 退出 vnc 桌面
vncserver-stop
1
2
# 退出 linux
exit

任务:用opencv从摄像头获取视频流
1
2
3
# root下
apt update
apt-get install python3-opencv
1
2
3
4
5
cd /root/Desktop
mkdir example && cd example

# 结果:还是打不开摄像头。。。
暂时放弃了。。。