Файлы uid андроид что это такое

Что такое UID на Android?

Что такое UID на Android?

Это ID конкретного пользователя или конкретного приложения?

3 ответа

Как я могу получить список UID (список приложений, установленных на устройстве Android)?

Я хотел бы иметь возможность получить Linux UID (пользователь ID) установленного приложения Android. Выдержка из раздела безопасность и разрешения : во время установки Android дает каждому пакету отдельный Linux пользователь ID. Идентичность остается неизменной в течение всего срока службы пакета.

Если вы имеете в виду этот UID : Android основан на Linux, так что в основном это тот же UID, что и на Unix-подобном OS. При установке приложения / пакета Android по умолчанию [1] создает UID специально для этого пакета, чтобы у него были свои личные ресурсы / место для хранения. Когда никакие пакеты больше не используют этот UID (который может быть общим), UID удаляется.

1. Вы можете переопределить это поведение с помощью android:sharedUserId , но у него есть некоторые недостатки .

Это ID относится только к приложению

Android назначает уникальный пользователь ID (UID) каждому приложению Android и запускает его в своем собственном процессе. Android использует этот UID для настройки песочницы приложений уровня kernel.

В Android UID фактически называется AID , который используется для идентификации владельца процесса и владельца ресурса. Связывая эти два вместе, он становится основой механизма песочницы Android.

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

Похожие вопросы:

что такое UID в linux? Wiki и другие онлайн-источники говорят, что это пользователь ID. Но что такое идентификатор пользователя? Имя user id дает мне ощущение, что это пользователь, который.

В исходном коде фреймворка NotificationManagerService.java из Android 5.0. Я не понимаю, когда uid будет равен нулю. private static boolean isUidSystem(int uid) < final int appid =.

Что такое Window в Android? Я думал, что самый верхний уровень в Android называется Activity , то есть экран, который вы видите. Может ли кто-нибудь сказать мне, что такое окно в Android? у нас есть.

Как я могу получить список UID (список приложений, установленных на устройстве Android)?

Я хотел бы иметь возможность получить Linux UID (пользователь ID) установленного приложения Android. Выдержка из раздела безопасность и разрешения : во время установки Android дает каждому пакету.

Что такое android?Я просто хочу знать, что на самом деле такое android и что в этом такого шумного??

Android SDK используется для создания приложений Java. Android NDK используется для создания собственной части приложения Android. Тогда что такое Android PDK? Является ли PDK ссылкой на целевую.

В программировании Android что такое класс Context и для чего он используется? Я читал об этом на сайте разработчика , но не могу ясно понять.

UID-уникален для каждого устройства. Но можно ли определить, к какому устройству он принадлежит (я имею в виду iPhone или Android) ? iPhone устройств вполне стандартны — они поставляются с почти.

Читайте также:  Android studio very long vector path

Источник

Что такое UID. И с чем его едят.

Для новичков

Видел на форуме и сайте кучу вопросов, таких как:
«А че такое уид??»
«Зачем нужен uid?»
«Где взять этот uid?»
«Что такое, и с чем едят uid?»
«Расскажите про уид!»
И вот, решил написать статейку для непосвященных =)
Итак, начнем.
UID — это составной идентификатор, с помощью которого идентифицируются объекты в Symbian OS. UID состоит из трех 32-битных отдельных чисел. Эти числа, называются компонетами
UID и обычно когда о них заходит речь, на них ссылаются как на UID1-, UID2- и UID3-компоненты. В Symbian OS UID’ы используются в самых различных случаях:
UID-ы используются для идентификации типов различных объектов как во время исполнения так и во
время загрузки. Например исполняемые файлы, DLL, файловые хранилица и многое другое имеет свои собственные
UID.
UID-ы используютя для проверки, что объект, который предполается загрузить обеспечит совместимый
и ожидаемый от него интерфейс.Таким образом можно проверить, что DLL относится к ожидаемому типу
или что используемое файловое хранилище имеет строго определнный тип.
UID-ы — это значения которые однозначно связывают документы и приложения для их обработки. Например,
графические приложения с определенной программой их просмотра.

В Symbian OS UID-ы используются повсеместно для разнообразных идентификаций типов
файлов и увязки файлов с теми или иными приложениями. Конечно, пользователю более понятны обычные
имена файлов и Symbian OS гибко поддерживает имена файлов различной длинны. Но с точки зрения системы,
32-битные номера обеспечивают большую однозначность, систематичность и более легкую идентификацию.
Поэтому UID-ы являются фундаметальной характеристикой ОС.

По определению, UID-тип объекта состоит из трех отдельных UID-ов используемых
в комбинациях. Составные компоненты UID-ов называются UID1, UID2 и UID3 имеют следующие основные
характеристики:
UID1- может быть рассмотрен как идентификатор на уровне системы; например, исполняемые файлы,
DLL, файловые хранилища все различаются по UID1.
UID2-различия между объектами имеющими один и тот же UID1 и могут быть рассмотрены как идентификатор
интерфейса; например, статический интерфейс (разделяемая библиотека) и полиморфический интерфейс
(приложение или встраеваемая программная оболочка) DLL-ки отличаются по UID2.
UID3-идентифицирует объекты, имеющие конкретный UID2 и может рассматриваться как идентификатор
проекта; например, UID3 может быть разделен между всеми объектами, принадлежащими данной программе,
включая библиотеки, если имеются, DLL-ки каркасов,и все документы.

UID-тип это объект типа TUidType, которой можно создать из комбинаций всех
или некоторых из трех возможных UID-ов. Если переменная имеет прелставляет собой UID, то можно выяснить
и значения составляющих её компонентов UID1, UID2 и UID3.

Объект в Symbian OS и, особенно, многие файлы в Symbian OS могут иметь все, несколько,
или вообще не иметь не одного из трех возможных UID-ов.
Вариант с отсутсвием UID-ов необходим для того, чтобы можно было взаимодействовать
с другими системами, позволяя легко и свободно использовать по назначению в Symbian OS не родные
файлы данных. Symbian OS позволяет создавать настраиваемые файловые ассоциации и идентификации даже
когда UID-ы отсутсвуют. Это делается по расширениям имен файлов.

Каждый «родной» документ должен иметь соотвествующий UID1. его значение задается
приложением, создавщим этот документ.

Необходимым является только UID1, но в большинстве случаев разработчики захотят
определить второй и третий UID-ы для документов, которые создает и использует их приложение. Значения
этих UID используются каркасом архитектуры приложения, чтобы управлять связями между приложениями
и их документами. Например, это позволяет при открытии файла определить и запустить связанное с ним
приложение, а также правильно отображать иконку этого приложения, возле файла документа. И наоборот
это позволяет приложению, отсортировывать свои файлы среди прочих.

Читайте также:  Как почистить автозагрузку андроид

UID задается из диапазона 0х01000000 до 0x0fffffff.

UID можно в любое время посмотреть, зайдя например в программу SmartFileMan, и нажав клавишу «5» на нужном файле.На экране появятся все три UID-a.

Источник

Русские Блоги

Об использовании android: sharedUserId = «android.uid.system»

Иногда нам нужно использовать некоторые системные разрешения в наших приложениях, такие как разрешения USB. Если процесс нашего собственного приложения и системный процесс имеют одинаковый UID, у нас будет это разрешение по умолчанию, и его не нужно предоставлять пользователю. Во многих случаях Так будет намного удобнее. Это разрешение используется в большинстве проектов, над которыми я недавно работал. Измените системное время, вызовите скрытый метод, выключите и перезапустите систему, установите, обновите и удалите приложения в автоматическом режиме и т. Д. Вначале добавьте разрешение напрямую и запустите его. Если сообщается об ошибке, независимо от симулятора или реальной машины, вы всегда будете получать сообщение «Невозможно открыть драйвер сигнализации: разрешение отклонено» в logcat. Для использования этой функции требуется разрешение root или она запускается в системном процессе.

После долгого поиска в Интернете я обнаружил, что есть два способа решить эту проблему:

Один из них — скомпилировать с помощью make в среде исходного кода системы Android:

1. Добавьте атрибут android: sharedUserId = «android.uid.system» в узел манифеста в AndroidManifest.xml приложения. .

2. Измените файл Android.mk и добавьте строку LOCAL_CERTIFICATE: = platform.

3. Используйте команду mm для компиляции, и сгенерированный apk будет иметь право изменять системное время.

Этот метод не может быть скомпилирован с .mk, поэтому я должен обратиться ко второму методу:
1. Добавьте атрибут android: sharedUserId = «android.uid.system». ,

2. Используйте eclipse для компиляции неподписанного файла apk, но этот файл apk использовать нельзя.

3. Используйте ключ платформы целевой системы, чтобы повторно подписать файл apk.

Этот шаг более сложен, сначала найдите файл ключа, расположение в моем каталоге исходного кода Android — «build / target / product / security»,

Следующие два файла — это platform.pk8 и platform.x509.pem. Затем используйте инструмент Signapk, предоставляемый Android, чтобы подписать,

Исходный код signapk находится в папке «build / tools / signapk», используется «signapk platform.x509.pem platform.pk8 input.apk output.apk»,

В имени файла лучше всего использовать абсолютный путь, чтобы предотвратить его обнаружение, или вы можете изменить исходный код и использовать его напрямую. Таким образом, финальный apk такой же, как и первый метод.

Наконец, чтобы объяснить принцип, сначала добавьте атрибут android: sharedUserId = «android.uid.system».

С помощью общего идентификатора пользователя можно настроить несколько APK-файлов с одним и тем же идентификатором пользователя для работы в одном процессе.

Затем сопоставьте UID программы с android.uid.system, то есть позвольте программе работать в системном процессе, чтобы у вас было право изменять системное время.

Недостаточно просто добавить UID. Если APK-файл установлен в это время, он не будет установлен, а подпись не будет совпадать.

Причина в том, что программа хочет запускаться в системном процессе, но также имеет ключ платформы целевой системы, которым являются два файла platform.pk8 и platform.x509.pem, упомянутые во втором методе выше.

После подписания этими двумя ключами apk фактически может быть помещен в системный процесс. Добавление LOCAL_CERTIFICATE: = platform к первому методу фактически использует эти два ключа для подписи.

Читайте также:  Рингтон для уведомлений андроид

Также существует проблема, то есть программа, сгенерированная таким образом, может использоваться только в исходной системе Android или системе, скомпилированной вами, потому что такая система может получить два файла platform.pk8 и platform.x509.pem.

Если Android, сделанный другой компанией, даже не может быть установлен. Попробуйте подписать ключ в исходном Android, программа работает на эмуляторе ОК, но при установке на G3 сразу же выдается запрос «Пакет . не имеет подписей, соответствующих подписям общего пользователя android.uid.system». Защитите безопасность системы.

Наконец, атрибут android: sharedUserId может не только помещать apk в системный процесс, но также настраивать несколько APK для работы в одном процессе.

Обмен данными должен быть полезным.

Что такое UID

Как мы все знаем, Pid — это идентификатор процесса, Uid — это идентификатор пользователя, но Android — это не то же самое, что компьютер. У каждого пользователя компьютера есть Uid, который запускает программу, Uid этой программы — это этот пользователь, и каждая программа в Android Существует Uid. По умолчанию Android назначает Uid с разным общим уровнем для каждой программы. Если вы звоните друг другу, только Uid может быть одинаковым. Это обеспечивает определенную степень безопасности общих данных. Данные не могут быть получены произвольно между программами.

Установите UID вашего собственного приложения на UID системного процесса

Существует три типа UID системного процесса:

  • android:sharedUserId=»android.uid.system»
  • android:sharedUserId=»android.uid.shared»
  • android:sharedUserId=»android.media»
    Давайте поэкспериментируем с первым. Две другие реализации будут такими же.

Объявить UID

Во-первых, нам нужно объявить UID приложения в манифесте:

Фирменная упаковка

Предварительным условием для упаковки подписи является наличие файла подписи системы, который обычно находится в каталоге build / target / product / security исходного кода, а пользовательские системы некоторых производителей размещаются в других каталогах. Например, Nanopc3, который я использую, находится в следующем каталоге, который может быть глобальным Найдите его. Сначала я также использовал каталог сборки, но его не удалось установить после упаковки. Позже я обнаружил, что в каталоге vendor также был / (ㄒ o ㄒ) /

загрузка… повторно загрузитьОтмена загрузка… повторно загрузитьОтмена

Среди них android: sharedUserId = «android.uid.system» соответствует двум файлам platform.pk8 и platform.x509.pem.
Вот три распространенных способа импорта системных подписей:

  • Повторно подписать сгенерированный apk
  • Повторно подписать собственный файл подписи приложения
  • Скомпилировать из mk файла

Уже есть apk

Созданный файл apk можно повторно подписать с помощью следующей команды через файл signapk.jar в каталоге исходного кода / out / host / linux-x86 / framework.

java -jar signapk.jar platform.x509.pem platform.pk8 my.apk new.apk

Обратите внимание, что четыре файла signapk.jar, platform.x509.pem, platform.pk8 и my.apk должны находиться по одному и тому же пути при использовании этой инструкции, в противном случае вам нужно изменить путь самостоятельно.

Восстановить подпись

После создания собственного файла ключа используйте инструмент keytool-importkeypair для повторного создания подписи с помощью следующей команды:

keytool-importkeypair -k demo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias demo

  • demo.jks: файл подписи
  • 123456: пароль файла подписи
  • platform.pk8, platform.x509.pem: файл подписи системы
  • демо: псевдоним файла подписи

Инструмент keytool-importkeypair можно загрузить сСкачать здесь。

Используйте файл mk для компиляции в исходной среде

Я не тестировал этот метод, потому что плохо разбираюсь в файлах mk. В обычных условиях он не будет использоваться. В конце концов, он в основном разработан с использованием инструментов ide. Достаточно двух вышеуказанных методов. При необходимости добавим позже.

Источник

Оцените статью