Wie installiere ich eine System-App mit der APK-Datei richtig?

30

Ich habe eine System-App (com.android.mms) entfernt und ich habe die .apk-Datei, die zum Wiederherstellen benötigt wird. Sie wird jedoch nicht über die Standardkanäle installiert (das Ausführen der .apk-Datei gibt an, dass die Anwendung nicht installiert ist). Wie installiere ich die .apk-Datei einer System-App?

Dmitriy Likhten
quelle

Antworten:

41

Sie müssen die .apk auf das Telefon schieben, um die Systempartition in den Ordner /system/appoder /system/priv-appbei Verwendung von Android 4.3 zu verwenden adb. Weitere Informationen finden Sie adbhier: http://android-dls.com/wiki/index.php?title=ADB .

Um /systemIhnen schreiben zu können, müssen Sie es wahrscheinlich mit Lesen und Schreiben erneut einbinden:

adb shell
su
mount -o rw,remount /system

Oder machen Sie es komplett vom ADB des Hosts:

adb root
adb remount

Jetzt können Sie Folgendes platzieren .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

Wenn die Flags noch nicht gesetzt sind, ändern Sie anschließend die Berechtigungen. Alle System-Apps benötigen die Berechtigungen rw-r--r--. Sie können sie auch über ADB mit dem Befehl ändern chmod 644 /path_to/your_file. Obwohl es ziemlich alt ist, kann dies helfen

Nachdem Sie das platziert haben, müssen .apkSie Ihr Gerät neu starten. Zum Beispiel mit adb reboot.

Jonesdavide
quelle
Ja, ich dachte, das wäre der richtige Weg, versuchte es, sagt eine schlechte Unterschrift. Ich habe die Mms.apk verwendet, die Teil des .zip-Roms ist, mit dem ich das aktuelle Android-Programm installiert habe.
Dmitriy Likhten
2
Schöne Antwort. Vielen Dank. Ein Kommentar, ich konnte nicht "mv my-app.apk / system / app". Ich habe die Fehlermeldung "Fehler bei 'XXX.apk' - Geräteübergreifender Link" erhalten. Ich war in der Lage, die apk CP und RM wie in android.stackexchange.com/questions/75920/…
Michael Levy
1
Ziehen Sie in Betracht, cpanstelle von zu verwenden, mvda Sie zwischen verschiedenen Dateisystemen wechseln und dies nicht in allen mvVersionen unterstützt wird
Andres,
dies nicht die Android - Berechtigungen mit der Lage des apk zu aktualisieren, die für Pakete erforderlich ist, die die apk verwenden
paIncrease
5

Carl Parker schreibt darüber auf Android Authority :
(teilweise hier reproduziert, falls der ursprüngliche Beitrag ausfällt)

Für auf dem Gerät installierte Apps

  • Angenommen, Sie haben die App auf Ihrem Gerät installiert, rufen Sie den Google Play Store-Link der App auf und notieren Sie die Wörter nach "? Id =". Der Rest wird ignoriert.
  • Schließen Sie Ihr Gerät über ein USB-Kabel an den Computer an.
  • Öffnen Sie die Eingabeaufforderung auf Ihrem Computer und geben Sie die folgenden Befehle ein:
adb remount 
adb shell 
su 
cd /data/app/ 
  • ls appfilename*Geben Sie den Befehl ein (wobei "App-Dateiname" die ID der App im Google Play Store ist; achten Sie darauf, dass Sie das Sternchen am Ende einfügen). Dieser Befehl zeigt den vollständigen APK-Dateinamen der App an.
  • Geben Sie den folgenden Befehl ein:
mv apk_full_filename_here /system/app/apk_full_filename_here 
exit 
exit 
adb reboot 
  • Das Gerät wird jetzt neu gestartet. Ihre App ist jetzt als System-App gespeichert.

Für Apps, deren APKs sich auf der PC-Festplatte befinden

  • Öffnen Sie eine Eingabeaufforderung auf Ihrem Computer und navigieren Sie zum Speicherort der APK-Datei.
  • Aktivieren Sie das USB-Debugging auf Ihrem Gerät und verbinden Sie Ihr Gerät über ein USB-Kabel mit dem Computer.
  • Geben Sie die folgenden Befehle ein:
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot

Ihr Telefon wird automatisch neu gestartet. Ihre App wird jetzt als System-App gespeichert.

Mindwin
quelle
3

Beachten Sie, dass Sie beim Spielen mit adb Apps über deren Paketdateinamen installieren (dh Sie geben an der Eingabeaufforderung> adb install myFile.apk ein).

aber Sie werden sie über ihren Paketnamen deinstallieren (> adb uninstall com.this.that.otherthing)

Sie können ein Paket erst installieren, wenn Sie seinen Vorgänger deinstalliert haben.

Es ist hilfreich, adb zu Ihrem PFAD hinzuzufügen, sodass Sie einfach in das Verzeichnis wechseln können, in dem sich die APK-Datei befindet, und adb install myFile.apk eingeben.

Dr.Dredel
quelle
Vielen Dank! Wussten Sie nicht über die Deinstallationsmechanik :)
Dmitriy Likhten
Habe es nicht mit System-Apps versucht, aber für gewöhnliche Apps hat das /system/bin/pmDienstprogramm (Package Manager) bei mir funktioniert. Like pm install -r myFile.apk( -rfür "ersetzen"). Auf diese Weise müssen Sie nicht deinstallieren und den Paketnamen kennen.
Alexander Malakhov
0

Sie müssen das Android SDK installiert haben (oder zumindest ein Tool namens adb). Außerdem müssen Sie "Nicht-Market-Installationen" auf Ihrem Gerät zulassen.

Danach wechseln Sie mit einer Konsole in den Ordner, der die Datei enthält. Schließen Sie dann Ihr Telefon (über USB) an und führen Sie es ausadb install appname.apk

Keyboard-Surfer
quelle
Siehe die Kommentare anderer Antworten. Ich habe bereits Nicht-Markt-Installationen aktiviert, seitdem ich Swype installiert habe :)
Dmitriy Likhten