在修改整合遵循GPLv3的Android terminal app and Linux environment:
termux时,遇到修改applicationId致使apt没法获取deb包的问题。不是常规的deb仓库制做。html
如下介绍自制的过程linux
这是termux首次安装时须要解析安装的必须的包,用于提供基本的linux environment环境,包含apt, bash, curl, dash, dpkg, libc++等。android
使用docker编译软件包nginx
export TERMUX_PREFIX=/data/data/com.bingduoduo/files/usr export TERMUX_ANDROID_HOME=/data/data/com.bingduoduo/files/home
/etc/profile
中的环境变量只存活在当前活动周期,在容器重启或者关机后环境变量就失效了。因此每次启动docker的时候都要执行上述两条命令。万一哪次忘了,那么就可能形成编译的包不能使用。/root/.bashrc
中,再次登陆依然有效termux-packages\scripts\build\termux_step_setup_variables.sh
中的: "${TERMUX_PREFIX:="/data/data/com.termux/files/usr"}" : "${TERMUX_ANDROID_HOME:="/data/data/com.termux/files/home"}"
改成c++
: "${TERMUX_PREFIX:="/data/data/com.bingduoduo/files/usr"}" : "${TERMUX_ANDROID_HOME:="/data/data/com.bingduoduo/files/home"}"
编译时容易出现的问题
编译时容易出现的主要问题是一个是build-all.sh脚本的顺序不太对,有的时候会出现依赖缺失的状况,这个时候咱们能够修改buildstatus.txt中的软件名跳过不重要的软件包
第二个问题是,部分软件包的源代码仓库已经废弃或者因为网络问题没法访问,咱们须要及时修改下载地址,使正常编译。
最常使用的备选仓库是https://www.debian.org/distrib/packages,其中有大部分debian上软件包的下载地址。git
编译好bootstrap所需的包以后,生成Package 列表:github
dpkg-scanpackages ./ /dev/null | Packages # ./ 为软件包所在目录
而后使用clone termux 提供的打包脚本:
https://github.com/termux/termux-packaging
能够选择使用Rust
写的脚原本打包, 也可使用一样功能的shell
脚本,可是两者生成的文件目录结构并不同,使用shell生成的文件结构和termux官方同样。咱们选择使用shell脚本打包:docker
bash 17 REPO_BASE_URL="https://dl.bintray.com/termux/termux-packages-24" 20 TERMUX_PREFIX="/data/data/com.termux/files/usr" 47 "${REPO_BASE_URL}/dists/stable/main/binary-${architecture}/Packages"
bash 17 REPO_BASE_URL="https://github.com/bingduoduo1/public_doc/tree/master/android24packages" #咱们选择放在github上 20 TERMUX_PREFIX="/data/data/com.bingduoduo/files/usr" # 前缀改成com.bingduoduo 47 "https://raw.githubusercontent.com/bingduoduo1/public_doc/master/android24packages/Packages" # 这个直接改为Packages的下载路径稍有不妥,可是能work
bash ./generate-bootstraps.sh --architectures aarch64
bootstrap-aarch64.zip
,能够选择放在github或者其余地放,咱们最后放在本地直接解析速度极快,省去下载步骤,虽然app变得臃肿了。urlhttps://github.com/bingduoduo1/public_doc/raw/master/bootstraps/aarch64/bootstrap-aarch64.zip
在安装完bootstrap包以后,会发现apt-get update
不可以使用,查看com.bingduoduo/usr/etc/apt/source.list
发现apt 默认的deb源仍是termux.net,为了方便用户,咱们在编译apt包的时候,将源码中的source.list相关字段修改为了咱们本身的apt源。shell
那么如何制做本身的apt源呢。bootstrap
deb http://butubs.cn/dist/stable/main/binary-aarch64 /
bingo!