Install system application android

How to install user apps as Android system apps

Part of the benefits of having an Android device is being able to install an app on it. Installing is as simple as one, two, three; just search for your desired app on the Google Play Store and hit the Install button. Though installing apps is easy, they can be installed as either user apps or system apps.

User apps are installed in the typical way via the Google Play Store, Amazon Appstore, third-party markets, or sideloading. In contrast, system apps are apps pre-installed in the phone’s system partition with your ROM and typically, Android device users don’t have the access to the system partition. This means that, ordinarily, users cannot directly install apps to or uninstall from the system partition.

You can install user apps as system apps by using such apps as Titanium Backup, but you have to go for the paid version of the app to be able to enjoy such feature. However, there are other methods to install user apps as system apps without paying fees. Check out this guide for methods of installing ordinary user apps as system apps.

Warning

  • The information in this guide is provided for instructional and educational purposes only. There is no guarantee that these instructions will work under your specific and unique circumstances.
  • Use these instructions at your own risk. We shall not hold any responsibility or liability for whatever happens to you or your device arising from your use of the info in this guide.
  • Read and understand the whole guide first before actually performing the instructions.

Requirements

  • A rooted Android device. If you haven’t rooted your Android device yet, you can check out our list of the rooting methods we’ve covered.
  • Enable USB debugging on your Android device. On most Android devices, you can find USB Debugging in Settings > Applications > Development.
  • Backup all personal data on your phone to make sure you have a copy of your personal data (e.g., contacts, SMS, MMS, Internet settings, Wi-Fi passwords, and the like) in case the procedure in this guide erases such data.
    • For backup tips, check our guides on how to sync your data to the cloud and how to create local backups of your mobile data.
  • Maintain a battery charge of 70% or more to make sure that you have sufficient power for the entire procedure.

Installing a System App with ES File Explorer

For this method, you will need root access and the ES File Explorer app. You can download this app free from the Google Play Store.

  1. Configure ES File Explorer by doing the following steps:
    1. Launch ES File Explorer.
    2. Select Menu and choose Settings.
    3. Under Settings, enable the options for Up to root and Root Explorer. A message will appear, requiring you to confirm your action. You will also need to confirm Superuser access.
    4. Enable Mount File System.
    5. Go back to the app’s main menu.
  2. Get a copy of the APK (Android Package) of the app that you want to save as a system file by doing the following steps (skip to step 3 if you already have the app’s APK file):
    1. Install an app from the Google Play Store. For this guide, we will be using the app BioRhythms as an example.
    2. Launch ES File Explorer and navigate to /data/app.
    3. Locate the APK file that you want to install as a system app. If you don’t know the APK’s filename, simply go to the Google Play Store link of your chosen app. View the link and take note of the words after “?id=”. This will be your APK’s filename. For instance, the BioRhythms app link is https://play.google.com/store/apps/details?id=app.biorhythms. The BioRhythms’ APK is app.biorhythms-1.apk.
  3. Create a backup of the chosen APK by copying it to the phone’s SD Card.
  4. After creating a backup, long tap on the APK file and a menu will appear. Choose Cut. A blue arrow will appear at the bottom of the screen.
  5. Go back to the main menu and navigate to /system/app/.
  6. Drag the little arrow at the bottom of the screen. It will bring up the icon of the APK file.
  7. Tap the APK file and it will be transferred to /system/app/.
  8. Find the APK file in /system/app/. Press and hold it and a menu will appear.
  9. Select Properties on the menu. The dialog properties will show up.
  10. Tap Change and it will show the permissions dialog box.
  11. Check the boxes for the following permissions in the dialog box:
    • User: Read and Write
    • Group: Read
    • Other: Read
  12. Select OK once the required settings have been made.
  13. Reboot your device.
Читайте также:  Как установи для андроид сигнал вызова

You app is now saved as a system app.

Installing a System App via ADB

For this method, make sure that you have installed ADB (Android Debug Bridge) on your computer. You can get ADB by setting up the Android Software Development Kit (SDK) on your computer.

Источник

Install system application android

Windows Subsystem for Android (WSA) — позволяет запускать Android-приложения внутри среды Windows 11

Требуется 8гб Оперативной памяти

Сообщение отредактировал Lux Darkus — 16.11.21, 15:15

резерв под бэкап

Сообщение отредактировал Kodekс — 22.10.21, 22:35

дальше пишем adb start-server .

далее нажимаем 1, потом 2.

дальше adb connect 127.0.0.1:58526(у меня так может отличатся порт)
посмотреть можно так.

дальше установка самих апк.
adb install и дальше путь до файла.

Сообщение отредактировал Strelloc — 23.10.21, 01:42

Кто хочет пощупать Windows Subsystem for Android
(ваш CPU должен поддерживать виртуализацию и желательно иметь 8+Гб RAM)

1 — Включаем в компонентах «Платформу виртуальной машины» (Hyper-V/WSL не нужны)
Это можно сделать и руками

На всякий случай включаем «режим разработчика» в Конфиденциальность и безопасность — для разработчиков.

2 — Устанавливаем Windows Subsystem for Android 1.8.32822.0 — скачать MEGA
от админа руками ввести в папке с распакованным файлом PowerShell

или скачать WSA-install.ps1 положить рядом с файлом установки и запустить через правую мыши — выполнить с помощью PowerShell)

старая весрия Windows Subsystem for Android 1.7.32815.0 — скачать MEGA
от админа руками ввести в папке с распакованным файлом PowerShell

или скачать WSA-install.ps1 положить рядом с файлом установки и запустить через правую мыши — выполнить с помощью PowerShell)

(в установленном приложении ставим галку на developer чтобы можно было подключиться через ADB)

3 — Работаем с APK

Рабочее приложение для установки APK и не только.
Есть как инсталляция в систему так и портативная полнофункциональная версия.
После установки полной версии или распаковки портативной ассоциируйте APK файлы с приложением (WSA-pacman.exe).
Приложение после запуска показывает запущен ли WSA и позволяет зайти в настройки Android и установленных приложений.

WSATools наконец то допилили до рабочего состояния. Установить из магазина Мега
(Средство автоматизированной установки APK в WSL на базе UWP)

Читайте также:  Carlinkit для android auto

Установка APK с командной строки — или с помощью готовых bat файлов

Для автоматизации действий с apk качаем архив MEGA

APK_install_WSA.bat — перетаскиваем на него файл APK для установки
Push_File_to_WSA.bat — перетаскиваем файл который хотите послать в WSL папку Downloads
WSA_settings.bat — открыть внутренние настройки WSL

Для работы bat файлов — WSL должен быть запущен и включен режим разработчика + в самом WSL единоразово нажать и открыть окно «Файлы» для загрузки виртуальной машины

Вручную работаем с командной строкой — открываем cmd и вписываем две команды:

Источник

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

В этой статье я разберу архитектуру и принцип работы основного приложения 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, в разных режимах интерфейс имеет свою вариацию.


Я уже говорила о том, что сервисы 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 происходит создание и обновление последних задач, чтобы мы могли увидеть их на нашем экране.


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

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

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

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

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

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

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

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

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

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

SystemBars имеет довольно сложное устройство и структуру. Его работа разделяется на два этапа:

  1. Инициализация SystemBars
  2. Отображение уведомлений

Если посмотреть на запуск SystemBars

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

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

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

Источник

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