Как изменить AOSP, чтобы разрешить определенным приложениям получать root-доступ?

Я работаю над AOSP. Я успешно добавил свой apk для сборки. Теперь я хочу предоставить root доступ к моему приложению. Я не хочу предоставлять root-доступ к другим приложениям или устанавливать приложение Superuser в моей сборке. Я просто хочу добавить свое приложение, чтобы получить доступ root. Как я могу это достичь?

Я просмотрел файл su.c в пути system/extras/su, но я не могу понять весь код.

Когда я просмотрел код, я думаю, что моя цель может быть достигнута, если я могу modify su.c предоставить root-доступ к моему приложению, compile it and add the binary для сборки. Я прав?

Ответ 1

Вы двигаетесь в правильном направлении. Вам нужно проверить источники на su.c Единственная проблема, с которой вы можете столкнуться, - это запустить вашу программу с правами root. Для этого вам нужно установить личный бит SUID для исполняемого файла вашего приложения. Для этого вам нужно изменить файл system/core/include/private/android_filesystem_config.h (структура android_files[]), например, для программы su вы можете увидеть, как этот бит установлен:

{ 06755, AID_ROOT,      AID_ROOT,      "system/xbin/su" },

Ответ 2

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