Установка .apk как системного приложения напрямую (с рутом)

Мне интересно, можно ли установить файл .apk как системное приложение напрямую (с рутом)? Без преобразования пользовательского приложения в системное приложение.

Ответы (2)

Вы можете просто скопировать apk (его имя не имеет значения) в /system/app или /system/priv-app , установить соответствующие разрешения (rw-rr, root:root) и затем выполнить перезагрузку. Вот и все.

Хорошо работает на Android 6.0.1.

Можете ли вы удалить apk из папки /system/app после перезагрузки, как только он будет установлен?
Наличие APK необходимо для того, чтобы приложение работало, иначе после удаления приложение не запустится, хотя значок приложения останется в панели запуска до перезагрузки устройства.
Как именно вы «просто копируете apk»? А что, если приложение уже установлено?
Используйте приложение файлового менеджера, например Solid Explorer, чтобы скопировать Apk в нужное место и установить разрешения. Если приложение уже установлено, переместите (не скопируйте) его apk из каталога /data/app в место, которое я упомянул в ответе. Перезагрузка исправит ситуацию сама по себе. @androiddeveloper
Solid Explorer пишет, что не может скопировать/переместить папку APK-файла. Также пытался сделать это для файла. Это не удалось. Также пытался либо /system/app или /system/priv-app . Проверено на рутированном Pixel 2 с Q beta 5. Перезагрузка, конечно, тоже не помогла.
@androiddeveloper, когда я писал этот ответ, я тестировал его на стабильной версии Nougat, поэтому предлагаю вам задать новый вопрос по вашей проблеме.
@Firelord Может быть, с N все изменилось?
Теперь я попробовал приложение «/system/app mover» на Nexus 5 с Android 9 (конечно, пользовательское ПЗУ) и BusyBox, которое ему по какой-то причине требуется, и оно преобразовало приложение в системное приложение без каких-либо проблем. Попробовал еще раз на моем Pixel 2 с Android Q, и он все еще показывал ошибку, что он не может этого сделать «не удалось смонтировать / систему». Странный
У меня также есть проблема с монтированием системного раздела как rw, но все равно не удалось. В Android 10 есть что-то, называемое оверлейной файловой системой, чтобы делать что-то подобное, но до сих пор это не удалось.

Через ADB: (Сначала скопируйте apk на телефон через usb/мой компьютер)

Пример:

adb shell                                           (Get into shell to run beow commands)
su                                                  (Run as root)
mount -o rw,remount /system                         (Mount system read/write since default it read-only)
chmod 755 /system/priv-app/Messaging_SEP81          (Set permissions on folder)
chmod -R 644 /system/priv-app/Messaging_SEP81       (Set permissions on apk file)
ls -l /system/priv-app/Messaging_SEP81              (Check permissions - Should be: -rw-r--r-- 1 root root - not sure what 1 & 2 is)
ls -l /system/priv-app | grep "Messaging"           (Check permissions - Should be: drwxr-xr-x 2 root root)
reboot                                              (Reboot device)
Что делать, если после mount -o rw,remount /system, он показывает /dev/block/sda43 is read-only? Кроме того, что такое «Messaging_SEP81»? Как преобразовать существующее приложение в системное?