Информация об изменениях

Сообщение Linux: царь^w root ненастоящий! от 13.08.2016 17:25

Изменено 13.08.2016 17:52 IID

Кто тут утверждал что линукс это дружественная система ? Не верю! (ц)

Написал утилитку, запускающую /system/bin/sh из-под рута. Столкнулся с тем, что в запущенном шелле не получается примонтировать /system на rw. Тогда как в su от KingRoot все отлично монтируется.
Подскажите, куда копать ?

Вводные:
— Linux: 3.10.49
— Android 5.1.1
— файл утилиты лежит в /system/xbin (ссылка из /system/bin), имеет chown 0.0 и chmod 06755
— root получается вызовами seteuid(0) + setresgid(0,0,0) + setresuid(0,0,0) (вызовы подсмотрел в опенсорсной SuperUser от Koushi, это отдельный ппц, ИМХО, наворотили этих uid-ов)
— для красоты еще setgroups(0, 0) + setenv("USER", "root", 1)
— в запущенном шелле команда "mount -o remount,rw /system" возвращает "mount: Operation not permitted"

Грешил на SELinux, но он не причём: переключил его в Permissive через setenforce 0 и даже перезапустил утилиту через "runcon u:r:init:s0" — теперь контексты, возвращаемые командой "id", у меня и у стороннего su сопадают. Но он может монтировать раздел, а я нет. Вызов printenv показывает одинаковые переменные окружения.

ИМХО тут больше спецов по линуксу, чем в профильном форуме.
Кто тут утверждал что линукс это дружественная система ? Не верю! (ц)

Написал утилитку, запускающую /system/bin/sh из-под рута. Столкнулся с тем, что в запущенном шелле не получается примонтировать /system на rw. Тогда как в su от KingRoot все отлично монтируется.
Подскажите, куда копать ?

Вводные:
— Linux: 3.10.49
— Android 5.1.1
— файл утилиты лежит в /system/xbin (ссылка из /system/bin), имеет chown 0.0 и chmod 06755
— root получается вызовами seteuid(0) + setresgid(0,0,0) + setresuid(0,0,0) (вызовы подсмотрел в опенсорсной SuperUser от Koushi, это отдельный ппц, ИМХО, наворотили этих uid-ов)
— для красоты еще setgroups(0, 0) + setenv("USER", "root", 1)
— в запущенном шелле команда "mount -o remount,rw /system" возвращает "mount: Operation not permitted"

Грешил на SELinux, но он не причём: переключил его в Permissive через setenforce 0 и даже перезапустил утилиту через "runcon u:r:init:s0" — теперь контексты, возвращаемые командой "id", у меня и у стороннего su сопадают. Но он может монтировать раздел, а я нет. Вызов printenv показывает одинаковые переменные окружения.

ИМХО тут больше спецов по линуксу, чем в профильном форуме.

UPD: китайский su это прокси для демона, который (скорее всего) запускается в ходе init. НО! Это же Linux! Тем более root! Должен быть способ наделить свой процесс аналогичными свойствами! (Еще бы понять, какие они...)