Взаимодействие с SELinux на виртуальном устройстве GenyMotion - PullRequest
0 голосов
/ 15 декабря 2018

Я много читал о SELinux, и мне хотелось бы попытаться получить практический пример для университета.Я установил на GenyMotion различные виртуальные устройства, от Android 6 до Android 9, но SElinux никто не владеет: когда я делаю «sestatus», он отвечает «отключено».Я не думаю, что этого достаточно, чтобы включить его, кажется, что модули должны быть установлены в ядре, кто-то может сказать мне, как это сделать?Я пытался, но ничего не нашел, у меня много трудностей, я делаю это впервые.Спасибо всем заранее.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Наконец мне удалось заставить все работать: я смог получить доступ к информации Selinux через терминал в виртуальном устройстве GenyMotion.Selinux уже активен на устройствах после версии 4.3, нет необходимости устанавливать его, как было сказано @Martin Zeitler.Я объясняю решение проблемы (на Linux это работает).

  1. Первое, что нужно сделать, это установить терминал в виртуальное устройство: я установил Termux.Для этого просто скачайте apk с сайта и перетащите его на виртуальное устройство, установка начнется.Впоследствии необходимо предоставить разрешения SuperUser терминалу Termux: банально, открыв терминал, введите команду SU, и устройство спросит вас, хотите ли вы предоставить разрешения SuperUser приложению Termux.Когда вы вводите команду SU, это позволит вам просматривать папки на вашем устройстве.С помощью команды "ls", предоставляющей опцию "-Z", вы можете увидеть контекст файлов SElinux.Из терминала, используя команду "getenforce", вы можете увидеть, как работает Selinux.Здесь вы увидите другие полезные команды: https://www.all -things-android.com / content / se-android-команды
  2. Теперь вам нужно скачать инструмент, который позволяет намвзаимодействовать с Selinux: setools.https://github.com/pasis/setools-android Эти инструменты написаны на C, родном языке Android, поэтому вам нужно скачать библиотеку NDK для их компиляции: https://developer.android.com/ndk/downloads/
  3. Первое, что нужно сделать для компиляции, этоукажите путь к проекту: export NDK_PROJECT_PATH = / my / project / path.Второй шаг - указать make-файл: ndk-build NDK_APPLICATION_MK = / my / project / Makefile.am (для полного руководства: https://software.intel.com/en-us/articles/building-an-android-command-line-application-using-the-ndk-build-tools)
  4. Когда вы закончите компиляцию, вы можете отправить папку Setools ввиртуальное устройство, используя программу adb. ./adb push / setool / local / folder / remote / device / folder (пример: ./adb / setool / tmp) Теперь, когда у вас есть Setool на вашем устройстве, вы можете запустить инструментыв папке "/ setool / obj / local / x86". Благодаря "sepolicy-inject" вы также можете добавлять правила в политики.

enter image description here

Наконец, благодаря этому руководству я понял, что политики Selinux хранятся в двоичном формате, поэтому с ними невозможно взаимодействовать без инструментов. https://ge0n0sis.github.io/posts/2015/12/exploring-androids-selinux-kernel-policy/

0 голосов
/ 15 декабря 2018

нельзя «установить SE Linux» на Android;поскольку он уже установлен и включен по умолчанию начиная с уровня API 21. Вам необходимо стать пользователем root, чтобы получить доступ к этим командам управления.это было бы возможно только на оборудовании с корневым доступом - или в образе корневого эмулятора.

... просто установите CentOS или любой другой дистрибутив Linux с включенной безопасностью для теста.

...