Как правильно превратить приложение в системное под Android Oreo и выше?

Я пробовал несколько способов превратить приложение в системное, но даже если в каком-то случае мне удалось установить приложение внутри /system/priv-app, приложение не работало как системное приложение, как я мог выяснить, проверив запуск командная оболочка adb ps. Так что, пожалуйста, может кто-нибудь сказать мне, если я что-то пропустил или есть какое-то ограничение, связанное с Lineage или, может быть, Magisk или TWRP, чтобы приложение работало как системное приложение?

Я пробовал с Lineage 15.1 (Oreo) и magisk 21.2, телефон Samsung S5 с использованием TWRP 3.5.0_9-0 в качестве метода восстановления системы.

1 делаем копию папки приложения во внутреннюю память

2 переименование скопированной папки с коротким именем без точки (например, переименование папки com.example.myapp в папку Myapp)

3 переименовав апк из base.apk в Myapp.apk

4 удаление приложения

5 в режиме восстановления TWRP смонтируйте системный раздел и скопируйте папку Myapp в каталог system/priv-app

6 chmod 755 Папка MyApp

7 чмод 644 Myapp.apk

8 стираем Dalvilk Cache и перезагружаемся

Шаги 2 и 3 могут быть бесполезными, это было только потому, что я заметил, что каталог Priv-app использует эту схему именования для приложений внутри этой папки. Я попробовал этот метод в Lineage 17.1 и Magisk 21.4, но затем телефон не смог перезагрузиться, пока я не удалю вновь созданная папка внутри priv-app

Я также попробовал другой метод, используя модуль Magisk Systemize (Terminal), но результат был таким же (приложение работало, но не как системное приложение)

Я также пытался поместить приложение в папку System/app, но результат был таким же.

Поскольку я никогда не видел, чтобы это упоминалось в каком-либо опубликованном методе, объясняющем, как превратить приложение в системное приложение, установленное приложение не было подписано ключом платформы, а манифест не включал android:sharedUserId=android.uid.system.

Заранее спасибо тем, кто попытается помочь.


person Lisadev    schedule 06.02.2021    source источник


Ответы (1)


Я бы попробовал следующее, убедившись, что у меня нет пользовательской копии установленного приложения (где-то в /data).

Сначала доберитесь до корневой оболочки.

  • adb root && adb перемонтировать

Используйте путь /system/app для системных приложений и /system/priv-app для привилегированных приложений. (для пути priv-app вам также необходимо создать priv-app-whitelist.xml с указанными разрешениями, https://source.android.com/devices/tech/config/perms-allowlist)

  • adb shell mkdir -p /system/app/имя_приложения
  • adb push имя_приложения.apk /system/app/имя_приложения
  • перезагрузка adb

Не знаете, как вы подтверждаете, работает ли приложение как системное приложение или нет?

person Rajat Gupta    schedule 24.02.2021