Обновление apt-get завершается неудачно на chroot Ubuntu 16.04 на Android

Я установил xenial (Ubuntu 16.04) в chroot на моем устройстве Android (используя архитектуру armhf). Все работает просто отлично. Все локальные команды и wget и curl работают нормально. Однако apt-get терпит неудачу. Вот проблема:

  1. sudo apt-get update выдает мне сообщение об ошибке: Устранение временного сбоя ports.ubuntu.com (другие программы, такие как wget и curl, могут успешно обращаться к именам DNS). Я пропинговал серверы и получил IP, поэтому я редактирую /etc/apt/sources.list, чтобы отразить это

  2. sudo apt-get update, дает мне еще одну ошибку: не удалось создать сокет для 91.189.88.150 (f=2 t=1 p=6) - socket (13: Permission denied)

  3. Хорошо, тогда я выбрал все программы apt- *: sudo chmod u+s /usr/bin/apt-*

Чтобы удалить любые вопросы о конкретной версии apt-get, которую я имею удалил apt через apt-get сам и успешно установил apt.deb через dpkg, однако проблема сохраняется.

Очень удивительно, что эта базовая функция в Ubuntu, похоже, не работает, она может быть специфичной для пакетов armhf. Я не могу найти ту же проблему, о которой сообщалось на SO. Тем не менее, я нашел другого пользователя, сообщающего о чем-то похожем на Reddit /r/debian, но это не было сделано.

Есть предложения?

1
задан 21 April 2018 в 05:51

1 ответ

Я прокомментировал https://www.reddit.com/r/debian/comments/503ja3/issues_with_debian_on_android_phone/d8j290s/ , что я решил эту проблему, и вот вам более подробная информация (как вы pinged мне на reddit):

AFAIK, setid для root в debian chroot не будет работать, из-за Android sepolicy. Возможно, в Android-политике есть правило, например, «чтобы использовать сеть, у вас должен быть gid of inet (а это 3003, как вы можете видеть из adb shell id)». Может быть, в нем также говорится: «корень сетта бесполезен».

Итак, чтобы это работало, вы должны добавить группу (возможно, с именем android_inet) с gid 3003 в chroot debian: sudo addgroup --gid 3003 android_inet, а затем изменить идентификатор основной группы _apt на android_inet: sudo usermod -g android_inet _apt.

Добавление android_inet в качестве дополнительной группы для _apt не будет работать, потому что это не то, что хочет Android Sepolicy.

0
ответ дан 21 April 2018 в 05:51

Другие вопросы по тегам:

Похожие вопросы: