Android privileged app

Ответить
Lighter
Сообщения: 61
Зарегистрирован: 13 авг 2013, 16:39

Android privileged app

Сообщение Lighter » 24 дек 2013, 17:31

Увидел на видео-демонстрации Mozila OS как приложение устанавливается на Android как privileged app http://www.youtube.com/watch?feature=pl ... ShOw#t=169. Что под этим имеется ввиду, root?

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Android privileged app

Сообщение altwin » 24 дек 2013, 19:49

видео не смотрел пока, но если правильно понял, что имеется в виду: В андрюху, когда ему исполнилось 4.4, добавили новую концепцию Privellaged app, я пока не встречал подробного описания от гугла, но на сколько знаю, привилигированные апы сохраняются в другой директории system/priv-app.
Если обратить внимание на AOSP исходники в PackageManagerService, моно сделать вывод о том, что вы не можете создать активити в своем приложении с приоритетом более 0, до тех пор, пока вы не имеете привилегий. Похоже размещение приложения в этой папке позволяет решить эту проблему, и активити с большим приоритетом, чем системное - будет запускаться по умолчанию, что очень полезно и хотелось бы портирования на старые версии ;)

P.S. Commit hash: ccbf84f44c9e6a5ed3c08673614826bb237afc54:
Some system apps are more system than others

"signatureOrSystem" permissions are no longer available to all apps residing en the /system partition. Instead, there is a new /system/priv-app directory, and only apps whose APKs are in that directory are allowed to use signatureOrSystem permissions without sharing the platform cert. This will reduce the surface area for possible exploits of system- bundled applications to try to gain access to permission-guarded operations.

The ApplicationInfo.FLAG_SYSTEM flag continues to mean what it is says in the documentation: it indicates that the application apk was bundled on the /system partition. A new hidden flag FLAG_PRIVILEGED has been introduced that reflects the actual right to access these permissions.
очень похоже, что используется это только в приложениях самого папки google, ну а вы при желании запускать апы с системными правами по прежнему должны помещать их в /system/app. Ну а судя по тому, что видео от мазилы - в данном случае они способны на это по скольку в своей ОС - имееют права папки google либо же возможно дают эти права разработчикам...
Изображение

Lighter
Сообщения: 61
Зарегистрирован: 13 авг 2013, 16:39

Re: Android privileged app

Сообщение Lighter » 26 дек 2013, 10:43

А что значит системные права? Я как-то интересовался этим вопросом, мне ответили что системные приложения отличаются лишь тем, что их нельзя удалить без рута?

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Android privileged app

Сообщение altwin » 26 дек 2013, 18:48

Lighter писал(а):А что значит системные права? Я как-то интересовался этим вопросом, мне ответили что системные приложения отличаются лишь тем, что их нельзя удалить без рута?
В чем то вы правы, но врятли это причина отличия, скорее следствие. Как я уже упоминал выше приоритет активити - позволят не задавать вопрос юзеру использовать вас или системный апп для открытия веб странички(к примеру), если конечно у вас приоритет выше гугла :), плус конечно отличаются они тем, что имеют привилегированный доступ к системе, это же линукс и запуская приложение по сути вы просто выполняете команду от имени пользователя, к некоторым командам доступа у вас(в лице пользователя системы) просто нет прав - перечислять такие команды можно очень долго но все они подразумевают изменение поведения системы, что само по себе влечет за собой опасность, поскольку никто кроме вас не знает что вы там устроите. Гугл гарантирует нам определенную безопастность и потому приложения не имеет прав вносить изменение в саму "систему/платформу". Т.е. даже если вы захотите к примеру использовать не стандартное приложение камеры - вас об этом спросят и установят новое только для вас ничего не меняя с возможность возврата на дефолт(да и некоторые действия все равно будут выполняться по умолчанию..). Если же вы как разработчик хотите чтобы система полностью заменила дефолтное поведение на необходимое вам, необходимо просто(опять же unix way) внести себя в группу root(суперпользователь), но однажды попав туда вы станете богом(это и есть главное отличие долгожданный God mode). Это можно сделать, но в большинстве случаях не требуется, к тому же ответсвенность только на вас. Именно потому, что приложение установлено от имени root юзер не может им управлять(кроме предусмотренного способа) не имея соотвествующих либо более приоритетных прав. Опять же гугл не может проверить каждый апп и тем более то, как он повлияет на систему, потому выбор разрешить такую установку или нет - всегда за пользователем, рекомендация одна - не знаете на 99% забудьте и бегите :). Хотя все это относительно, поскольку даже root не всегда root и уровень "системности" бывает разный.

P.S. по сути чтобы не забивать голову, можно думать об этом, как о том, что Системное приложение использует не документированные возможности виртуальной машины dalvik, либо меняет/в состоянии менять ее стандартное поведение. Это выход за грань SDK. Лично я бы очень не рекомендовал использовать root поскольку давая права даже доверенному приложению, даже если вы уверенны что никто кроме вас не внесет в него изменения никто не знает как баги/дырки этого приложения(поверьте они есть и много.) повлияют на безопастность и стабильность системы.
Да и не нужно оно вам, разве что для внутрекорпоративных приложений, что редкость. поскольку даже такие в основном сегодня используются по принципу "bring your own device", т.е. на устройствах сотрудника(на которые нет 100% прав), иначе там просто нет андрюхи. В любом другом случае пользователь способный понять слово рут - вам не интересен(он халявщик в большинстве своем и просто пришел посмотреть), а тот кто готов платить при виде требований получи права рута - просто убежит. Хотя конечно если вы планируете работать в компаниях вроде lenovo/samsung -пригодится...
Изображение

Lighter
Сообщения: 61
Зарегистрирован: 13 авг 2013, 16:39

Re: Android privileged app

Сообщение Lighter » 27 дек 2013, 14:08

Спасибо, интересно. А есть официальная документация на эту тему?

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Android privileged app

Сообщение altwin » 27 дек 2013, 15:28

Lighter писал(а):Спасибо, интересно. А есть официальная документация на эту тему?
только это -http://source.android.com/source/faqs.html и это https://github.com/android/platform_dalvik ( http://s.android.com/tech/dalvik/index.html ), http://milk.com/kodebase/dalvik-docs-mirror/
Изображение

Ответить