在 Android 5.x.x-6.x.x 使用 Termux

文章介绍了如何在不再受支持的Android5.x.x-6.x.x系统上安装Termux的旧版本v0.79,并提供了换源、更新和升级的步骤。此外,还提到了在Termux中进行C/C++开发时可能遇到的链接器警告以及如何使用termux-elf-cleaner清除这些警告。

在 Android 5.x.x-6.x.x 使用 Termux

安装Termux

由于Termux已经在2020年1月1日的v0.83版本中结束了对Android 5和6的支持,在此之后仅支持Android >=7的版本,但在2022年5月24日Termux又重新添加了对Android 5和6的支持:Enable support for android 5/6 for termux-app #2740

有两种方法安装适配Android 5和6的Termux,一种是下载安装重新添加支持的版本,此版本持续维护,也是官方推荐使用的版本;还有一种方法是使用在 archive.org 上归档的v0.79版本(需要科学上网):Termux v0.79 下载,此归档版本已很久未更新,软件库也很老旧了,官方不推荐使用。详见:Termux on android 5 or 6

下文将介绍这两种版本Termux的下载及使用。

方法一:使用重新添加支持的版本(推荐)

此版本持续维护,使用起来更方便,软件库更新,推荐使用。

下载重新添加支持的版本

可以下载自动化构建的版本,也可以下载发布版本,二选一即可。

(1)下载自动化构建的版本

可以在自动化构建生成的Artifacts中找到Android 5的版本下载

首先打开 https://github.com/termux/termux-app/actions/workflows/debug_build.yml?query=branch%3Amaster+event%3Apush,然后点开最新一个的工作流就能找到自动化构建生成的Artifacts:

在这里插入图片描述
点击下载termux-app_v0.118.0+c6e2ca7-apt-android-5-github-debug_universal得到压缩包,解压后得到.apk安装包进行安装。

(2)下载发布版本

也可以从Releases页面下载支持Android 5和6的发布版本:

在这里插入图片描述
下载后安装,然后更新及升级软件包即可正常使用:

apt update && apt upgrade

方法二:使用archive.org上归档的0.79版本(不推荐)

此归档版本已很久未更新,软件库也很老旧了,要手动换源,使用起来有些小毛病,故不推荐使用。

首先下载0.79版本

下载 Termux v0.79 后安装。

换源及更新升级

需要更换四个官方源和一个第三方源,如果下载可能很慢可以科学上网

Termux官方包

its-pointless第三方库

换源脚本:

cd ~
export apt_path=$PREFIX/etc/apt

# 换官方源
echo "deb https://packages.termux.dev/termux-main-21/ stable main" > $apt_path/sources.list
echo "deb https://termux.dev/game-packages-21-bin games stable" > $apt_path/sources.list.d/game.list
echo "deb https://termux.dev/termux-root-packages-21-bin root stable" > $apt_path/sources.list.d/root.list
echo "deb https://termux.dev/science-packages-21-bin science stable" > $apt_path/sources.list.d/science.list

# 添加第三方源its-pointless
curl -o setup-pointless-repo.sh https://its-pointless.github.io/setup-pointless-repo.sh
chmod 777 setup-pointless-repo.sh
./setup-pointless-repo.sh

# 更新并升级
apt update && apt upgrade

然后就可以开始 Termux 之旅了

C/C++开发(可选)

安装 clang

apt install clang

写一个简单的程序然后编译,编译可能会遇到以下输出,可以忽略

$ gcc -o test test.c
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libdl.so: .dynsym local symbol at index 3 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libdl.so: .dynsym local symbol at index 4 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libdl.so: .dynsym local symbol at index 5 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libdl.so: .dynsym local symbol at index 6 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libdl.so: .dynsym local symbol at index 7 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libdl.so: .dynsym local symbol at index 8 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libdl.so: .dynsym local symbol at index 9 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libc.so: .dynsym local symbol at index 3 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libc.so: .dynsym local symbol at index 4 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libc.so: .dynsym local symbol at index 5 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libc.so: .dynsym local symbol at index 6 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libc.so: .dynsym local symbol at index 7 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libc.so: .dynsym local symbol at index 8 (>= sh_info of 3)
/data/data/com.termux/files/usr/bin/aarch64-linux-android-ld: /system/lib64/libc.so: .dynsym local symbol at index 9 (>= sh_info of 3)

运行编译得到的程序

$ ./test
WARNING: linker: ./test: unused DT entry: type 0x6ffffef5 arg 0x2e0
Hello Termux!

如果出现类似于WARNING: linker: ./test: unused DT entry: type 0x6ffffef5 arg 0x2e0的警告(不影响正常使用),可以通过termux-elf-cleaner工具清除

安装 termux-elf-cleaner

apt install termux-elf-cleaner

清除程序的 unused DT entries 警告

termux-elf-cleaner ./test

输出

termux-elf-cleaner: Removing the DT_GNU_HASH dynamic section entry from './test'

清除后再运行程序就不会出现类似的警告了

其他扩展应用

Termux的其他扩展应用,如 termux-api, termux-boot, termux-styling 等官方应用可以在归档中下载

https://archive.org/download/termux-repositories-legacy

参考资料

  1. termux-repositories-legacy
  2. Termux Packages
  3. Warnings about unused DT entries
  4. Updates for its-pointless
  5. termux-app installation
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值