Google PlayストアをJelly Bean(API 16)を使用して仮想デバイスに配置します

インターネットを介して流通する市場をインストールする方法、つまりどこかから何かをダウンロードしたり、スクリプトを実行したりする方法にいつも戸惑っていました。 すべてをはるかに簡単かつ安全に行うことができます。

説明した方法がAPI 15で機能しないこと、およびアプリケーションマーケットがインストールされているにもかかわらずそこにダウンロードしないことをすぐに警告します。

まず、手順の簡単な説明:



Linuxではすべてが発生しますが、他のOSではすべてがまったく同じです。

まず、SDKツールとプラットフォームツールを最新バージョンに更新して、API 16の画像が利用可能なプラットフォームのリストに表示されるようにする必要があります。

Google APIに基づいて仮想デバイスを作成します

[ ターゲット]フィールドで、[ Google API(Google Inc.)-API Level 16]を選択します。 [ ハードウェア]セクションで、必要な要素を入力します。



Google APIを使用する理由 そして、すべてがシンプルです-この画像には、Playストアに必要なパッケージ(Googleサービスフレームワークなど)が既にあり、どこかで探してシャーマニスティックな方法でインストールする必要はありません。

シャーマニスティックな方法でデバイスエミュレーターを起動する

結果のイメージを開始します(シャーマニズムはすでにここから始まります。以降、SDKは~/android/android-sdk-linuxディレクトリにインストールされていると想定しています。仮想マシンはtest-4.1と呼ばれtest-4.1

 % ~/android/android-sdk-linux/tools/emulator -avd test-4.1 -partition-size 250 -no-snapstorage 


このコマンドは、システムパーティションのサイズを250 MBに増やす仮想デバイスを起動します。これを行わないと、パーティションに空きスペースがなくなります。

次に、記録のためにシステムパーティションを再マウントし、同時に再マウントされていることを確認します。

 % ~/android/android-sdk-linux/platform-tools/adb -e remount remount succeeded % adb -e shell mount|grep /system /dev/block/mtdblock0 /system yaffs2 rw 0 0 


リクエストがエミュレートされたデバイスに直接送信されるように、adbを呼び出すときは常に-e引数を使用します。

「余分な」パッケージを削除します

デフォルトでは、通常の操作を妨害する有害なパッケージが仮想デバイス上にいくつかあります。この場合、 LicenseChecker.apkおよびSdkSetup.apkはそれらを削除します。

 % adb -e shell rm /system/app/SdkSetup.apk /system/app/LicenseChecker.apk 


既存の電話からUSBケーブルを介して市場にパッケージを取得します

今、あなたは市場でパッケージを取得する必要があります。これのために、この市場がインストールされているすべてのアンドロイドフォンが行います。 電話機でUSBデバッグをオンにし、ケーブルを使用して電話機をコンピュータに接続し、シャーマニズムを開始します。 まず、市場のあるパッケージの場所を見つける必要があります。それは簡単です。

 % adb -d shell pm list packages -f | grep vending package:/data/app/com.android.vending-1.apk=com.android.vending 


ここでは、 /data/app/com.android.vending-1.apk/data/app/com.android.vending-1.apkです。 これを現在のディレクトリに送り込みます(エミュレータではなく、実際のデバイスを示すために-dスイッチが使用されます。便利なため、呼び出しごとにidデバイスを指定する必要はありません)。

 % adb -d pull /data/app/com.android.vending-1.apk . 7563 KB/s (4000309 bytes in 0.516s) 


このメソッドは、ルート化された電話でさえも、どの電話でも動作するはずです。 そして、はい、この方法で電話からパケットを抽出できます。

マーケットでパッケージをダウンロードする

電話でapkパッケージをダウンロードします。

 % adb -e push com.android.vending-1.apk /system/app 3353 KB/s (4000309 bytes in 1.164s) 


最後のシャーマニズム

仮想デバイス上のパッケージがアップロードされます。次回起動時にクラッシュしないようにするために、この時点で残ります。 これも簡単です。エミュレータは、起動するたびに一時ファイルを含むディレクトリにシステムパーティションのコピーを作成します。

 % ls -l /tmp/android-$USER total 191072 -rw------- 1 cancel cancel 195680988  28 12:35 emulator-dHRHv0 srwxr-xr-x 1 cancel cancel 0  28 12:21 qemu-gles-22468 


これは、ファイルemulator-dHRHv0 (異なる呼び出し方ですが、同じディレクトリにあります)で、 system.imgという名前の仮想デバイスディレクトリにコピーするだけです:

 % cp /tmp/android-$USER/emulator-dHRHv0 ~/.android/avd/test-4.1.avd/system.img 


ここで、デバイスを破って通常の方法で開始します。



右上のマーケットアイコン。 お楽しみください。

Source: https://habr.com/ru/post/J146667/


All Articles