Могу ли я изменить UID другого процесса? - PullRequest
0 голосов
/ 29 марта 2011

Мой собственный процесс запускается под root на устройстве Android. Можно ли изменить UID другого процесса, чтобы дать ему root?
Причина заключается в предоставлении доступа к некоторым «функциям» Android, недоступным для процессов без полномочий root.

Ответы [ 3 ]

2 голосов
/ 29 марта 2011

Если у вас есть рутированный телефон, вы можете явно запускать процессы, используя (обычно) /system/xbin/su. Вы не можете изменить uid программы, которая уже запущена. (Теоретически вы могли бы тыкать в память ядра и изменять все хранимые uid, но это действительно плохая идея, потому что вы не можете заблокировать изменяемые объекты, а если они меняются или перемещаются, вы можете вызвать панику ядра.)

1 голос
/ 21 сентября 2012

Вам нужно запустить exec bin(A) от имени пользователя root и сделать:

  1. присоединить к процессу, который вы хотите изменить uid
  2. получить состояние процесса и сохранить
  3. вызов системного вызова setuid на расстоянии
  4. использовать сохраненное состояние, чтобы отсоединить процесс.

Все вышеперечисленное можно сделать с помощью ptrace.
Более подробную информацию можно найти здесь:
http://www.linuxjournal.com/node/6210/print
http://www.phrack.org/issues.html?issue=59&id=12&mode=txt

1 голос
/ 29 марта 2011

Нет.Если другому приложению требуется доступ с правами root, оно должно само получить разрешения.

...