Wie installiere ich eine versehentlich deinstallierte App über ADB neu?

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.

Die App muss immer noch irgendwo in /system vorhanden sein, also versuchen Sie, ihren absoluten Speicherort zu finden und von dort aus zu installieren.

Antworten (6)

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.

Ich bekommeunkown 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

  1. Installieren Sie den Solid-Explorer
  2. Einstellungen öffnen
  3. Root-Speicher aktivieren
  4. Zurück zum Thema
  5. Hamburger-Menü öffnen
  6. Stamm auswählen
  7. Gehen Sie zum System
  8. Gehen Sie zur App
  9. Durchsuchen Sie Ihre App
  10. Es installieren

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):

  1. Suchen Sie die APK-Datei des gelöschten Pakets im /system/priv-appOrdner
  2. Verschieben Sie die APK-Datei an einen anderen Ort (zB /data/app)
  3. Telefon neustarten
  4. Verschieben Sie die APK-Datei zurück an ihren ursprünglichen Speicherort
  5. Telefon neustarten

Ich hoffe, dies kann anderen helfen, die auch kein Android 7 oder neuer haben.

Für Situationen, in denen install-existingkeine 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 packagesder 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