Як мені правильно встановити системний додаток з урахуванням його .apk?


30

Я видалив системний додаток (com.android.mms) і у мене є .apk, необхідний для його відновлення, однак він не встановиться через стандартні канали (запуск .apk дає мені "додаток не встановлено"). Який правильний спосіб встановити .apk системного додатка?

Відповіді:


41

Вам потрібно буде натиснути .apk на телефон до системного розділу в папку /system/appабо /system/priv-appпри використанні Android 4.3 за допомогою adb. Докладнішу інформацію можна знайти adbтут: http://android-dls.com/wiki/index.php?title=ADB .

Для того, щоб написати /systemвам, вам, ймовірно, доведеться перезаписати його зачитувати і записувати:

adb shell
su
mount -o rw,remount /system

Або зробити це повністю з ADB хоста:

adb root
adb remount

Тепер ви можете розмістити .apk:

adb push my-app.apk /sdcard/
adb shell
su
cd /sdcard
mv my-app.apk /system/app
# or when using Android 4.3 or higher
mv my-app.apk /system/priv-app

Потім, якщо прапори ще не встановлені, змініть дозволи. Усі системні програми повинні мати дозволи rw-r--r--. Ви також можете змінити їх через ADB за допомогою команди chmod 644 /path_to/your_file. Хоча це досить старе, але це може допомогти

Після розміщення .apkпотрібно перезавантажити пристрій. Наприклад, с adb reboot.


Так, я зрозумів, що це буде шлях, спробував це, говорить поганий підпис. Я використовував Mms.apk, який є частиною .zip rom, який я використовував для встановлення поточного запущеного Android.
Дмитро Лихтен

2
Прекрасна відповідь. Спасибі. В одному коментарі я не зміг "mv my-app.apk / system / app". Я отримав помилку "не вдалося на" XXX.apk "- перехресне посилання". Я зміг CP і RM apk, як описано в android.stackexchange.com/questions/75920/…
Майкл Леві

1
Подумайте про використання cpзамість того, mvщо ви рухаєтесь між різними файловими системами, і це підтримується не у всіх mvверсіях
Андрес

це не оновлює права доступу до android з розташуванням apk, що потрібно для пакетів, які використовують apk
paIncrease

5

Карл Паркер пише про це в Android Authority :
(частково відтворюється тут на випадок, якщо початковий пост знизиться)

Для додатків, встановлених на пристрої

  • Якщо припустити, що ви встановили додаток на своєму пристрої, перейдіть за посиланням у магазині Google Play Store та занотуйте слова після "? Id =" та проігноруйте решту.
  • Підключіть свій пристрій до комп'ютера за допомогою кабелю USB.
  • Відкрийте командний рядок на своєму комп’ютері та введіть такі команди:
adb remount 
adb shell 
su 
cd /data/app/ 
  • Введіть команду ls appfilename*(де "ім'я програми" - це ідентифікатор програми в Google Play Store; обов’язково введіть зірочку в кінці). Ця команда відобразить повне ім’я файлу APK програми.
  • Введіть таку команду:
mv apk_full_filename_here /system/app/apk_full_filename_here 
exit 
exit 
adb reboot 
  • Тепер пристрій перезавантажиться. Тепер ваш додаток зберігається як системний додаток.

Для програм, чиї APK-файли знаходяться на жорсткому диску ПК

  • Відкрийте командний рядок на своєму комп’ютері та перейдіть до місця, де знаходиться файл APK.
  • Увімкніть налагодження USB на своєму пристрої та підключіть пристрій до комп'ютера за допомогою кабелю USB.
  • Введіть такі команди:
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot

Ваш телефон автоматично перезавантажиться. Тепер ваш додаток буде збережено як системний додаток.


3

зауважте, що під час гри з adb ви будете встановлювати програми через ім'я файлу пакету (тобто в командному рядку ви введете> adb install myFile.apk)

але ви видалите їх через назву пакета (> adb uninstall com.this.that.otherthing)

Ви не зможете встановити пакет, поки не видалите його попередника.

Це допоможе додати adb до вашої PATH, щоб ви могли просто перейти до каталогу, де знаходиться файл .apk та ввести adb install myFile.apk.


Спасибі! Не знав про видалення механіки :)
Дмитро Лихтен

Не пробував із системними програмами, але /system/bin/pmдля мене працювала звичайна програма (Package Manager). Як pm install -r myFile.apk( -rдля "заміни"). Таким чином, вам не потрібно видаляти та знати назву пакета.
Олександр Малахов

0

Потрібно встановити Android SDK (або принаймні інструмент, який називається adb). Далі потрібно дозволити "Неринкові встановлення" на вашому пристрої.

Після цього ви переходите до папки, яка містить файл із консоллю. Потім підключіть телефон (через USB) і запустітьadb install appname.apk


Дивіться коментарі інших відповідей. Вже увімкнено неринкові встановлення, оскільки я встановив
swype
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.