Следующая ссылка дает краткое описание процесса установки пакета в Android.
http://java.dzone.com/articles/depth-android-package-manager
Мне любопытно узнать, как определяется UID приложения во время его установки на основе набора разрешений, присутствующих в его файле манифеста.
Также есть файл platform.xml (в каталоге /frameworks/base/data/etc для исходного кода 4.0 ICS), который содержит список разрешений со связанными с ними gid. В описании сказано
Следующие теги связывают низкоуровневые идентификаторы групп с именами разрешений. Указав такое сопоставление, вы говорите, что любой процесс приложения, которому предоставлено данное разрешение, также будет работать с данным идентификатором группы, прикрепленным к его процессу, поэтому он может выполнять любые операции с файловой системой (чтение, запись, выполнение), разрешенные для этой группы.
Аналогичным образом существует список разрешений высокого уровня, назначенных для определенных uid.
Мой вопрос: когда приложение установлено с разрешениями X, Y, Z, как указан его доступ, это из сопоставления с этой платформы.xml
Кроме того, каждый раз, когда приложение запускается, сопоставление происходит в каждый момент (это не кажется правильным из первоначального дизайна Android, где разрешения приложения не могут быть изменены, если нет обновления). Итак, если это так, где он хранит информацию о том, что это приложение должно работать с таким-то доступом или таким-то uid.
Надеюсь, я ясно изложил свой вопрос, дайте мне знать, если вам нужна дополнительная информация. Я просто пытаюсь узнать больше о том, как работают внутренности ОС Android.
Спасибо