Priv app что это

В чем разница между системными приложениями и привилегированными приложениями на Android?

Итак, вот пример ситуации, когда они отличаются.

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

мой вопрос в том, что именно это означает? Если мое приложение является привилегированным, но не системным, какая разница? В PackageManagerService вы можете найти различные вещи которые отличаются между системой и привилегированными приложениями, они не совсем одинаковы. Должна быть какая-то идеология за привилегированными приложениями, иначе они просто сказали бы:

и покончено с этим. Это новая концепция, и я думаю, что было бы важно знать разницу между этими видами приложений для тех, кто занимается разработкой AOSP с 4.4.

3 ответов

Итак, после некоторого рытья ясно, что приложения в priv-app имеют право на системные разрешения, так же, как старые приложения имели право претендовать на системные разрешения, находясь в system-app. Единственная официальная документация Google, которую я мог найти, пришла в виде сообщения о фиксации: Совершить хэш: ccbf84f44c9e6a5ed3c08673614826bb237afc54

некоторые системные приложения больше, чем другие

разрешения»signatureOrSystem» больше не являются доступно для всех приложений проживание в разделе / system. Зато есть новый /system / priv-каталог приложений и только приложения, APKs которых находятся в этом каталоге каталогу разрешено использовать разрешения signatureOrSystem без совместное использование сертификата платформы. Это уменьшит поверхностную область для возможные эксплойты системных приложений, чтобы попытаться получить доступ к охраняемым разрешениям.

ApplicationInfo.Флаг FLAG_SYSTEM продолжает означать то, что он говорит в документация: это указывает на то, что приложение apk было в комплекте на / системном разделе. Новый скрытый флаг FLAG_PRIVILEGED было введено, что отражает фактическое право на доступ к этим разрешения.

обновление: начиная с Android 8.0 priv-приложение немного изменилось с добавлением привилегированного белого списка разрешений. Помимо того, что вы находитесь в priv-app, ваше приложение также должно быть добавлено в белый список, чтобы получить различные системные разрешения. Информация об этом может быть найдено здесь:https://source.android.com/devices/tech/config/perms-whitelist

мое obesrvation было, priv-app имеет разрешение root. предположим, если вы установите корневое приложение в system / app, ему все равно потребуется supersu для предоставления root. Но если вы устанавливаете одно и то же корневое приложение в system/priv-app, вам вообще не нужен supersu. Я наблюдал это, экспериментируя с ПЗУ, очищая все приложения chineese n, устанавливая adaway, titanium и т. д.

из того, что я Красный вокруг интернета, priv-app используются только для приложений google. Если вам все еще нужно запускать приложения с системными разрешениями, вы должны продолжать использовать /system/app. Метод, который вы публикуете в своих вопросах, фактически используется Google apps!

Источник

Как работает SystemUI в Android

Priv app что это. image loader. Priv app что это фото. Priv app что это-image loader. картинка Priv app что это. картинка image loader

В этой статье я разберу архитектуру и принцип работы основного приложения Android — SystemUI. Меня заинтересовала эта тема, потому что мне интересно, как устроена система, которой пользуется такое огромное количество пользователей и для которой ежедневно выкатываются тысячи приложений в Google Play или просто на просторы интернета. Помимо этого меня интересует вопрос информационной безопасности Android и создаваемых под него приложений.

В системе Android, SystemUI — это приложение, путь к исходному коду которого находится в platform_frameworks_base/packages/SystemUI/, на девайсе оно находится в system/priv-app/-SystemUI.

priv-app — это каталог, где хранятся привилегированные приложения. К слову, по пути system/app лежат предустановленные приложения, а обычные приложения, которые мы устанавливаем на свой девайс самостоятельно, хранятся в data/app.

Тут сразу возникает вопрос: почему нельзя засунуть все предустановленные и привилегированные приложения в один каталог, зачем нужно это разделение?

Дело в том, что некоторые приложения более системные, чем другие:) И это разделение необходимо для того чтобы уменьшить покрытие эксплойтами системных приложений, для получения доступа к защищенным операциям. Можно создавать приложение, которое будет иметь специальный ApplicationInfo.FLAG_SYSTEM и в системе получит больше прав, однако apk файл с таким разрешением будет помещен в раздел system.

Итак, SystemUI — это apk-файл, который по сути своей обычное приложение. Однако, если посмотреть на сложное устройство SystemUI, перестает казаться, что это всего лишь простое приложение, верно?

Данное приложение выполняет весьма важные функции:

Запуск SystemUI

Как я и говорила выше, SystemUI не похож на обычное приложение, так что его запуск не сопровождается запуском активности, как это происходит у большинства приложений. SystemUI — это глобальный пользовательский интерфейс, который запускается во время процесса загрузки системы и не может быть завершен.

Если мы залезем в SystemServer, который является одним из двух столпов в мире Android (второй — Zygote, но об этом я расскажу как-нибудь в другой раз), то мы можешь найти место, где стартует SystemUI при загрузке системы.

Тут мы видим как запускается сервис SystemUI с помощью непубличного API startServiceAsUser. Если бы вы захотели использовать это, то вам пришлось бы обратиться к рефлексии. Но если вы решите использовать reflection API в Android — подумайте несколько раз, стоит ли это того. Подумайте раз сто:)

Итак, тут создается отдельный процесс для приложения и по факту каждый раздел SystemUI является отдельным сервисом или независимым модулем.

Метод start() вызывается для запуска каждой службы, которые перечислены ниже.

Регулирование громкости

Мы регулярно пользуемся кнопками громкости на своих устройствах, но не задумываемся какие процессы должны произойти в системе для того чтобы мы могли прибавить или убавить звук. Операция кажется довольно простой на словах, но если заглянуть в VolumeUI, который находится в подпапке SystenUI/volume, в разных режимах интерфейс имеет свою вариацию.

Priv app что это. image loader. Priv app что это фото. Priv app что это-image loader. картинка Priv app что это. картинка image loader
Я уже говорила о том, что сервисы SystemUI запускаются методом start(). Если мы посмотрим на класс VolumeUI, то он тоже наследуется от SystemUI.

Тут мы видим что с помощью mEnabled мы определяем, следует ли нам показывать панель с настройкой звука. И судя по VolumeDialogComponent, VolumeUI отображает звуковую панель в виде диалога. Но все действия относительно нажатия на клавиши громкости обрабатываются в PhoneWindow.

Насколько мы видим, KEYCODE_VOLUME_UP (+) не обрабатывается и перейдет в обработку KEYCODE_VOLUME_DOWN (-). И в обоих событиях, как в onKeyDown, так и в onKeyUp вызывается метод dispatchVolumeButtonEventAsSystemService.

Итак, тут у нас вызывается метод adjustVolume, для того чтобы мы могли проверить наш direction, которому будет присвоен параметр события.

В итоге когда мы доберемся до AudioService, где будет вызван sendVolumeUpdate, где помимо вызова метода postVolumeChanged, будет установлен интерфейс HDMI.

RingtonePlayer

RingtonePlayer в Android выполняет роль проигрывателя. Он так же наследуется от SystemUI и в методе start() мы видим:

Здесь у нас устанавливается mCallback, который по сути является экземпляром IRingtonePlayer.

В итоге можно управлять RingtonePlayerService с помощью Binder для воспроизведения звуковых файлов.

PowerUI

PowerUI отвечает за управление питанием и уведомлениями. Аналогично наследуется от SystemUI и имеет метод start().

Как мы видим из приведенного выше кода, происодит подписка на изменения Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, а после — вызов mReceiver.init().

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

Задачи

Recents — это основная и часто используемая функция в мобильных устройствах на базе Android.

Главные функции:

Помимо этого Recents так же наследуется от SystemUI. В RecentsActivity происходит создание и обновление последних задач, чтобы мы могли увидеть их на нашем экране.

Priv app что это. image loader. Priv app что это фото. Priv app что это-image loader. картинка Priv app что это. картинка image loader
А в с помощью RecentTaskInfo мы можем получить информацию о конкретной задаче.

Вообще, запущенные задачи можно вынести в отдельную тему. Я изучила ее со всех сторон, так как хотела размывать экран приложения перед переходом приложения в background, чтобы в RecentsTask отображалась нечитаемая версия снапшота. Однако, проблема заключается в том, что снапшот приложения берется раньше, чем вызывается onPause(). Эту проблему можно решить несколькими способами. Либо выставлять флаг, чтобы система просто скрывала содержимое экрана с помощью

О чем я говорила в предыдущей статье, посвященной как раз снапшотам.

Можно вообще сделать так, чтобы конкретная activity приложения не отображалось в задачах, проставив в манифесте

Либо можно воспользоваться хитростью с помощью

Можно задать основной активности выше приведенный флаг excludeFromRecents = true, для того чтобы ее экран отсутствовал в запущенных задачах, но во время загрузки приложения запустить отдельную задачу, которая будет показывать либо размытый скриншот с основной активности, либо любое другое изображение. Более подробно, как это можно сделать описано в официальной документации на примере Google Drive.

Экран блокировки

Keyguard уже посложнее всех вышеприведенных модулей. Он представляет из себя сервис, который запускается в SystemUI, а управляется при помощи KeyguardViewMediator.

Однако на самом деле KeyguardService самостоятельно не работает с интерфейсом экрана блокировки, он лишь передает информацию в модуль StatusBar, где уже и производятся действия относительно визуального вида экрана и отображения информации.

Панель уведомлений

То мы видим ссылку на ресурс из которого читается имя класса и создается его экземпляр.

Таким образом мы видим что тут вызывается StatusBar, который будет работать с выводом уведомлений и UI.

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

Источник

Как удалить системные приложения на Android — инструкция с использованием root-прав и без них

Одно из главных преимуществ Android OS – возможность заменить большинство системных приложений сторонними альтернативами. В большинстве случаев (оболочки, клавиатуры, обои) всё это делается без проблем, штатными способами. Вы просто устанавливаете нужный лаунчер, клавиатуру, обои или приложение для звонков, как обычное приложение. Системные же альтернативы просто откладываются в сторону и остаются неактивными.

Но иногда системные приложения необходимо и удалять. Для чего? Существует два основных варианта:

[su_list icon=»icon: android» icon_color=»#006905″]

[su_note]В обоих случаях системные приложения нужно удалять. Однако занятие это более чем рискованное: можно ненароком сделать смартфон неработоспособным, и хорошо, если вам удастся восстановить его без потери данных.[/su_note]

Priv app что это. es explorer delete system app. Priv app что это фото. Priv app что это-es explorer delete system app. картинка Priv app что это. картинка es explorer delete system app

Удаление системных приложений обычными методами

Самый простой способ удаления системных приложений – удалить их файлы. Как правило, они хранятся в основном разделе, в папке system/app. Их вспомогательные файлы могут храниться и в других папках, например:

[su_list icon=»icon: android» icon_color=»#006905″]

Чтобы удалять системные файлы, вам понадобится как минимум две вещи:

[su_list icon=»icon: android» icon_color=»#006905″]

Priv app что это. androidp1 2. Priv app что это фото. Priv app что это-androidp1 2. картинка Priv app что это. картинка androidp1 2

[su_note]Ни в коем случае нельзя удалять службы Google. А вот приложения (Maps, Gmail, Hangouts), если они вам не нужны, в принципе, можно и удалить.[/su_note]

После завершения чистки сделайте хард-ресет (жёсткую перезагрузку) смартфона. Загрузившись без удалённых программ, он будет иметь совсем другой объём свободной памяти. Именно по состоянию памяти можно судить, получилось ли у вас почистить устройство.

Удаление системных приложений с помощью специальных программ

Конечно, работа руками – это котируется в среде Android. Но специализированные программы могут очистить вашу основную память от ненужных файлов куда эффективнее.

Примером такой «чистящей» программы может стать популярный Titanium Backup. Хотя основная функция приложения – резервное копирование программ с настройками – становится в Android встроенной, программа ещё долго не потеряет актуальности.

Priv app что это. titanium backup root. Priv app что это фото. Priv app что это-titanium backup root. картинка Priv app что это. картинка titanium backup root

Достоинство Titanium Backup – возможность не удалять сомнительные приложения сразу, а «заморозить» их. Если отсутствие той или иной программы скажется на работе других программ, вы всегда сможете её «разморозить». Если нет – можно смело удалять.

Ещё одна ценная черта этой программы – умение заменять исходные файлы сторонними. К примеру, если вы вместо стандартной программы-клавиатуры или телефонной книги хотите использовать альтернативную, вы сможете с помощью Titanium Backup сделать «переназначение».

Priv app что это. titanium backup. Priv app что это фото. Priv app что это-titanium backup. картинка Priv app что это. картинка titanium backup

Самое главное при установке Titanium Backup – убедиться, что в разделе для установки программ достаточно памяти. Иначе вам придётся либо удалять что-то нужное, либо следовать советам из предыдущего раздела.

Источник

Отвязываем смартфон от всевидящего ока Google

Компания Google быстро прошла путь от небольшой поисковой системы до гигантской инфраструктуры, компоненты которой работают на наших ПК, смартфонах, планшетах и даже телевизорах. Google неустанно собирает о нас информацию, поисковые запросы тщательно логируются, перемещения отслеживаются, а пароли, письма и контактная информация сохраняются на годы вперед. Все это неотъемлемая часть современности, но мы вполне можем ее изменить.

Введение

Ни для кого не секрет, что любое устройство под управлением Android (по крайней мере то, что сертифицировано Google) содержит в себе не только компоненты, собранные из AOSP, но и внушительное количество проприетарных программ Google. Это те самые Google Play, Gmail, Hangouts, Maps и еще куча приложений, включая диалер и камеру (начиная с KitKat).

Для всех этих компонентов нет не только исходного кода, но и вообще каких-либо пояснений по поводу принципов их работы. Многие из них изначально созданы с целью собирать определенные виды информации и отправлять их на серверы Google. Так, например, ведут себя GoogleBackupTransport, отвечающий за синхронизацию списка установленных приложений, паролей и других данных, GoogleContactsSyncAdapter, который синхронизирует список контактов, или ChromeBookmarksSyncAdapter, работа которого — синхронизировать закладки браузера. Плюс сбор информации обо всех запросах в поисковике.

В самом факте синхронизации, конечно, ничего плохого нет, и это великолепный механизм, который позволяет настроить новый телефон за считаные минуты, а Google Now даже умудряется дать нам полезную информацию на основе наших данных (иногда). Проблема только в том, что все это рушит нашу конфиденциальность, ибо, как показал Сноуден, под колпаком у АНБ (и, вероятнее всего, у кучи других служб) находится не только какая-нибудь империя зла под названием Microsoft, но и Google, а также множество других компаний из тусовки «мы не зло, а пушистые меценаты».

Говоря другими словами: Гугл сольет нас всех без всяких проблем, и не факт, что его сотрудники, сидя в своих офисах с массажистками и собачками, не ржут над именами из твоей контактной книги (там все зашифровано, да), попивая 15-летний пуэр из провинции Юньнань. А может быть, к черту этот Гугл? Возьмем их Android, а сами они пусть идут лесом?

Что такое Google Apps

Последняя версия кастомной прошивки на основе KitKat для моего смартфона весит 200 Мб, однако, чтобы получить настоящий экспириенс от смартфона, я должен прошить поверх нее еще и архив gapps, размер которого составляет 170 Мб. Только после этого я получу систему, аналогичную предустановленной на Nexus-устройства, со всеми плюшками в виде интегрированного с Google Now рабочего стола, блокировку экрана на основе снимка лица, камеру с поддержкой сферической съемки и килограмм гугловского софта, начиная от Google Play и заканчивая Google Books.

Еще раз повторюсь: все это закрытый софт от Google, который по-хорошему вообще нельзя распространять без их ведома (поэтому его нет в кастомных прошивках типа CyanogenMod), но так как извлечь его из прошивок Nexus-девайсов довольно просто, то в Сети можно найти огромное количество подобных архивов, в том числе сильно урезанных. Для того чтобы выпустить смартфон на Android с набором gapps на борту, производитель должен отправить его на сертификацию в Google, которая, оценив качество и производительность смартфона, либо даст добро, либо отфутболит (но китайцев это вообще никак не останавливает).

Так Google Apps попадают на смартфон. Из пользователей 99% либо юзают предустановленные приложения, либо устанавливают их самостоятельно на абсолютно чистую и полностью анонимную прошивку. А дальше с момента ввода имени пользователя и пароля начинается синхронизация и слив информации.

В каталоге /system/app мы найдем большое количество разных гугловских приложений, легко узнаваемых по названию пакета: Books.apk, Chrome.apk, Gmail2.apk и так далее. Каждое из них по-своему будет делиться информацией, но это абсолютно нормально (да, Google будет знать, что ты читаешь Пауло Коэльо через их приложение!). Наибольшую опасность здесь представляет GoogleContactsSyncAdapter.apk, который отвечает только за то, чтобы отправлять на удаленный сервер список контактов. Записываем название в блокнот и идем дальше.

Большинство файлов из каталога /system/priv-app — это сервисы и фреймворки, необходимые для запуска всей этой махины синхронизации и слежки:

В сущности, это и есть та часть Google Apps, которая ответственна за слив нашей частной информации. Попробуем от всего этого избавиться.

Способ номер 1. Отключение через настройки

Самый простой способ отвязать смартфон от Google — это воспользоваться стандартными настройками системы. Метод хорош тем, что не требует ни прав root, ни установки кастомных прошивок, ни кастомного рекавери. Все можно сделать в любой стоковой прошивке без потери доступа к аккаунту и приложениям типа Gmail (если это необходимо). Однако за эффективность никто ручаться не будет, так как вполне возможно, что некоторые компоненты gapps продолжат отправку данных.

В тех же «Настройках Google», кстати, можно отключить любое приложение, использующее аккаунт Google для авторизации. Речь при этом идет не только о софте, установленном на девайс, но и вообще обо всех когда-либо использованных приложениях, включая веб-сайты. Я, например, обнаружил в этом списке множество сайтов, на которые не заходил уже как минимум пару лет.

Хакер #182. Все о Bitcoin

Способ номер 2. Очистка официальной прошивки

В прошлых (да и в будущих) версиях системы содержимое Google Apps отличается, поэтому перед удалением рекомендую скачать gapps нужной версии с сайта goo.im/gapps, распаковать с помощью WinRar и просмотреть содержимое. Также следует учитывать зависимость некоторых приложений из маркета от приложений Google, подробнее об этом я расскажу позже.

Priv app что это. gapps libs. Priv app что это фото. Priv app что это-gapps libs. картинка Priv app что это. картинка gapps libs Это только часть библиотек, входящих в комплект gapps

Способ номер 3. Кастомная прошивка без gapps

Предыдущий способ можно существенно упростить, если просто установить на смартфон кастомную прошивку без Google Apps. В этом случае смартфон/планшет будет кристально чист без всякой привязки к Google. Недостаток этого способа — отсутствие Google Play, но можно либо заменить его сторонним магазином приложений (об этом ниже), либо использовать следующий способ, который включает в себя установку урезанной версии Google Apps.

Способ номер 4. Google Play и ничего кроме

Этот способ частичной отвязки от Google — своего рода компромисс. Он не решает проблему слежки — по крайней мере без настроек из первого способа, — но позволяет не захламлять систему кучей бесполезного софта, который будет висеть в фоне и жрать память. Суть проста — ставим кастомную прошивку и заливаем поверх нее минималистичную версию gapps, которая включает в себя только Google Play.

Таких минимальных сборок gapps в Сети множество, но я бы рекомендовал использовать проверенные временем BaNkS Gapps, а именно файл «месяц-числоGAppsCore4.4.2signed.zip». Они работают на любом смартфоне, совместимы с ART и включают в себя только основные файлы gapps, список которых приведен в разделе «Что такое Gapps», файлы фреймворка, а также несколько библиотек. По сути, это Google Play, инструменты синхронизации и ничего больше.

Меняем поисковик на DuckDuckGo

Сторонний маркет

Второй и третий способ предполагают полное избавление от Google Apps, включая Google Play и возможность логина с помощью Google-аккаунта, поэтому мы должны найти способ простой и удобной установки приложений, который не заставлял бы нас выкачивать их самостоятельно, а затем скидывать на карту памяти и устанавливать вручную. Один из таких способов — установить сторонний маркет.

На данный момент существует три более или менее жизнеспособные альтернативы Google Play. Это Amazon Appstore, Yandex.Store и 1Mobile Market. У каждого из них есть свои преимущества и недостатки, которые в основном сводятся к количеству приложений и способам оплаты:

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

Priv app что это. amazon. Priv app что это фото. Priv app что это-amazon. картинка Priv app что это. картинка amazon Amazon Appstore Priv app что это. . Priv app что это фото. Priv app что это-. картинка Priv app что это. картинка Yandex.Market Priv app что это. 1mobile. Priv app что это фото. Priv app что это-1mobile. картинка Priv app что это. картинка 1mobile 1Mobile Market

Open Source Маркет

Кроме описанных в статье, а также множества других менее известных магазинов приложений, в Сети можно найти отличающийся от остальных репозиторий F-Droid. Он полностью анонимен и содержит только свободный софт, распространяемый под лицензиями, одобренными фондом FSF. Приложений в F-Droid всего тысяча, зато все они гарантированно не содержат бэкдоров и других систем разглашения личных данных. Именно F-Droid используется в качестве дефолтового маркета в свободной Android-прошивке Replicant.

Решение проблемы зависимости приложений от Google Apps

Несмотря на то что компоненты gapps не являются частью официального API Android, некоторые приложения все-таки ожидают увидеть их в системе, из-за чего может возникнуть ряд проблем — от полной неработоспособности приложения до потери части его функций. Некоторые приложения откажутся устанавливаться из-за отсутствия Google Maps API, другие падают сразу после запуска, не обнаружив его, третьи включают в себя прямые ссылки на Google Play, что может привести к падениям и некорректной работе.

Чтобы решить эти проблемы, пользователь MaR-V-iN с XDA начал проект NOGAPPS, в рамках которого ведется разработка набора открытых компонентов, заменяющих оригинальную функциональность Google Apps. В данный момент доступно три компонента-замены:

Установка компонентов производится отдельно и разными способами. Network Location достаточно вручную скопировать в каталог /system/app/ в Android 2.3–4.3 или в каталог /system/priv-app/ в KitKat (в этом случае следует использовать файл NetworkLocation-gms.apk). Maps API устанавливается с помощью прошивки файла nogapps-maps.zip через консоль восстановления. Для установки маркета придется не только копировать файл, но и генерировать Android ID на большой машине, но, так как делать это не рекомендуется, я не буду об этом рассказывать и ограничусь ссылкой на инструкцию.

После всех манипуляций софт должен корректно заработать.

Выводы

Для компании Google Android без ее собственных приложений бесполезен, поэтому нет ничего удивительного в том, что компания выносит в них самые вкусные части системы и оставляет код закрытым. Однако в этой статье я показал, что жизнь без gapps есть и она может быть даже проще и удобнее, чем с Google.
[authors]

Priv app что это. Evgenij Zobnin 1. Priv app что это фото. Priv app что это-Evgenij Zobnin 1. картинка Priv app что это. картинка Evgenij Zobnin 1

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *