banner
late autumn

lateautumn

一个什么都不会的职中生
github
email
telegram
bilibili

Android原生运行Lxc

image.png
简介:
LXC 是一种操作系统层虚拟化技术,为 Linux 内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器,内含应用软件本身的代码,以及所需要的操作系统核心和库。


1. 编译内核#

1.1. 调整内核配置#

使用此仓库快捷添加配置

git fetch https://github.com/lateautumn233/android_kernel_docker main
git merge -s ours --no-commit --allow-unrelated-histories --squash FETCH_HEAD
git read-tree --prefix=docker -u FETCH_HEAD
echo "source \"docker/Kconfig\"" >> arch/arm64/Kconfig
git commit -a -m "Imported docker/ from https://github.com/lateautumn233/android_kernel_docker"

然后再自行编译
🥵🥵🥵

1.2. 内核补丁#

1. 修复可能存在的 panic 情况

2. 修复 cgroup 缺少 cpuset 前缀

3. 禁用 ANDROID_PARANOID_NETWORK

scripts/config --file arch/arm64/configs/<defconfig> -
d ANDROID_PARANOID_NETWORK

1.3. 检查内核配置#

生成完整内核配置后检查

wget https://raw.githubusercontent.com/lxc/lxc/main/src/lxc/cmd/lxc-checkconfig.in -O lxc-checkconfig
chmod a+x lxc-checkconfig
CONFIG=out/.config lxc-checkconfig

具体编译内核
以下省略 n 字

2. 安装 lxc 模块#

下载此magisk 模块安装并重启

2.1. 启动 lxc 容器#

随便找一个终端软件执行

. /data/lxc/env.sh

创建容器

lxc-create -t download -n my-container -- --server mirrors.tuna.tsinghua.edu.cn/lxc-images
# 依次填入发行版 版本号 架构
# 然后启动
lxc-start -n my-container -d -F

调整 lxc 容器密码

chroot path /bin/su -
lxc-attach -n my-container passwd

2.1. 配置网络#

(可选,默认 veth 可以不修改)

2.1.1 使用 host 模式#

sed -i 's/lxc\.net\.0\.type = veth/lxc.net.0.type = none/g' /data/lxc/etc/lxc/default.conf

喵喵喵喵喵

参考文章:#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。