Androidでアプリを強制的に上書きインストールする方法! 新しい/古いapkバージョンを導入しよう

Android

adb環境のあるパソコンを用意すれば、すでにAndroid上に存在するアプリであってもapkファイルから上書きインストールできます。

そこで本記事では、Androidでアプリを強制的に上書きインストールする方法を紹介します。

アプリバージョンが変わっても導入可能なパターンもあるので、ぜひご覧あれ。

photo by Android Developers

 

スポンサーリンク

PCからAndroidへapkを上書きインストールする方法

Androidでapkファイルから直接アプリをインストールする方法として、apkファイルを端末側へ移してから実行するのが一般的ですが、パソコンから直接インストール指示を与えることも可能です。

【apkとは?】 – Android向けアプリを構成するパッケージのこと。ファイル拡張子は”.apk”。Androidに入れることでapkが作るアプリをインストールできる。

本記事ではその中でも、すでにAndroid上に存在するapkファイルを上書きインストールする手順を解説しています。

事前準備をする

事前に下記5点の準備が必要です。

  • パソコンでadbコマンドを使えること
  • 「USBデバッグ」をオンにすること
  • apkファイルを準備すること
  • 「提供元不明のアプリ」を許可すること
  • USBケーブルを準備する

パソコンでadbコマンドを使えること

お使いのパソコンでadbコマンドの環境を用意して下さい。

Windows・Macそれぞれの手順は、関連記事で解説しています。

Windowsでadbコマンドを使う方法! Android SDKを入れてパソコンのコマンドプロンプトから操作しよう
「Android Studio」をご存知でしょうか? Android Studio(アンドロイド スタジオ)は、Googleが提供するAndroidプラットフォームに対応する統合開発環境のこと。 引用 Wikipedia - And...
Macでadbコマンドを使う方法! Android Studioを入れてmacOSのターミナルから操作しよう
「Android Studio」をご存知でしょうか? Android Studio(アンドロイド スタジオ)は、Googleが提供するAndroidプラットフォームに対応する統合開発環境のこと。 引用 Wikipedia - And...

「USBデバッグ」をオンにすること

パソコンからadbコマンドを流す際、Android側で「USBデバッグ」がオンになっている必要があります。

「設定」より「開発者向けオプション」を開き、「USBデバッグ」トグルをタップして有効にすればOK。

もし「開発者向けオプション」をまだ表示していなければ設定して下さい。

Androidで「開発者向けオプション」を表示する方法! デベロッパーモードで隠れ機能を使おう
Androidの「開発者向けオプション」をご存じでしょうか? 通常の設定では変更できない部分まで、ユーザーによるカスタマイズを許可するAndroidの隠れ機能で、ある操作をすることで使用できるようになります。 そこで本記事では、...

apkファイルを準備すること

インストールしたいアプリのapkファイルがなければ準備して下さい。

Google Play上から抽出する方法や、

Google Playから直接apkファイルをダウンロードする方法! ストア上のアプリを抽出しよう
Google Playには数多くのアプリが配布されますが、頻繁にアップデートされたり配信が停止することもあるため、事前にapkとして抽出・保存できると便利です。 【apkとは?】 – Android向けアプリを構成するパッケージのこと。フ...

別のAndroidでインストールされたアプリから抜き出す方法などがあります。

Androidでapkファイルの場所を調べダウンロードする方法! 抽出したアプリを再インストールしよう
Androidのアプリは通常Google Play上から入手できますが、万が一に備えてインストール中アプリのファイル(=apkファイル)をバックアップしておくと安心です。 そこで本記事では、Android内apkファイルの場所を調べ、...

「提供元不明のアプリ」を許可すること

Androidで「提供元不明のアプリ」を許可して下さい。

Xperia Z3(Android 6.0.1)の場合、「設定」→「セキュリティ」より変更できる。

詳細は関連記事【[Android] 提供元不明アプリのインストール方法! Google Playにない非公式apkを楽しもう】で解説しています。

[Android] 提供元不明アプリのインストール方法! Google Playにない非公式apkを楽しもう
Android向けアプリはGoogle公式の「Google Play」よりインストールするのが基本です。 ただ様々な事情で、Google Playで配布されないアプリ(=提供元不明アプリ)を導入したい場合、次のような流れで実現できます...

USBケーブルを準備する

今回の方法ではパソコンとAndroidを接続するケーブルも必要です。

AndroidのUSB端子の形状(micro USB / Type C)に合わせ、ご準備下さい。

adbコマンドを実行する

AndroidとパソコンをUSBケーブルで接続します。

もし「USBデバッグを許可しますか?」と表示されたら有効にして下さい。

次にパソコン側で下記コマンドをペーストします。

adb install -r
この後続けて入力があるので、末尾に半角スペースが入っていることを確認して下さい。

次に用意したapkファイルをドラッグ&ドロップすると、

自動でapkファイルの場所(絶対パス)が入力されます。

例えばデスクトップ上に保存している「LINE」アプリのapkファイルなら、下記のようになります。

adb install -r /Users/ユーザー名/Desktop/jp.naver.line.android8.apk

後は enter でコマンドを実行するとapkファイルのインストールが開始され、

インストールの進捗を示すパーセンテージが表示される。

「Success」と出ればインストール成功です。

元々Android側に入っているアプリでも上書きインストールされ、データも引き継がれていることを確認できればOK。

例えばLINEなら、上書きインストール後にアプリが再起動されますが、トーク履歴は復元されます。

 

補足:

今回の方法は、上書きインストール前後でアプリのバージョンが変化する場合、「新しくなるか」・「古くなるか」で対応が異なります。

上書きインストール前後でアプリバージョンが新しくなるケース

「元々入っているアプリのバージョン」より「上書きインストールするアプリのバージョン」の方が新しい場合は、紹介したadbコマンドで問題なくインストール可能です(アプリデータも保持されたまま)。

adb install -r <アプリのパス.apk>

上書きインストール前後でアプリバージョンが古くなるケース

「元々入っているアプリのバージョン」より「上書きインストールするアプリのバージョン」の方が古い場合は、紹介したadbコマンドだとエラーが出ます。

Failure [INSTALL_FAILED_VERSION_DOWNGRADE]

この場合、ダウングレードも許容するオプション”-d”を追加するとエラーは消え、上書きインストールを実行できます。

adb install -r -d <アプリのパス.apk>

ただしAndroid側で「問題が発生したため●●を終了します」と表示され、アプリを起動できなくなりました。

LINEで試した例。

これはAndroid4.2以降から導入されている「アプリの古いバージョンを上書きインストールできない」仕様が影響しています。

このままだとアプリが使えないため、打開策として下記2点があります。

  • アプリ内データを保持したい場合→アプリを最新バージョンへアップデートする
  • アプリの古いバージョンを維持したい場合→アプリを削除後に再インストールする

アプリを最新バージョンへアップデートする

アプリ内データを保持したいなら、現在Google Playで配布される最新バージョンへ更新(アップデート)すれば解決できます。

ただこの方法だと、強制的にLINEのアプリバージョンが最新化されてしまいます。

アプリを削除後に再インストールする

アプリの古いバージョンを維持したいなら、一度アプリを削除し、

Androidで不要アプリを削除(アンインストール)する方法! 標準プリインソフトも無効にできる
Android向けの配信中アプリは100万を超えており、特に無料アプリは日々インストールしてはアンインストール(削除)する、を繰り返すことも多いかと思います。 ただ、実はAndroidにおいてアプリを消去する方法はたくさんあることをご...

その後、古いapkで再インストールすれば解決できます。

ただこの方法だと、保持していたアプリデータが消えるため、LINEが初期化されてしまいます。

まとめ:ダウングレード&アプリデータ保持は不可能?

以上まとめると、上書きインストール前後でアプリバージョンが古くなる場合、発生するエラーを解決するには、

アプリ内データを保持したい場合

  • アプリを最新バージョンへアップデートする(古いバージョンは維持できない)

アプリの古いバージョンを維持したい場合

  • アプリを削除後に再インストールする(アプリデータは保持できない)

の2択となるため、「ダウングレードしつつアプリのデータも保持したい」ニーズは実現できません。

ネット上では、adbバージョンとAndroid機種との相性によっては下記コマンドで問題ない、という情報も見かけますが、

adb install -r -d <アプリのパス.apk>

ボクの環境(Xperia Z3 Android 6.0.1)では再現できませんでした。

ちなみにエラー「問題が発生したため●●を終了します」は関連記事で詳細を解説しているので、合わせてどうぞ。

Android「問題が発生したため終了します」の解決方法! アプリが繰り返し落ちる原因を対策しよう
Androidを使っていると「問題が発生したため●●(アプリ名)を終了します」とエラー表示されるケースがあります。 アプリ使用中に突然出現すると、かなり不便ですよね。 そこで本記事では、このエラーを解決する方法を紹介します。 ...

 

参考:

上書きではない新規インストールのケース

本記事では「すでにAndroid上に存在するアプリを上書きインストールする方法」を紹介しましたが、通常の新規インストールなら下記adbコマンドでOKです。。

adb install <アプリのパス.apk>

詳細は関連記事【パソコンからAndroidにアプリを直接インストールする方法! PCでダウンロードしたapkをadbを使って入れよう】で解説しています。

パソコンからAndroidにアプリを直接インストールする方法! PCでダウンロードしたapkをadbを使って入れよう
adb環境のあるパソコンを用意すれば、USB接続したAndroidへapkファイルをインストール可能です。 そこで本記事では、パソコンからAndroidにアプリを直接インストールする方法を紹介します。 root不要でパソコンから...

なお、すでにAndroid上に存在するアプリにも関わらず上記コマンドを実行すると、エラーが表示されます。

Failure [INSTALL_FAILED_ALREADY_EXISTS]

すでにLINEがインストールされた状態で、インストールのコマンドを実行した場合の例。

Androidにおける上書きインストールの仕様変遷

かつてのAndroidでは、ダウングレードとなる上書きインストールも許容されていました。

具体的には、Android 4.1までならアプリアップデート後でも、古いバージョンのapkがあれば(データは保持したまま)上書きインストールが可能です。

ただAndroid 4.2以降では現在の仕様に変更となり、古いバージョンのapkは上書きインストール不可となっています(新しいバージョンならOK)。

例えばAndroid上から古いapkのLINEを上書きインストールできない。

ちなみにadbコマンドでは他にも「アプリ内のデータは保持したまま、アプリのプログラム部分のみ削除するコマンド」が存在しますが、

adb shell pm uninstall -k <アプリのパッケージ名>
Androidでアプリのデータを残したままアンインストールする方法! 削除後に再インストールして復元できる
内部ストレージが不足している場合、容量の大きいアプリを削除するのは有効手段の1つですが、アンインストールと同時にデータが初期化されるため、再インストール後の復元が面倒です。 そこで本記事では、アプリ内のデータは保持したまま、アプリのプ...

再インストールしたアプリバージョンが古いと、やはりエラーが発生する同様の問題があります。

 

〆:Androidのアプリを上書きしよう!

以上、Androidでアプリを強制的に上書きインストールする方法! 新しい/古いapkバージョンを導入しよう の説明でした。

今回の内容は特に、アプリを何度も実機にインストールする開発者にとって活躍するシーンが多いでしょう。

ぜひ、ご参考下さい。

Android
スポンサーリンク
おるくすをフォローする

関連記事

あっとはっく

コメント