Als ich gestern Bloatware von meinem Telefon entfernte, habe ich versehentlich eine App mit dem Befehl adb deinstalliert:
pm uninstall -k --user 0
Ich vermute, der Schuldige ist com.sec.factory.camera
, da die Kamera-App seit diesem unglücklichen Ereignis jedes Mal abstürzt, wenn ich versuche, sie zu starten.
Ich habe versucht, es mit einem dieser beiden Befehle neu zu installieren
pm install com.sec.factory.camera
pm install --user 0 com.sec.factory.camera
aber sie haben mir eine Fehlermeldung zurückgegeben, dass keine Datei geöffnet werden kann.
Ich habe auch versucht, das APK auf mein Telefon herunterzuladen und es von Android zu installieren, aber am Ende des Installationsvorgangs erhielt ich die Meldung „Anwendung nicht installiert“.
Ihre Hilfe wäre sehr dankbar, um meine Kamera zurückzubekommen.
Mein Telefon ist ein nicht gerootetes Samsung s7 Edge mit Oreo 8.0.
Technisch gesehen deinstalliert der Befehl adb shell pm unistall -k --user 0 <package_name>
keine App vom Gerät. Stattdessen wird es einfach von einem Benutzer entfernt.
Es gibt ein paar Möglichkeiten, die entfernte App wieder an den Benutzer zu bringen: Eine Möglichkeit ist über eine Adb-Shell mit dem Befehl:
adb shell cmd package install-existing <package_name>
Oder ein extremer Weg wäre ein Werksreset des Geräts.
unkown command: install-existing
Ich habe das Paket "com.google.android.partnersetup" deinstalliert, als ich eine andere App deinstallieren wollte. Ich konnte es mit Bo Lawsons Methode nicht wiederherstellen. Stattdessen fand ich diesen Weg:
pm dump com.google.android.partnersetup | grep Path
Dies gibt uns einige Pfade. Einer davon ist derjenige, den ich verwenden werde:
" codePath= /system/priv-app/GooglePartnerSetup"
Schließlich installiere ich die App, die in diese Richtung geht. Die App hat denselben Namen wie der App-Ordner, mit ".apk" am Ende:
pm install -r --user 0 /system/priv-app/GooglePartnerSetup/GooglePartnerSetup.apk
Ich hoffe, das hilft, aber ich weiß nicht, was genau das tut. Meine Quelle: Kommentar von Mac23
Auf meine Art
Die Antwort von Bo Lawson hat perfekt funktioniert und ist die beste Antwort für diejenigen ohne Root-Zugriff, das habe ich getan:
Installieren Sie die App erneut, indem Sie:
adb shell cmd package install-existing <package-name>
Dann deinstallieren Sie es durch:
adb shell pm uninstall <package-name>
Installieren Sie dann die App oder ihr Update von Google Play oder von Ihrem Browser.
Ich hatte das gleiche Problem mit meinem Android 6 Handy. Unter Android 6 adb shell cmd ...
sind die Befehle nicht verfügbar.
Ich habe es folgendermaßen behoben (benötigt Root- oder benutzerdefinierte Wiederherstellung mit vollem Dateisystemzugriff):
/system/priv-app
Ordner/data/app
)Ich hoffe, dies kann anderen helfen, die auch kein Android 7 oder neuer haben.
Für Situationen, in denen install-existing
keine Lösung verfügbar ist, funktioniert die Methode von dandan657 . Aber ich habe einen einfacheren Weg gefunden, um nach dem Speicherort der vorhandenen APK zu suchen. Geben Sie in der ADB-Shell Folgendes ein:
pm list packages -f -u | grep <package name>
Sie erhalten das Ergebnis in diesem Format:
package:<full path to the apk>=<package name>
Beispiel:
package:/system/app/Photos/Photos.apk=com.google.android.apps.photos
Dies sind die nützlichen optionalen Parameter, die pm list packages
der Befehl akzeptiert:
-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.
Tipp : Wenn Sie das Obige verwenden, ist es möglicherweise eine gute Idee, verschieden gefilterte Paketlisten für die zukünftige Verwendung zu speichern.
Referenz: https://android-doc.github.io/tools/help/shell.html#pm
Feuerlord