.apkを指定してシステムアプリを適切にインストールする方法を教えてください。


30

システムアプリ(com.android.mms)を削除し、それを復元するために必要な.apkがありますが、標準のチャネルからインストールされません(.apkを実行すると「アプリケーションがインストールされていません」)。システムアプリの.apkをインストールする適切な方法は何ですか?

回答:


41

.apkを電話にプッシュして、システムパーティションにフォルダーを配置する/system/app/system/priv-app、Android 4.3を使用してadbいる場合はを使用する必要があります。詳細についてadbは、http//android-dls.com/wiki/index.php?title = ADBをご覧ください

書き込みを行うに/systemは、おそらく読み書き可能に再マウントする必要があります。

adb shell
su
mount -o rw,remount /system

または、ホストのADBから完全に実行します。

adb root
adb remount

これで、次を配置できます.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

その後、フラグがまだ設定されていない場合は、許可を変更します。すべてのシステムアプリには権限が必要rw-r--r--です。また、コマンドを使用してADB経由で変更することもできchmod 644 /path_to/your_fileます。それはかなり古いですが、これは役立つかもしれません

を配置し.apkたら、デバイスを再起動する必要があります。たとえばadb reboot


いや私はこれが進むべき道であると考え、それを試してみました、悪い署名を言います。現在実行中のAndroidのインストールに使用した.zip ROMの一部であるMms.apkを使用しました。
ドミトリーリックテン

2
美しい答え。ありがとう。1つのコメント、「mv my-app.apk / system / app」ができませんでした。「「XXX.apk」で失敗しました-クロスデバイスリンク」というエラーが表示されました。android.stackexchange.com/questions/75920/で
Michael Levy

1
使用を検討してcpするのではなく、mvあなたが異なるファイルシステム間で移動しているので、それがすべてではサポートされていないmvバージョン
アンドレス

これは、apkを使用するパッケージに必要なapkの場所でAndroidのアクセス許可を更新しません
-paIncrease

5

カールパーカーは、 Android Authorityでそれについて書いています:(
元の投稿がダウンした場合に備えて、ここで部分的に再現されています)

デバイスにインストールされたアプリの場合

  • デバイスにアプリをインストールしたと仮定して、アプリのGoogle Playストアリンクに移動し、「?id =」の後の単語をメモして、残りを無視します。
  • デバイスをUSBケーブルでコンピューターに接続します。
  • コンピューターでコマンドプロンプトを開き、次のコマンドを入力します。
adb remount 
adb shell 
su 
cd /data/app/ 
  • コマンドを入力しますls appfilename*(「appfilename」はGoogle PlayストアでのアプリのIDです。最後にアスタリスクが含まれていることを確認してください)。このコマンドは、アプリの完全なAPKファイル名を表示します。
  • 次のコマンドを入力してください。
mv apk_full_filename_here /system/app/apk_full_filename_here 
exit 
exit 
adb reboot 
  • デバイスが再起動します。これで、アプリがシステムアプリとして保存されました。

APKがPCのハードドライブにあるアプリの場合

  • コンピューターでコマンドプロンプトを開き、APKファイルがある場所に移動します。
  • デバイスでUSBデバッグを有効にし、USBケーブルでデバイスをコンピューターに接続します。
  • 次のコマンドを入力します。
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot

電話は自動的に再起動します。これで、アプリがシステムアプリとして保存されます。


3

adbで遊ぶときは、パッケージファイル名を使用してアプリをインストールします(つまり、コマンドプロンプトで> adb install myFile.apkと入力します)

ただし、パッケージ名を使用してそれらをアンインストールします(> adb uninstall com.this.that.otherthing)

前のパッケージをアンインストールするまで、パッケージをインストールすることはできません。

PATHにadbを追加すると、.apkファイルがあるディレクトリに移動して、adb install myFile.apkと入力できるようになります。


ありがとう!アンインストールの仕組みについて知りませんでした:)
ドミトリーリクテン

システムアプリで試したことはありませんが、通常のアプリ/system/bin/pm(パッケージマネージャー)ではユーティリティが機能しました。のようにpm install -r myFile.apk-r「置換」)。この方法では、アンインストールしてパッケージ名を知る必要はありません。
アレクサンダーマラホフ

0

Android SDK(または少なくともadbと呼ばれるツール)をインストールする必要があります。さらに、デバイスで「非市場インストール」を許可する必要があります。

これが完了したら、コンソールでファイルを含むフォルダーに変更します。次に、電話を(USB経由で)接続して実行しますadb install appname.apk


他の回答のコメントを参照してください。swypeをインストールしてから、すでに非マーケットインストールを有効にしている:)
ドミトリーリックテン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.