packageinstaller что это за программа на андроид
Установщик пакетов Xiaomi — что это такое? (com.android.packageinstaller)
Приветствую. Android — операционная система с множеством предустановленных программ, компонентов, служб. Некоторые можно безопасно отключить, однако другие — критически важны.
Установщик пакетов Xiaomi — что это?
Системная служба Android установки программ при помощи apk-файлов. Внутри службы хранится небольшое количество информации, если служба повреждена — будет сбой разбора пакета, ошибка установки.
Действия при ошибке установки
Откройте настройки, далее выбираем Приложения:
Нажимаем три точки в правом верхнем углу — выбираем Системное ПО:
Нажимаем Остановка > Очистить кэш:
Важно: после очистки кэша может пропасть возможность откатить версию приложения на предыдущую.
Если все равно ошибка установки — можно попробовать обратиться в сервисный центр. Однако сперва скопируйте все важные данные на карту, в облако или на ПК, так как при восстановлении данные могут быть удалены.
Пример работы
В файловом менеджере файл-инсталлятор браузера Опера — opera-vpn-1-4-1.apk:
Если по нему нажать — будут предложены несколько действий, среди которых — Установщик пакетов:
Если выбрать — запустится процесс установки, появится кнопка Установить:
В итоге браузер Opera будет установлен через установщик, а не напрямую. Стандартно при открытии apk-файла (пакета) он и запускается, однако бывают ошибки, при которых стоит установить приложение именно через файловый менеджер.
Удалять/морозить нельзя — иначе потом не сможете устанавливать софт.
Может быть два, а размер одного из — внушительным:
com.google.android.packageinstaller — что это такое на Android? (GooglePackageInstaller)
com.google.android.packageinstaller (GooglePackageInstaller) — отвечает за установку приложений Android, используется магазином Play Store для установки/удаления/обновления приложений на вашем устройстве.
Присутствует в стоковом Android начиная с версии 4.4.
Является системным/основным компонентом, соответственно удалять нельзя.
Другими словами com.google.android.packageinstaller может быть замечен при инсталляции приложений. Чтобы проверить, какие были установлены — откройте Google Play, перейдите в раздел Мои приложения и игры, выберите Все. Дальше можете просмотреть все последние приложения, установленные на ваш телефон. Может появляться в списке активности возможно из-за включенного обновления Google PlayStore.
В справочной информации Android сказано — в случае когда интернет-трафик платный, то можно заблокировать доступ в интернет для Google Play. Блокировать необходимо следующие пакеты:
Можно сделать вывод:
Можно ли удалить?
Нашел сообщение на форуме 4PDA:
Возможно правда, что пакет нужен для установки приложений именно из маркета. Будет ли устанавливаться apk-файлы без этого пакета? Нужно проверять, как раз для этого и можно использовать Titanium Backup — заморозить и протестировать.
Судя по этому сообщению — отключение/остановка пакета com.google.android.packageinstaller приведет к зависанию телефона при включении:
Вывод — не стоит отключать/морозить/удалять данное приложение!
По поводу ошибки
У одного пользователя была ошибка — он устанавливал Андроид 6, далее при установке любого apk — ошибка в приложении, вот комментарий человека:
Потом человек написал решение:
Так что если у вас также будет похожая ошибка — данное решение может помочь и вам.
При появлении Ошибка синтаксических пакетов, попробуйте:
Заключение
Надеюсь информация оказалась полезной. Удачи и добра!
Русские Блоги
Вещь об Android PackageInstaller
Краткое введение в PackageInstaller сегодня
Давайте начнем объяснять:
Конечно, мы начнем с этого интерфейса установки, какой это интерфейс? Это активность PackageInstallerActivity. Как это началось? Давайте посмотрим, как это определяется в AndroidManifest
Очевидно, что мы можем начать с действия android.intent.action.INSTALL_PACKAGE или начать с действия android.intent.action.VIEW плюс тип «application / vnd.android.package-archive», конечно же, нет Этот тип также может быть запущен, но много таких действий будет найдено. Кроме того, невозможно начать с имени класса или имени пакета. Итак, большинство стартапов такие
Здесь мы передаем данные, которые являются Uri pakFile, и затем мы переходим к onCreate PackageInstallerActivity, чтобы увидеть
Полученный Uri файла apkFile, который мы только что передали, дает mPackageURI, затем получает PackageManager и затем генерирует mPkgInfo, который является PackageParser.Package, что очень важно. Давайте посмотрим, как генерируется PackageParser.Package и что содержится в PackageParser.Package. Затем мы собираемся в PackageUtil.getPackageInfo
Создайте анализатор пакетов, используйте этот анализатор для получения данных, необходимых для PackageParser.Package, и сгенерируйте PackageParser.Package. Давайте посмотрим, как PackageParser.parsePackage генерирует PackageParser.Package. Здесь передаются четыре параметра: исходный файл, файл apk, путь apk, информация о экране и последний 0. Что вы делаете, вы можете ввести его. понимать
Сначала sourceFile.isFile () определяет, является ли это файл, если нет, возвращает, затем isPackageFilename (sourceFile.getName ()) определяет, является ли это файл apk, если нет, возвращают, затем переходят к получению трех ключевых переменных, то есть
Каковы эти три? Вот краткий доклад, менеджер активов AssetManager, используемый для управления ресурсами, полученными в пакете
Конечно, информация о ресурсах также получается через AssetManager. XmlResourceParser, как следует из названия, представляет собой анализатор файлов ресурсов Xml, используемый для анализа наших файлов XML
Получить имя пакета.
Проанализируйте и получите атрибуты нашего AndroidManifest, которые определены в attrs_manifest.xml в frameworks / base / core / res / res / values
Это переменная информация. Следующим шагом является большой цикл. Здесь есть больше проанализированного контента. Давайте приведем несколько общих примеров, таких как «приложение»
Содержащаяся в нем информация, такая как метка здесь, а также «активность», «получатель», «служба», «поставщик» и т. Д., С указанием родителя. Здесь, в качестве примера «активность», перейдите в frameworks / В attrs_manifest.xml под base / core / res / res / values это
Здесь много переменных. При определении активности некоторые использовались, а некоторые не использовались. Анализатор ресурсов файла Xml получает значение этой переменной из xml и затем выплачивает эти переменные; также есть «разрешение» «Разрешение, то есть
Вы часто будете видеть подобные вещи, есть также «группа разрешений», «использует-sdk» и т. Д. Те, кто заинтересован, могут изучить их один за другим. Со временем эта информация будет включена в наш пакет. Мы понимаем, что пакет здесь? Это материал, который содержит всю информацию в упаковке. На этом этапе наш пакет был сгенерирован, и затем мы возвращаемся к onCreate PackageInstallerActivity, а затем смотрим вниз, пропуская те, которые не важны.
Тогда вот startInstallConfirm (), который
Список, который получает PermissionInfo, представляет собой mPermsList. Затем мы смотрим на asp.getPermissionsView (), который
Вот макет нашего разрешения View, который является макетом app_perms_summary.xml в frameworks / base / core / res / res / layout. Если мы хотим изменить разрешение VIew, мы должны начать здесь. Давайте посмотрим, как он генерируется, который является setPermissions (mPermsList)
Здесь нужно различать опасные типы карт, то есть разрешения класса PermissionInfo.PROTECTION_DANGEROUS или общие разрешения normalMap, а затем перейти к showPermissions ().
Мы присвоили отображаемый контент нашему макету. Я не буду объяснять здесь по одному. Давайте посмотрим на displayPermissions.
Видя это, очень ясно, как генерируется наше разрешение View. Больше никаких объяснений. На данный момент наша деятельность PackageInstallerActivity полностью сформирована, сделайте снимок
[img]http://dl2.iteye.com/upload/attachment/0105/9085/4e9dd276-a8be-35c2-b3b4-f3b06fd03fb3.png[/img]
Далее поговорим о том, что мы сделали после нажатия «Установить».
Я запустил другой файл acitvity, который называется InstallAppProgress, и последние несколько данных, в основном mPkgInfo.applicationInfo, который представляет собой ApplicationInfo, и mPackageURI, который является Uri для apkFile, и некоторые другие данные. Тогда мы идем на создание InstallAppProgress
То есть installPackageWithVerification
Я отправил сообщение INIT_COPY и перенес класс InstallParams, состоящий из параметров, которые мы передали. InstallParams, унаследованный от HandlerParams, посмотрим, что выполнило сообщение
Здесь сначала mPendingInstalls.add (idx, params) помещает информацию, которую мы хотим установить, в список HandlerParams mPendingInstalls, а затем отправляет сообщение MCS_BOUND, которое
HandlerParams params = mPendingInstalls.get (0) считывает информацию о пакете, которую мы хотим установить, а затем очищает информацию о пакете. Если есть другие пакеты, продолжайте отправлять сообщение MCS_BOUND, повторяя цикл до завершения всех установок. Тогда где он установлен? То есть
Этот, иди и посмотри
То есть processPendingInstall (mArgs, mRet)
Здесь запускается поток для установки, который
Это installPackageLI (args, true, res), здесь больше кодов, поэтому я не буду перечислять их все
Очевидно, что если это первая установка для установки NewPackageLI, если она должна заменить replacePackageLI, мы переходим к установке NewPackageLI
mInstaller также является установщиком, так что посмотрите
Что касается его внешнего вида, то здесь выясняется, что Socket используется для связи. Сообщите серверу информацию о пакете, который мы хотим установить, и пусть сервер сделает все остальное. Этот сервер находится на нижнем уровне и выполнил некоторые задачи копирования и другие. Я не буду вдаваться в подробности.
Это было то же предложение, чтобы угодить мастерам и дать хорошую идею опоздавшим: не ругайте меня за спину и не благодарите Бога.
[Советы] «Липосакция» Android + MIUI 10 или отключаем ненужное
[index]Содержание [#1]Общее… [#2]Список замороженного с пояснениями [#3]Скрипт для отключения замороженного [/index] |
Рад всех приветствовать!
Хотел рассказать о своём опыте облегчения жизни устройству, заключающееся в отключении мне не нужных приложений, сервисов и т. п.
Возможно, кому–либо это поможет.
Пост постараюсь поддерживать в актуальном состоянии. С задержкой от «нововведения» минимум на сутки, так как надо сначала самому оценить влияние любого, вновь отключаемого приложения, а уж потом писать.
Правда, приходится не забывать запускать его каждый раз при перезапуске аппарата, так как с редактированием init.qcom.rc и (или) default.prop у меня лёгкая проблема в виде бутлупа 🙂
А дальше итерационно…
В Titanium Backup приложение морозится, удаляются его данные. Перезагрузка в TWRP, Очистка → Выборочная очистка → Dalvik/ART cache + cache → перезагрузка в ОС, ожидание, Titanium Backup, …
На следующей странице (оглавление вверху) что было заморожено с пояснениями по поводу приложений (что знал и удалось найти в сети). Удалил без сожаления facebook, MGRSVendorApp, PartnerNetflix…
Установщик пакетов из GApps’ов ( com.google.android.packageinstaller ) удалять нельзя! Морозить тоже. Будет лёгкий кирпичик. Скорее всего, возврат /data/system/packages.xml проблему решит, но не факт.
На текущий момент мой R5A жив-здоров и за весь день (05:00 ÷ 21:00) съедает 20 ÷ 25 процентов заряда (по данным BetterBatteryStats до 1,6%/час), и это за рабочий день, когда звонки, СМС и почта + нет WiFi, LTE не работает и сидишь на 3G. Сейчас суббота, за 16 часов при подключенном WiFi расход 10 (десять) процентов батареи. Как по мне вполне хороший результат. Некоторые приложения ругаются на то, что им нужны google play services (штатный ассистент, музыка, Авито, Вайбер), но при этом вполне себе работают и не докучают вылетами. На четвёртой странице скриншоты… Они местами длинные очень И на экране компа смотрятся непривычно.
Чтобы на 10.1.1.0.NCKMIFI нормально работал TitaniumBackup до первого использования стоит поставить busybox. До этого я голову себе сломал, пытаясь понять почему же не все версии запускаются (особенно новые).
NB! После проведённых манипуляций аппарат до заводских настроек не возвращается. Только полная перепрошивка. Связано это с ГАппсами, насколько я смог понять.
«The Compatibility Test Suite (CTS) is a free, commercial-grade test suite, available for download. The CTS represents the «mechanism» of compatibility.
The CTS runs on a desktop machine and executes test cases directly on attached devices or an emulator. The CTS is a set of unit tests designed to be integrated into the daily workflow (such as via a continuous build system) of the engineers building a device. Its intent is to reveal incompatibilities early on, and ensure that the software remains compatible throughout the development process.»
«CTS uses these apps to test privileges and permissions. To pass the tests, you must preload the apps into the appropriate directories on the system image without re-signing them.»
Русские Блоги
Механизм управления пакетами Android (два) PackageInstaller устанавливает APK
Предисловие
В предыдущей статье этой серииМеханизм управления пакетами Android (1) Инициализация PackageInstallerВ этой статье мы узнали, как инициализируется PackageInstaller. В этой статье мы продолжаем изучать, как PackageInstaller устанавливает APK. Исходный код этой серии статей основан на Android8.0.
1. Обработка в PackageInstaller
В методе onClick кнопки OK и Cancel обрабатываются отдельно, и в основном просматривается обработка кнопки OK. Метод startInstall вызывается в примечании 1: packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
Метод startInstall используется для перехода к действию InstallInstalling и закрытия текущего PackageInstallerActivity. InstallInstalling в основном используется для отправки информации о пакете диспетчеру пакетов и обработки обратных вызовов управления пакетами. Метод установки установки onCreate показан ниже. packages/apps/PackageInstaller/src/com/android/packageinstaller/InstallInstalling.java
Примечание 1. Для получения SessionInfo в соответствии с mSessionId, SessionInfo представляет подробную информацию о сеансе установки. Примечание 2: Если sessionInfo не равно Null и не активен, создайте и выполните InstallingAsyncTask. Метод doInBackground в InstallingAsyncTask запишет информацию APK в PackageInstaller.Session в виде потока ввода-вывода в соответствии с Uri пакета (APK). Метод onPostExecute для InstallingAsyncTask показан ниже. packages/apps/PackageInstaller/src/com/android/packageinstaller/InstallInstalling.java
Создал PendingIntent и отправил IntentSender PendingIntent с помощью метода фиксации PackageInstaller.Session в примечании 1. Куда он пропал? Затем посмотрите на метод фиксации PackageInstaller.Session. frameworks/base/core/java/android/content/pm/PackageInstaller.java
2. Обработка уровня инфраструктуры Java
frameworks/base/services/core/java/com/android/server/pm/PackageInstallerSession.java
Метод фиксации инкапсулирует информацию о пакете как PackageInstallObserverAdapter, который определен в PMS. В примечании 1 обработчику будет отправлено сообщение типа MSG_COMMIT, где adapter.getBinder() Вы получите наблюдателя типа IPackageInstallObserver2.Stub, и по типу вы узнаете, что этот наблюдатель может быть вызван из процессов. Код для обработки сообщения показан ниже. frameworks/base/services/core/java/com/android/server/pm/PackageInstallerSession.java
Получите наблюдатель mRemoteObserver типа IPackageInstallObserver2 в Примечании 1, а метод commitLocked в Примечании 2 показан ниже. frameworks/base/services/core/java/com/android/server/pm/PackageInstallerSession.java
Метод commitLocked относительно длинный. Здесь перехватывается самая важная информация и вызывается метод installStage PMS, так что логика кода входит в PMS. Вернемся к методу handleMessage mHandlerCallback, если метод CommitLocked имеет исключение PackageManagerException, будет вызван метод dispatchSessionFinished из примечания 3, и его реализация выглядит следующим образом: frameworks/base/services/core/java/com/android/server/pm/PackageInstallerSession.java
Примечание 1 вызовет метод onPackageInstalled для IPackageInstallObserver2, который реализован в классе PackageInstallObserver: frameworks/base/core/java/android/app/PackageInstallObserver.java
Примечание 1 вызывает метод onPackageInstalled для PackageInstallObserver, класс, реализующий этот метод, является подклассом PackageInstallObserver, вышеупомянутого PackageInstallObserverAdapter. Подводя итог, можно сказать, что метод dispatchSessionFinished будет вызывать обратно информацию об исключении PackageManagerException, которая появляется в методе Complete, в PackageInstallObserverAdapter через метод onPackageInstalled mRemoteObserver.
3. Резюме
В этой статье объясняется процесс установки APK PackageInstaller, вкратце, это два шага:
Поскольку обработка установки APK в PMS более сложна, обработка PMS будет объяснена в следующей статье этой серии.