2013-03-09 3 views
1

Я пытаюсь выяснить, как скомпилировать AOSP с суперпользователем. Я был указан на этот вопрос: Build Android with Superuser. Инструкции кажутся немного неясными, и я также не совсем понимаю, что происходит. Это также, похоже, говорит об этом, позволяющем su привилегии в приложениях для Android. Я не пытаюсь получить это в приложениях. Я пытался получить root-доступ при запуске некоторого кода в главном источнике Android (особенно, пытаясь открыть сокет в DisplayDevice.cpp).Как скомпилировать AOSP с суперпользователем

Я задал аналогичный вопрос здесь (Create a socket in android code(not in android application) getting Permission Denied). Я подумал, что с тех пор, как я оказался на правильном пути, и теперь знаю, что мне нужно скомпилировать код как суперпользователь, я должен просто задать другой вопрос.

Я добавил су-двоичный код к моему коду AOSP в соответствии с инструкциями из первого вопроса SO. Я также изменил свой init.rc, но мне кажется, что мне нужно что-то сделать, чтобы эти изменения прошли. Об этом не говорится в вопросе. Прямо сейчас, когда я запускаю make su-binary, я получаю «make: ничего не нужно делать для« su-binary ».». Я думаю, что здесь что-то не так. Я использую make-файл, указанный m-ric. Я также не был уверен, нужен ли мне Superuser.apk, так как я не работаю с кодом, который будет найден в приложении для Android.

Если бы кто-нибудь мог указать мне в правильном направлении, я был бы очень благодарен. Я рад предоставить дополнительную информацию, если это необходимо.

ответ

1

На самом деле, я могу объяснить, как построить Android с Superuser, но я думаю, что вы не делаете этого для своей задачи. Проблема в том, что процесс, выполняющий код DisplayDevice.cpp, не принадлежит группе inet (обычно gid = 3003).

Я не знаком с системой отображения Android, но если вы хотите просто экспериментировать, я бы порекомендовал вам следующие шаги.

  1. Вам нужно выяснить идентификатор процесса, в котором выполняется ваш код.
  2. Назначьте этот процесс gid inet group.
+0

Мы закончили делать это по-другому. Но этот способ по-прежнему имеет смысл и помогает объяснить некоторые проблемы, с которыми мы столкнулись. Спасибо! – challeng

0

Прямо сейчас, когда я бегу сделать су-бинарная я получаю «не делают: ничего сделать для` су-бинарная».»

Пример, как изменить su.c можно найти здесь: https://code.google.com/p/aosp4nexus5/wiki/AOSPforNexus5#Debugging_a_C_file

На самом деле только протоколирование добавляется, но это то же самое, как изменение setgid() и УИП() вызывает. :-)