Você tem dois problemas diferentes aqui
- apt não resolve o DNS
- ping não está funcionando
-
APT NÃO RESOLVENDO DNS:
O problema é que o APT usa o _apt como nosso usuário sem privilégios. No Android com rede paranóica, apenas usuários no grupo 3003 aid_inet ou 3004 aid_inet_raw podem abrir soquetes de rede. Quando o apt instala ele cria o usuário _apt.
# add unprivileged user for the apt methods
adduser --force-badname --system --home /nonexistent \
--no-create-home --quiet _apt || true
O usuário se parece com isso em / etc / passwd
root@localhost:~
# grep -E "_apt" /etc/passwd
_apt:x:103:65534::/nonexistent:/bin/false
o formato passwd é
User name:Encrypted password:User ID number (UID):User's group ID number (GID):Full name of the user (GECOS):User home directory:Login shell
olhando para o usuário _apt, o GID é configurado para 65534, o que significa que nenhum grupo, em sistemas Linux normais, está bem. No Android, este GID nunca poderá fazer conexões de rede Necessidade de alterar o GID para 3003
# usermod -g 3003 _apt
mudará o GID
root@localhost:~
# grep -E "_apt" /etc/passwd
_apt:x:103:3003::/nonexistent:/bin/false
Agora o APT funcionará no chroot Android
PING NÃO FUNCIONANDO
Para mim, notei quando eu chroot usando este exemplo de comando
# chroot /linux /bin/bash -l
Nos grupos Android são usados para aplicativos, de alguma forma. Então, bash chamando bash é apenas no grupo raiz você pode verificar isso por
# groups
root
grupos executados sem nome de usuário geram grupos de processos atuais
Agora tente isso
# su - root
su commmand é o usuário do switch
# groups
root sdcard-rw aid_bt aid_bt-net aid_inet aid_net-raw aid_net_admin
Agora o ping funcionará
Eu agora uso
# chroot /linux /bin/su - root
qual login como root do linux não root do Android