酷安APP 发现科技新生活

编译内核,开启手机📱docker功能(下)

微光浮华

2022-08-04 一加8T

2.5 编辑xxx_defconfig内核配置文件开启docker支持
一般是编辑xxxx_defcofig
vim arch/arm64/configs/xxxx_defcofig
小米mix2s的为
vim arch/arm64/configs/polaris_defcofig
加入以下内容,并保存。

CONFIG_NAMESPACES=y
CONFIG_NET_NS=y
CONFIG_PID_NS=y
CONFIG_IPC_NS=y
CONFIG_UTS_NS=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_SCHED=y
CONFIG_CPUSETS=y
CONFIG_MEMCG=y
CONFIG_KEYS=y
CONFIG_VETH=y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_NETFILTER=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NETFILTER_XT_MATCH_IPVS=y
CONFIG_NETFILTER_XT_MARK=y
CONFIG_IP_NF_NAT=y
CONFIG_NF_NAT=y
CONFIG_POSIX_MQUEUE=y
CONFIG_NF_NAT_IPV4=y
CONFIG_NF_NAT_NEEDED=y
CONFIG_CGROUP_BPF=y
CONFIG_USER_NS=y
CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
CONFIG_CGROUP_PIDS=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_IOSCHED_CFQ=y
CONFIG_CFQ_GROUP_IOSCHED=y
CONFIG_BLK_CGROUP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_NET_CLS_CGROUP=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_VS=y
CONFIG_IP_VS_NFCT=y
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_RR=y
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_APPARMOR=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_VXLAN=y CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_CRYPTO=y CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_SEQIV=y
CONFIG_CRYPTO_GHASH=y CONFIG_XFRM=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_ALGO=y
CONFIG_INET_ESP=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_IPVLAN=y
CONFIG_MACVLAN=y
CONFIG_DUMMY=y
CONFIG_NF_NAT_FTP=y
CONFIG_NF_CONNTRACK_FTP=y
CONFIG_NF_NAT_TFTP=y
CONFIG_NF_CONNTRACK_TFTP=y
CONFIG_AUFS_FS=y
CONFIG_BTRFS_FS=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_BLK_DEV_DM=y
CONFIG_DM_THIN_PROVISIONING=y
CONFIG_OVERLAY_FS=y

2.6 编译内核
创建个构建脚本 build.sh并写下以下内容
vim build.sh

#!/bin/bash
make clean && make mrproper && rm -rf out
mkdir -p out
export ARCH=arm64
export SUBARCH=arm64
PATH="/root/clang+llvm-14.0.6-aarch64-linux-gnu/bin/:$PATH"
make O=out CC=clang polaris_defconfig ARCH=arm64
make mrproper
make -j$(nproc --all) O=out \ CROSS_COMPILE=aarch64-linux-gnu- \ CROSS_COMPILE_ARM32=arm-linux-gnueabi- \
CC=clang \
AR=llvm-ar \
OBJDUMP=llvm-objdump \
STRIP=llvm-strip \
NM=llvm-nm \
OBJCOPY=llvm-objcopy \
LD=ld.lld \
2>&1 | tee error.log

给予执行权限

chmod +x build.sh

开始跑编译,做好散热,可以去喝茶了或睡一觉,中间省略无数场景doge笑哭doge笑哭doge笑哭,最后在
out/arch/arm64/boot/下获得内核文件Image.gz-dtb

./build.sh

2.7 打包内核
用 anykernel3 对内核打包
可看这个
大佬LibXZR
查看链接

cd ~ && git clone 查看链接 anykernel

cd anykernel && rm -rf ramdisk &&
cp -r Image.gz-dtb /root/anykernel
vim anykernel.sh

着重改以下内容
do.devicecheck=0 是否开启设备验证 值为0。
block=/dev/block/bootdevice/by-name/boot; 改成这样别动
is_slot_device=0 是否是ab分区设备 是就写1 反之则0。
改好后保存。

小米mix2s的我改成这样,不是AB分区设备所以is_slot_device=0; 其他别动

压缩成 zip,就可以通过twrp或ex内核管理器刷入
zip -r polaris_dockerkernel.zip anykernel.sh Image.gz-dtb LICENSE META-INF modules patch tools README.md

还有一种是大佬所说的造轮子doge笑哭doge笑哭,打包内核 就是解包boot,替换内核。说实话这种成功性非常高,用那种看你自己了。可看我以前动态 这 查看链接

#刷机# #高级终端Termux# #Linux#
好,以上就是有关手机docker的全部,祝你好运,分享搞机的快乐受虐滑稽受虐滑稽受虐滑稽