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?

Dmitriy Likhten
źródło

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.

jonesdavide
źródło
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.

Mindwin
źródło
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.

Dr.Dredel
źródło
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

klawiatura klawiszowa
źródło
Zobacz komentarze innych odpowiedzi. Mam już włączone instalacje nierynkowe, ponieważ zainstalowałem
swype