オフラインの端末に入れたいという要望があったため、手元のAndroid端末からAPKを抽出し、ZIPにまとめて共有する方法を記録します。
抽出側(あなたのPCでの作業)
ADB導入
sudo apt update
sudo apt install -y android-tools-adb android-tools-fastboot
端末準備
- Android側で「開発者向けオプション」→「USBデバッグ」を有効化します。
- 接続後にRSA認証を許可します。
パッケージのパスを確認
adb shell pm path <パッケージ名>
出力例として、base.apk、split_asset_pack.apk、split_config.arm64_v8a.apk が表示されます。
APKを抽出
mkdir -p ~/apk-dump/target-app
cd ~/apk-dump/target-app
for p in $(adb shell pm path <パッケージ名> | sed 's/package://'); do
adb pull "$p"
done
ZIPにまとめる
zip target_app.zip base.apk split_asset_pack.apk split_config.arm64_v8a.apk
Google Driveで共有
target_app.zip をDriveにアップロードし、共有リンクを発行します。
インストール側(友人の端末での作業)
方法A: SAI(Split APKs Installer)を使う(推奨)
- Split APKs Installer(SAI) を用意します(※今回は以前adbで入れたものを利用しましたが、通常はGoogle Playストアからインストール可能です)。
- 共有された
target_app.zipを端末にダウンロードします。 - SAIを開き、Installerタブ → Install APKs を選択します。
target_app.zipを指定してインストールします。
方法B: PC + ADBでインストール
- ZIPを解凍し、3つのAPKを同じフォルダに配置します。
- USBデバッグを有効化した端末を接続します。
- 以下を実行します:
adb install-multiple -r base.apk split_asset_pack.apk split_config.arm64_v8a.apk
ポイント
- 3つのファイルすべてが必要です。どれか一つでも欠けると正常に起動しません。
- 署名は正規のまま保持されるため安全です。ただし、Google Playストアより古いバージョンはインストールできません。
- ZIPのままSAIで選択すると、簡潔に処理できます。
まとめ
Linux MintでADBを導入し、対象アプリを抽出した後、3つのAPKをZIP化してGoogle Driveで共有し、友人側はSAIでZIPをそのままインストールする流れで、手元のアプリを安全に他者端末へ渡すことが可能になります。