Come posso installare correttamente un'app di sistema dato il suo .apk?


30

Ho rimosso un'app di sistema (com.android.mms) e ho il .apk necessario per ripristinarlo, tuttavia non si installerà attraverso i canali standard (eseguendo il .apk mi dà "l'applicazione non installata"). Qual è il modo corretto di installare .apk di un'app di sistema?

Risposte:


41

Dovrai spingere il .apk sul telefono nella partizione di sistema nella cartella /system/appo /system/priv-appquando usi Android 4.3 usando adb. Puoi trovare maggiori informazioni adbqui: http://android-dls.com/wiki/index.php?title=ADB .

Per scriverti /systemprobabilmente dovrai rimontarlo in lettura-scrittura:

adb shell
su
mount -o rw,remount /system

Oppure, fallo interamente dall'ADB dell'host:

adb root
adb remount

Ora puoi posizionare .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

Successivamente, se i flag non sono già impostati, modificare le autorizzazioni. Tutte le app di sistema devono disporre delle autorizzazioni rw-r--r--. Puoi anche cambiarli tramite ADB con il comando chmod 644 /path_to/your_file. Anche se è piuttosto vecchio, questo può aiutare

Dopo aver inserito il .apknecessario è necessario riavviare il dispositivo. Ad esempio con adb reboot.


Sì, ho pensato che sarebbe stata la strada da percorrere, l'ho provato, dice una cattiva firma. Ho usato Mms.apk che fa parte della rom .zip che ho usato per installare l'attuale Android in esecuzione.
Dmitriy Likhten,

2
Bella risposta. Grazie. Un commento, non sono stato in grado di "mv my-app.apk / system / app". Ho ricevuto un errore "errore su" XXX.apk "- collegamento tra dispositivi". Sono stato in grado di CP e RM l'apk come descritto in android.stackexchange.com/questions/75920/…
Michael Levy

1
Prendi in considerazione l'uso cpinvece di mvperché ti stai spostando tra diversi file system e non è supportato in tutte le mvversioni
Andres

questo non aggiorna le autorizzazioni Android con la posizione dell'apk, che è richiesta per i pacchetti che usano l'apk
paIncrease

5

Carl Parker ne scrive su Android Authority :
(in parte riprodotto qui nel caso in cui il post originale scenda)

Per le app installate sul dispositivo

  • Supponendo che tu abbia installato l'app sul tuo dispositivo, vai al link del Google Play Store dell'app e prendi nota delle parole dopo "? Id =" e ignora il resto.
  • Collega il tuo dispositivo al computer tramite cavo USB.
  • Apri il prompt dei comandi sul tuo computer e digita i seguenti comandi:
adb remount 
adb shell 
su 
cd /data/app/ 
  • Digita il comando ls appfilename*(dove "appfilename" è l'ID dell'app su Google Play Store; assicurati di includere l'asterisco alla fine). Questo comando visualizzerà il nome file APK completo dell'app.
  • Immettere il comando seguente:
mv apk_full_filename_here /system/app/apk_full_filename_here 
exit 
exit 
adb reboot 
  • Il dispositivo ora si riavvierà. L'app è ora salvata come app di sistema.

Per app i cui APK sono presenti sul disco rigido del PC

  • Apri un prompt dei comandi sul tuo computer e vai alla posizione in cui si trova il file APK.
  • Abilita il debug USB sul dispositivo e collega il dispositivo al computer tramite cavo USB.
  • Immettere i seguenti comandi:
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot

Il telefono si riavvierà automaticamente. L'app verrà ora salvata come app di sistema.


3

tieni presente che quando giochi con adb installerai le app tramite il nome del loro file del pacchetto (ovvero, al prompt dei comandi digiterai> adb install myFile.apk)

ma li disinstallerai tramite il nome del loro pacchetto (> adb uninstall com.this.that.otherthing)

Non sarai in grado di installare un pacchetto fino a quando non avrai disinstallato il suo predecessore.

Aiuterà ad aggiungere adb al tuo PERCORSO in modo che tu possa semplicemente andare nella directory in cui si trova il file .apk e digitare adb install myFile.apk.


Grazie! Non sapevo della meccanica di disinstallazione :)
Dmitriy Likhten,

Non ho provato con le app di sistema, ma per le solite app /system/bin/pm(Package Manager) l'utilità ha funzionato per me. Come pm install -r myFile.apk( -rper "sostituire"). In questo modo non è necessario disinstallare e conoscere il nome del pacchetto.
Alexander Malakhov il

0

Devi avere Android SDK installato (o almeno uno strumento chiamato adb). Inoltre, è necessario consentire "Installazioni non di mercato" sul dispositivo.

Fatto ciò, si passa alla cartella che contiene il file con una console. Quindi collegare il telefono (tramite USB) ed eseguireadb install appname.apk


Vedi i commenti delle altre risposte. Sono già abilitate installazioni non di mercato da quando avevo installato
swype
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.