apt-get update falha no chroot ubuntu 16.04 no android

1

Eu instalei xenial (Ubuntu 16.04) em um chroot no meu dispositivo Android (usando a arquitetura armhf). Tudo funciona bem. Todos os comandos locais e wget e curl funcionam bem. No entanto, o apt-get falha. Aqui está o problema:

  1. sudo apt-get update me dá um erro: Falha temporária na resolução de ports.ubuntu.com (outros programas, como wget e curl, podem acessar nomes de DNS com êxito). Fiz um ping nos servidores e obtive o IP para editar o /etc/apt/sources.list para refletir isso

  2. sudo apt-get update me dá outro erro: não foi possível criar um soquete para 91.189.88.150 (f=2 t=1 p=6) - socket (13: Permission denied)

  3. Tudo bem, então eu suid todos os programas apt- *: sudo chmod u+s /usr/bin/apt-*

Para remover quaisquer questões sobre a versão específica do apt-get que eu removi do apt via apt-get e instalei o apt.deb via dpkg com sucesso, entretanto, o problema persiste.

É muito surpreendente que este recurso básico no Ubuntu pareça estar quebrado, pode ser específico para pacotes armhf. Não consigo encontrar o mesmo problema relatado no SO. No entanto, eu encontrei outro usuário relatando algo semelhante no /r/debian do reddit, mas ele não foi concluído.

Alguma sugestão?

    
por Manoj Raja Rao 01.05.2017 / 20:34

1 resposta

2

Comentei no link que resolvi esse problema e veja mais detalhes para você (como você me pingou no reddit):

AFAIK, setsid para root no chroot da Debian não funciona, por causa da sepolicy do Android. Talvez haja uma regra na sepolicy do Android, como “para usar a rede, você deve ter gid of inet (que é 3003, como você pode ver em adb shell id )”. Talvez também diga, "ter raiz de setid é inútil".

Para que isso funcione, você deve adicionar um grupo (talvez chamado android_inet) com o gid 3003 no chroot debian: sudo addgroup --gid 3003 android_inet e, em seguida, alterar o ID do grupo principal do _apt para android_inet: sudo usermod -g android_inet _apt .

Adicionar android_inet como um grupo suplementar para _apt não funcionará, porque não é isso que o Android Sepolicy quer.

    
por Bao Haojun 29.07.2017 / 05:40