Jak poprawnie zainstalować aplikację systemową, biorąc pod uwagę jej plik .apk?


30

Usunąłem aplikację systemową (com.android.mms) i potrzebuję .apk potrzebnego do jej przywrócenia, jednak nie będzie ona instalowana za pośrednictwem standardowych kanałów (uruchomienie .apk daje mi „aplikację niezainstalowaną”). Jaki jest właściwy sposób instalacji .apk aplikacji systemowej?

Odpowiedzi:


41

Konieczne będzie popchnięcie pliku .apk do telefonu na partycję systemową do folderu /system/applub /system/priv-apppodczas korzystania z systemu Android 4.3 przy użyciu adb. Możesz znaleźć więcej informacji na temat adbtutaj: http://android-dls.com/wiki/index.php?title=ADB .

Aby napisać do /systemCiebie, prawdopodobnie musisz go ponownie zamontować, czytaj i pisz:

adb shell
su
mount -o rw,remount /system

Lub zrób to całkowicie z ADB hosta:

adb root
adb remount

Teraz możesz umieścić .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

Następnie, jeśli flagi nie są jeszcze ustawione, zmień uprawnienia. Wszystkie aplikacje systemowe muszą mieć uprawnienia rw-r--r--. Możesz je również zmienić za pomocą ADB za pomocą polecenia chmod 644 /path_to/your_file. Chociaż jest dość stary, może to pomóc

Po umieszczeniu .apkmusisz ponownie uruchomić urządzenie. Na przykład z adb reboot.


Tak, pomyślałem, że tak będzie, wypróbowałem to, mówi zły podpis. Użyłem Mms.apk, który jest częścią romu .zip, którego użyłem do zainstalowania obecnego Androida.
Dmitriy Likhten,

2
Piękna odpowiedź. Dzięki. Jeden komentarz, nie byłem w stanie „mv my-app.apk / system / app”. Wystąpił błąd „błąd„ XXX.apk ”- łącze między urządzeniami”. Byłem w stanie CP i RM apk, jak opisano w android.stackexchange.com/questions/75920/…
Michael Levy

1
Zastanów się nad użyciem cpzamiast, mvponieważ poruszasz się między różnymi systemami plików i nie jest on obsługiwany we wszystkich mvwersjach
Andres

to nie aktualizuje uprawnień Androida o lokalizację apk, która jest wymagana w przypadku pakietów korzystających z apk
paIncrease

5

Carl Parker pisze o tym na Android Authority :
(częściowo odtworzono tutaj na wypadek, gdyby oryginalny post się zepsuł)

W przypadku aplikacji zainstalowanych na urządzeniu

  • Zakładając, że zainstalowałeś aplikację na swoim urządzeniu, przejdź do linku do sklepu Google Play Store i zanotuj słowa po „? Id =” i zignoruj ​​resztę.
  • Podłącz urządzenie do komputera kablem USB.
  • Otwórz wiersz polecenia na komputerze i wpisz następujące polecenia:
adb remount 
adb shell 
su 
cd /data/app/ 
  • Wpisz polecenie ls appfilename*(gdzie „nazwa pliku aplikacji” to identyfikator aplikacji w sklepie Google Play; pamiętaj, aby na końcu umieścić gwiazdkę). To polecenie wyświetli pełną nazwę pliku APK aplikacji.
  • Wpisz następujące polecenie:
mv apk_full_filename_here /system/app/apk_full_filename_here 
exit 
exit 
adb reboot 
  • Urządzenie uruchomi się ponownie. Twoja aplikacja jest teraz zapisywana jako aplikacja systemowa.

W przypadku aplikacji, których pakiety APK znajdują się na dysku twardym komputera

  • Otwórz wiersz polecenia na komputerze i przejdź do miejsca, w którym znajduje się plik APK.
  • Włącz debugowanie USB w urządzeniu i podłącz urządzenie do komputera kablem USB.
  • Wpisz następujące polecenia:
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot

Telefon automatycznie uruchomi się ponownie. Twoja aplikacja zostanie teraz zapisana jako aplikacja systemowa.


3

zwróć uwagę, że podczas gry z adb będziesz instalować aplikacje za pomocą nazwy pliku pakietu (co oznacza, że ​​w wierszu polecenia wpisz> adb install myFile.apk)

ale odinstalujesz je za pomocą nazwy pakietu (> adb uninstall com.this.that.otherthing)

Nie będziesz mógł zainstalować pakietu, dopóki nie odinstalujesz jego poprzednika.

Pomoże to dodać adb do ŚCIEŻKI, dzięki czemu możesz po prostu przejść do katalogu, w którym znajduje się plik .apk i wpisać adb install myFile.apk.


Dzięki! Nie wiedziałem o mechanice odinstalowywania :)
Dmitriy Likhten,

Nie próbowałem z aplikacjami systemowymi, ale dla zwykłych aplikacji /system/bin/pm(Menedżer pakietów) działało dla mnie. Jak pm install -r myFile.apk( -rdla „zamień”). W ten sposób nie musisz odinstalowywać i znać nazwy pakietu.
Alexander Malakhov

0

Musisz mieć zainstalowany zestaw Android SDK (lub przynajmniej narzędzie o nazwie adb). Ponadto musisz zezwolić na „instalacje nierynkowe” na swoim urządzeniu.

Po wykonaniu tej czynności przejdź do folderu zawierającego plik z konsolą. Następnie podłącz telefon (przez USB) i uruchomadb install appname.apk


Zobacz komentarze innych odpowiedzi. Mam już włączone instalacje nierynkowe, ponieważ zainstalowałem
swype
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.