У меня есть приложение, для запуска которого требуются права root. Ничего страшного, все мои личные устройства рутированы, так что я очень доволен этим процессом. Проблема в том, что это приложение должно использоваться на принадлежащих компании устройствах, выданных определенным сотрудникам, и я не хочу, чтобы они могли удалить приложение, и я не хочу, чтобы у них был root-доступ к устройству.
Я думал, что следующий процесс достигнет моих целей:
Поскольку это будет системное приложение, а устройство не будет рутировано, пользователи не смогут удалить приложение. В чем я не уверен, так это в том, сохранит ли это приложение свои привилегии root после отключения устройства?
Любая обратная связь или понимание будет принята с благодарностью!
Как уже указывал ProNetGuru , для этого действительно можно использовать Titanium Backup :
/system/apps
Сделанный. Тогда это приложение будет иметь доступ к уровням защиты «signatureOrSystem» (если это указано в его манифесте).
Предоставление ему root-доступа — это нечто другое, но, вероятно, здесь это даже не нужно.
signatureOrSystem
уровень, оно должно быть android:sharedUserId="android.uid.system"
в манифесте и подписано тем же ключом подписи, что и ПЗУ... tbh, никогда не пробовал.. для обычного приложения, которое имеет нормальный манифест, как отсутствие вышеуказанного тега не обязательно означает, что он имеет этот уровень защиты signalOrSystem, даже если он был установлен как «системное приложение».signatureOrSystem
уровень защиты означает, что он может обойтись rm -rf /
без рута! И делать то, что может делать обычный корень (uid 0) - это предел. Существует много разных sharedUserId
уровней, например: android.uid.phone
, если этот android:sharedUserId
тег имеет приведенный выше пример, это означает, что приложение может делать все, что связано со слоем телефонии, и ничего больше. Это гораздо более тонкий контроль доступа за кулисами для приложений системного уровня, а также для минимизации нарушений и злонамеренных действий. Все, что делает TiBu, это перемонтирует систему r/w и перемещает туда приложение, больше ничего.rm -rf /
. Системный раздел доступен только для чтения. Вам нужно перемонтировать его r/w. Кроме того, вам не нужно иметь ту же подпись, что и системные приложения, чтобы быть системным приложением. signatureOrSystem
на разрешении не имеет ничего общего с системным приложением. Он предоставляется приложениям в системной папке ИЛИ приложениям, подписанным тем же ключом, что и сама система.rm -rf
? Но, конечно, вы правы, говоря, что «просто иметь разрешение в манифесте недостаточно»: правда, оно должно быть либо подписано «системным ключом», либо, по крайней мере, установлено как системное приложение в первую очередь, чтобы это разрешение было предоставлено - но это то, что делает шаг № 3 ответа.
т0мм13б
ПроНетГуру
Чак
ПроНетГуру
т0мм13б
ПроНетГуру
т0мм13б
Иззи
/system/apps
) → удалить TiBu → удалить root. Сделанный. Тогда это приложение будет иметь доступ к уровням защиты «signatureOrSystem». Но предоставить ему root- доступ — это нечто другое (и, вероятно, здесь даже не нужно).