LINUX.ORG.RU

История изменений

Исправление vvviperrr, (текущая версия) :

если ошибка с доступом связана с selinux - это может быть из за домена. у тебя выше видно, что только adb привязан к selinux домену su. но в permissive режиме это не должно ролять.

Я же могу выполнить от всех рутов mount -o ro,remount

а ты уверен, что он вообще что то делает на remount ro, когда раздел и так в ro? посмотри стрейсом, мне кажется там сисколл mount вообще не вызывается в этом случае.

Ну вот хочется, чтоб все без костылей работало и без userdebug

в user режиме с включенным selinux все ОЧЕНЬ сложно. как я говорил выше, в userdebug существует домен su, под ним запускается adb root, su. в его описании есть такой макрос.

[viper@viper-manjaro sepolicy]$ cat public/su.te 
# All types must be defined regardless of build variant to ensure
# policy compilation succeeds with userdebug/user combination at boot
type su, domain;

# File types must be defined for file_contexts.
type su_exec, exec_type, file_type;

userdebug_or_eng(`
  # Domain used for su processes, as well as for adbd and adb shell
  # after performing an adb root command.  The domain definition is
  # wrapped to ensure that it does not exist at all on -user builds.

т.е в user сборках никакого su (я про домен, бинаря тоже нет разумеется) нет. ни один процесс (даже если он под рутом) не сможет сделать setenforce 0. т.е, если у тебя задача перемонтировать разделы в такой сборке - тебе нужно искать уязвимость в сервисе, у которого есть доступ к монтированию, например vold, init, etc.

почему у тебя сейчас это не работает - я не понимаю, но грешу на selinux и говеные рутовые тулы. верни родной su, проверь его домен, протестируй.

короч я бы с strace начал.

Исправление vvviperrr, :

если ошибка с доступом связана с selinux - это может быть из за домена. у тебя выше видно, что только adb привязан к selinux домену su. но в permissive режиме это не должно ролять.

Я же могу выполнить от всех рутов mount -o ro,remount

а ты уверен, что он вообще что то делает на remount ro, когда раздел и так в ro? посмотри стрейсом, мне кажется там сисколл mount вообще не вызывается в этом случае.

Ну вот хочется, чтоб все без костылей работало и без userdebug

в user режиме с включенным selinux все ОЧЕНЬ сложно. как я говорил выше, в userdebug существует домен su, под ним запускается adb root, su. в его описании есть такой макрос.

[viper@viper-manjaro sepolicy]$ cat public/su.te 
# All types must be defined regardless of build variant to ensure
# policy compilation succeeds with userdebug/user combination at boot
type su, domain;

# File types must be defined for file_contexts.
type su_exec, exec_type, file_type;

userdebug_or_eng(`
  # Domain used for su processes, as well as for adbd and adb shell
  # after performing an adb root command.  The domain definition is
  # wrapped to ensure that it does not exist at all on -user builds.

т.е в user сборках никакого su (я про домен, бинаря тоже нет разумеется) нет. ни один процесс (даже если он под рутом) не сможет сделать setenforce 0. т.е, если у тебя задача перемонтировать разделы в такой сборке - тебе нужно искать уязвимость в сервисе, у которого есть доступ к монтированию, например vold, init, etc.

почему у тебя сейчас это не работает - я не понимаю, но грешу на selinux и говеные рутовые тулы. верни родной su, проверь его домен, протестируй.

Исправление vvviperrr, :

если ошибка с доступом связана с selinux - это может быть из за домена. у тебя выше видно, что только adb привязан к selinux домену su. но в permissive режиме это не должно ролять.

Я же могу выполнить от всех рутов mount -o ro,remount

а ты уверен, что он вообще что то делает на remount ro, когда раздел и так в ro? посмотри стрейсом, мне кажется там сисколл mount вообще не вызывается в этом случае.

Ну вот хочется, чтоб все без костылей работало и без userdebug

в user режиме с включенным selinux все ОЧЕНЬ сложно. как я говорил выше, в userdebug существует домен su, под ним запускается adb root, su. в его описании есть такой макрос.

[viper@viper-manjaro sepolicy]$ cat public/su.te 
# All types must be defined regardless of build variant to ensure
# policy compilation succeeds with userdebug/user combination at boot
type su, domain;

# File types must be defined for file_contexts.
type su_exec, exec_type, file_type;

userdebug_or_eng(`
  # Domain used for su processes, as well as for adbd and adb shell
  # after performing an adb root command.  The domain definition is
  # wrapped to ensure that it does not exist at all on -user builds.

т.е в user сборках никакого su (я про домен, бинаря тоже нет разумеется) нет. ни один процесс (даже если он под рутом) не сможет сделать setenforce 0. т.е, если у тебя задача перемонтировать разделы в такой сборке - тебе нужно искать уязвимость в сервисе, у которого есть доступ к монтированию, например vold.

почему у тебя сейчас это не работает - я не понимаю, но грешу на selinux и говеные рутовые тулы. верни родной su, проверь его домен, протестируй.

Исправление vvviperrr, :

если ошибка с доступом связана с selinux - это может быть из за домена. у тебя выше видно, что только adb привязан к selinux домену su. но в permissive режиме это не должно ролять.

Я же могу выполнить от всех рутов mount -o ro,remount

а ты уверен, что он вообще что то делает на remount ro, когда раздел и так в ro? посмотри стрейсом, мне кажется там сисколл mount вообще не вызывается в этом случае.

Ну вот хочется, чтоб все без костылей работало и без userdebug

в user режиме с включенным selinux все ОЧЕНЬ сложно. кака я говорил выше, в userdebug существует домен su, под ним запускается adb root, su. в его описании есть такой макрос.

[viper@viper-manjaro sepolicy]$ cat public/su.te 
# All types must be defined regardless of build variant to ensure
# policy compilation succeeds with userdebug/user combination at boot
type su, domain;

# File types must be defined for file_contexts.
type su_exec, exec_type, file_type;

userdebug_or_eng(`
  # Domain used for su processes, as well as for adbd and adb shell
  # after performing an adb root command.  The domain definition is
  # wrapped to ensure that it does not exist at all on -user builds.

т.е в user сборках никакого su (я про домен, бинаря тоже нет разумеется) нет. ни один процесс (даже если он под рутом) не сможет сделать setenforce 0. т.е, если у тебя задача перемонтировать разделы в такой сборке - тебе нужно искать уязвимость в сервисе, у которого есть доступ к монтированию, например vold.

почему у тебя сейчас это не работает - я не понимаю, но грешу на selinux и говеные рутовые тулы. верни родной su, проверь его домен, протестируй.

Исправление vvviperrr, :

если ошибка с доступом связана с selinux - это может быть из за домена. у тебя выше видно, что только adb привязан к selinux домену su. но в permissive режиме это не должно ролять.

Я же могу выполнить от всех рутов mount -o ro,remount

а ты уверен, что он вообще что то делает на remount ro, когда раздел и так в ro? посмотри стрейсом, мне кажется там сисколл mount вообще не вызывается в этом случае.

Ну вот хочется, чтоб все без костылей работало и без userdebug

в user режиме с включенным selinux все ОЧЕНЬ сложно. кака я говорил выше, в userdebug существует домен su, под ним запускается adb root, su. в его описании есть такой макрос.

[viper@viper-manjaro sepolicy]$ cat public/su.te 
# All types must be defined regardless of build variant to ensure
# policy compilation succeeds with userdebug/user combination at boot
type su, domain;

# File types must be defined for file_contexts.
type su_exec, exec_type, file_type;

userdebug_or_eng(`
  # Domain used for su processes, as well as for adbd and adb shell
  # after performing an adb root command.  The domain definition is
  # wrapped to ensure that it does not exist at all on -user builds.

т.е в user сборках никакого su нет. ни один процесс (даже если он под рутом) не сможет сделать setenforce 0. т.е, если у тебя задача перемонтировать разделы в такой сборке - тебе нужно искать уязвимость в сервисе, у которого есть доступ к монтированию, например vold.

почему у тебя сейчас это не работает - я не понимаю, но грешу на selinux и говеные рутовые тулы. верни родной su, проверь его домен, протестируй.

Исправление vvviperrr, :

если ошибка с доступом связана с selinux - это может быть из за домена. у тебя выше видно, что только adb привязан к selinux домену su. но в permissive режиме это не должно ролять.

Я же могу выполнить от всех рутов mount -o ro,remount

а ты уверен, что он вообще что то делает на remount ro, когда раздел и так в ro? посмотри стрейсом, мне кажется там сисколл mount вообще не вызывается в этом случае.

Ну вот хочется, чтоб все без костылей работало и без userdebug

в user режиме с включенным selinux все ОЧЕНЬ сложно. кака я говорил выше, в userdebug существует домен su, под ним запускается adb root, su. в его описании есть такой ифчик.

[viper@viper-manjaro sepolicy]$ cat public/su.te 
# All types must be defined regardless of build variant to ensure
# policy compilation succeeds with userdebug/user combination at boot
type su, domain;

# File types must be defined for file_contexts.
type su_exec, exec_type, file_type;

userdebug_or_eng(`
  # Domain used for su processes, as well as for adbd and adb shell
  # after performing an adb root command.  The domain definition is
  # wrapped to ensure that it does not exist at all on -user builds.

т.е в user сборках никакого su нет. ни один процесс (даже если он под рутом) не сможет сделать setenforce 0. т.е, если у тебя задача перемонтировать разделы в такой сборке - тебе нужно искать уязвимость в сервисе, у которого есть доступ к монтированию, например vold.

почему у тебя сейчас это не работает - я не понимаю, но грешу на selinux и говеные рутовые тулы. верни родной su, проверь его домен, протестируй.

Исходная версия vvviperrr, :

если ошибка с доступом связана с selinux - это может быть из за домена. у тебя выше видно, что только adb привязан к selinux домену su. но в permissive режиме это не должно ролять.

Я же могу выполнить от всех рутов mount -o ro,remount

а ты уверен, что он вообще что то делает на remount ro, когда раздел и так в ro? посмотри стрейсом, мне кажется там сисколл mount вообще не вызывается в этом случае.