21
05月
2025
摘要:在Android手机中使用chroot运行Ubuntu20.04 rootfs根文件系统时,apt install和ping都没法访问网络。
1、进入根文件系统,运行chroot。
cd rootfs
mount -t proc proc proc/
mount -t sysfs sys sys/
mount -o bind /dev dev/
mount -o bind /dev/pts dev/pts/
chroot . /bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH
2、把root加入到以下组
groupadd -g 3001 aid_net_bt_admin
groupadd -g 3002 aid_net_bt
groupadd -g 3003 aid_inet
groupadd -g 3004 aid_inet_raw
groupadd -g 3005 aid_inet_admin
gpasswd -a root aid_net_bt_admin
gpasswd -a root aid_net_bt
gpasswd -a root aid_inet
gpasswd -a root aid_inet_raw
gpasswd -a root aid_inet_admin
3、添加dns解析
/etc/resolv.conf
nameserver 8.8.8.8
4、测试ping和apt命令是否可以访问网络
1)、ping www.baidu.com #这个可以访问
2)、apt update #访问报错
5、解决apt访问报错问题
问题是APT使用_apt作为我们的非特权用户,Android上的偏执网络,只有当用户在组3003 aid_inet or 3004 aid_inet_raw中才能访问网络的套接字。
当apt安装时它会创建一个_apt的用户。所以我们要把_apt用户加入到aid_inet或者aid_inet_raw组。
usermod -a -G aid_inet _apt
6、再次测试apt命令是否可以正常使用
apt update
非特殊说明,本文版权归HPay所有,转载请注明出处.
本文类型: Java工具