Вчера при удалении вредоносных программ с телефона я случайно удалил приложение с помощью команды adb:
pm uninstall -k --user 0
Я подозреваю, что виновником является com.sec.factory.camera
, так как после этого несчастного случая приложение камеры вылетает каждый раз, когда я пытаюсь его запустить.
Я попытался переустановить его с помощью любой из этих двух команд
pm install com.sec.factory.camera
pm install --user 0 com.sec.factory.camera
но они вернули мне сообщение об ошибке «не могу открыть не файл».
Я также пытался загрузить APK на свой телефон и установить его с Android, но в конце процесса установки я получил сообщение «приложение не установлено».
Ваша помощь будет очень признательна, чтобы вернуть мою камеру.
Мой телефон — Samsung s7 Edge без рута, работающий под управлением Oreo 8.0.
Технически команда adb shell pm unistall -k --user 0 <package_name>
не удаляет приложение с устройства. Вместо этого он просто удаляет его у пользователя.
Есть несколько способов вернуть удаленное приложение пользователю: один из них — через оболочку adb с помощью команды:
adb shell cmd package install-existing <package_name>
Или крайним способом будет через сброс настроек устройства.
unkown command: install-existing
Я удалил пакет «com.google.android.partnersetup», когда собирался удалить другое приложение. Я не смог восстановить его методом Бо Лоусона. Вместо этого я нашел этот способ:
pm dump com.google.android.partnersetup | grep Path
Это дает нам несколько путей. Я собираюсь использовать один из них:
" codePath= /system/priv-app/GooglePartnerSetup"
Наконец, я устанавливаю приложение, которое находится в этом направлении. Приложение имеет то же имя, что и папка приложения, с «.apk» в конце:
pm install -r --user 0 /system/priv-app/GooglePartnerSetup/GooglePartnerSetup.apk
Я надеюсь, что это поможет, но я не знаю, что именно это делает. Мой источник: комментарий от Mac23
Мой путь
Ответ Бо Лоусона сработал отлично и является лучшим ответом для тех, у кого нет root-доступа, вот что я сделал:
Установите приложение еще раз:
adb shell cmd package install-existing <package-name>
Затем удалите его:
adb shell pm uninstall <package-name>
Затем установите приложение или его обновление из Google Play или из браузера.
У меня была такая же проблема с моим телефоном Android 6. На Android 6 adb shell cmd ...
команды недоступны.
Я исправил это следующим образом (требуется root или кастомное восстановление с полным доступом к файловой системе):
/system/priv-app
папке/data/app
)Я надеюсь, что это может помочь другим, у кого также нет Android 7 или новее.
В тех случаях, когда install-existing
решение недоступно, работает метод dandan657 . Но я нашел более простой способ поиска местоположения существующего APK. В оболочке ADB введите:
pm list packages -f -u | grep <package name>
Вы получите результат в таком формате:
package:<full path to the apk>=<package name>
Пример:
package:/system/app/Photos/Photos.apk=com.google.android.apps.photos
Это полезные необязательные параметры, которые pm list packages
принимает команда:
-f: See their associated file.
-d: Filter to only show disabled packages.
-e: Filter to only show enabled packages.
-s: Filter to only show system packages.
-3: Filter to only show third party packages.
-i: See the installer for the packages.
-u: Also include uninstalled packages.
--user <USER_ID>: The user space to query.
Совет : Используя вышеизложенное, было бы неплохо сохранить списки пакетов с различными фильтрами для дальнейшего использования.
Ссылка: https://android-doc.github.io/tools/help/shell.html#pm
Повелитель огня