<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>ReDroid on Ivon&#39;s Blog</title>
    <link>https://ivonblog.com/ja-jp/tags/redroid/</link>
    <description>Recent content in ReDroid on Ivon&#39;s Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja-jp</language>
    <managingEditor>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</managingEditor>
    <webMaster>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</webMaster>
    <copyright>Ivon&#39;s Blog（ivonblog.com）の記事はご自由に共有いただけます。引用の際は、記事のURLを明記してください。特に明記されていない限り、すべての記事CC BY-SA 4.0 表示-継承 4.0 国際 ライセンスの下で提供されています。商用利用をご希望の場合は、お問い合わせください。</copyright>
    <lastBuildDate>Fri, 06 Jun 2025 16:00:00 +0800</lastBuildDate><atom:link href="https://ivonblog.com/ja-jp/tags/redroid/index.xml" rel="self" type="application/rss+xml" />
    <follow_challenge>
      <feedId>56005902658351104</feedId>
      <userId>1132431067563556864</userId>
    </follow_challenge>
    
    
    <item>
      <title>PCでAndroidアプリを動かしたい？Linux向け「Androidゲームエミュレーター」ソリューション紹介</title>
      <link>https://ivonblog.com/ja-jp/posts/android-emulators-for-linux/</link>
      <pubDate>Fri, 06 Jun 2025 16:00:00 +0800</pubDate>
      <author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author>
      <guid>https://ivonblog.com/ja-jp/posts/android-emulators-for-linux/</guid>
      
      <description>&lt;!-- Co-translated by ChatGPT --&gt;&#xA;&lt;!--類別：導航文--&gt;&#xA;&lt;p&gt;この記事では、LinuxシステムでAndroidアプリを動かしたり、スマホゲームを遊んだりするための、無料の「Androidエミュレーター」ソリューションをいくつか紹介します。&#xA;&lt;figure&gt;&#xA;  &lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;low&#34;&#xA;    alt=&#34;&#34;&#xA;    src=&#34;https://static.ivonblog.com/posts/android-emulators-for-linux/images/android-x86-qemu.webp&#34;&#xA;    onerror=&#34;this.onerror=null;this.src=&#39;https://ivonblog.com/images/unable-to-load-the-image-pepe.webp&#39;&#34;&#xA;    &gt;&lt;figcaption&gt;Gentoo LinuxのKDE PlasmaデスクトップでAndroid-x86仮想マシンを使ってFGOをプレイ&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
      <content:encoded>&lt;!-- Co-translated by ChatGPT --&gt;&#xA;&lt;!--類別：導航文--&gt;&#xA;&lt;p&gt;この記事では、LinuxシステムでAndroidアプリを動かしたり、スマホゲームを遊んだりするための、無料の「Androidエミュレーター」ソリューションをいくつか紹介します。&#xA;&lt;figure&gt;&#xA;  &lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;low&#34;&#xA;    alt=&#34;&#34;&#xA;    src=&#34;https://static.ivonblog.com/posts/android-emulators-for-linux/images/android-x86-qemu.webp&#34;&#xA;    onerror=&#34;this.onerror=null;this.src=&#39;https://ivonblog.com/images/unable-to-load-the-image-pepe.webp&#39;&#34;&#xA;    &gt;&lt;figcaption&gt;Gentoo LinuxのKDE PlasmaデスクトップでAndroid-x86仮想マシンを使ってFGOをプレイ&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;概論&#xA;    &lt;div id=&#34;概論&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#%e6%a6%82%e8%ab%96&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;市場にはBlueStacks、NOX、LDPlayer、MEmu、Google Play Games on PCなど、多くの商用Androidエミュレーターがあります。形はいろいろですが、結局のところx86 PC上でx86またはARMアーキテクチャのスマホゲームを遊べるというものです。多重起動、放置周回、キーボードマッピングも難しくありません。&lt;/p&gt;&#xA;&lt;p&gt;Windowsに多数存在するAndroidエミュレーターと比べると、GNU/Linuxシステム（Ubuntu、Fedora、Arch Linux、openSUSE、Gentoo、ChromeOSを除く）の選択肢はかなり少ないです。Windowsで有名なAndroidエミュレーターの多くはLinux版を出していません。初期のLinuxでは「Genymotion」と「Android Studio」くらいしか使えず、この2つは基本的に開発者向けで、ゲーム用途には使いにくいものでした。&lt;/p&gt;&#xA;&lt;p&gt;また、上で述べたWindows向けAndroidエミュレーターは、Wineを使ってもLinuxでは動きません。&lt;/p&gt;&#xA;&lt;p&gt;幸い、近年は状況が改善してきました。LXCコンテナ技術を使うAnboxとWaydroidの登場により、LinuxでもAndroidアプリを実行できるようになりました。LinuxのQEMU/KVM技術を利用して、高効率なAndroid-x86仮想マシンをインストールするのも堅実で実用的な方法です。&lt;/p&gt;&#xA;&lt;p&gt;いまでは、LinuxユーザーがPC上でAndroidアプリを動かしたりゲームを遊んだりしたい場合、オープンソースソフトウェアで構成されたソリューションを使って「Androidエミュレーター」に近い効果を実現できます。ついでに商用Androidエミュレーターにありがちな企業案件や広告表示からも離れられます。&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;1. Waydroid&#xA;    &lt;div id=&#34;1-waydroid&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#1-waydroid&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;WaydroidはCanonicalが開発したAnboxに由来し、LXC技術を採用しています。コンテナはLinuxとカーネルを共有し、Androidシステムを実行します。開発チームはBliss OSの開発も担当しています。&lt;/p&gt;&#xA;&lt;p&gt;Anboxは基本的に開発が停止しており、Waydroidがそれに代わる最も有名なAnbox後継となっています。&#xA;&lt;figure&gt;&#xA;  &lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;low&#34;&#xA;    alt=&#34;&#34;&#xA;    src=&#34;https://static.ivonblog.com/posts/android-emulators-for-linux/images/waydroid.webp&#34;&#xA;    onerror=&#34;this.onerror=null;this.src=&#39;https://ivonblog.com/images/unable-to-load-the-image-pepe.webp&#39;&#34;&#xA;    &gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;特徴：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ライセンス：GPLv3&lt;/li&gt;&#xA;&lt;li&gt;LXCコンテナは非常に軽量で、実行効率は仮想マシンやエミュレーターよりかなり高く、PCのGPUを有効活用してゲーム性能を加速できます&lt;/li&gt;&#xA;&lt;li&gt;LinuxシステムとAndroidクリップボードを共有し、アプリをウィンドウモードで操作できます。まるでネイティブLinuxアプリのような操作感で、MicrosoftのWSAに似ています&lt;/li&gt;&#xA;&lt;li&gt;Google Playストアを内蔵&lt;/li&gt;&#xA;&lt;li&gt;x86とARMのイメージを提供しており、x86 PCでもRaspberry Piでもデプロイできます&lt;/li&gt;&#xA;&lt;li&gt;Waydroidを動かすにはWayland表示プロトコルのデスクトップが必要です&lt;/li&gt;&#xA;&lt;li&gt;Waydroidは多重起動に向いておらず、1台のPCにインストールできるAndroidバージョンは1つだけです&lt;/li&gt;&#xA;&lt;li&gt;ARMトランスレーターを手動でインストールする必要があります&lt;/li&gt;&#xA;&lt;li&gt;現在Nvidia GPUには対応しておらず、Mesaオープンソースドライバーを使うIntelとAMDなどのGPUのみ対応しています&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;インストール手順は&lt;a href=&#34;https://ivonblog.com/ja-jp/posts/ubuntu-waydroid/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;こちら&lt;/a&gt;をご覧ください。&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;2. ReDroid&#xA;    &lt;div id=&#34;2-redroid&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#2-redroid&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;DockerコンテナでAndroidシステムを実行し、さらにScrcpyでデスクトップに接続します。開発者の本来の意図はサーバー上にクラウドスマホを構築することですが、デスクトップユーザーもこの方法を参考にできます。&#xA;&lt;figure&gt;&#xA;  &lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;low&#34;&#xA;    alt=&#34;&#34;&#xA;    src=&#34;https://static.ivonblog.com/posts/android-emulators-for-linux/images/redroid.webp&#34;&#xA;    onerror=&#34;this.onerror=null;this.src=&#39;https://ivonblog.com/images/unable-to-load-the-image-pepe.webp&#39;&#34;&#xA;    &gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;特徴：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ライセンス：Apache&lt;/li&gt;&#xA;&lt;li&gt;x86とARMアーキテクチャのイメージを提供しており、x86 PCでもRaspberry Piでもデプロイできます&lt;/li&gt;&#xA;&lt;li&gt;GPUハードウェアアクセラレーションに対応&lt;/li&gt;&#xA;&lt;li&gt;ARMトランスレーターを提供&lt;/li&gt;&#xA;&lt;li&gt;Google Playストアは自分でインストールする必要があります&lt;/li&gt;&#xA;&lt;li&gt;Dockerコンテナの特性によりサーバーへ素早くデプロイでき、Scrcpyでリモート接続できます&lt;/li&gt;&#xA;&lt;li&gt;Dockerコンテナはリソース消費が少なく複製も容易なので、多重起動も可能です&lt;/li&gt;&#xA;&lt;li&gt;インストール手順はやや煩雑で、うまく使うにはDockerの操作知識がある程度必要です&lt;/li&gt;&#xA;&lt;li&gt;現在Nvidia GPUには対応しておらず、Mesaオープンソースドライバーを使うIntelとAMDなどのGPUのみ対応しています&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;インストール方法は&lt;a href=&#34;https://ivonblog.com/ja-jp/posts/redroid-android-docker/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ReDroid&lt;/a&gt;をご覧ください&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;3. Android-x86仮想マシン&#xA;    &lt;div id=&#34;3-android-x86仮想マシン&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#3-android-x86%e4%bb%ae%e6%83%b3%e3%83%9e%e3%82%b7%e3%83%b3&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Android-x86仮想マシンは、長く開発されてきた同名プロジェクトに由来します。物理PCにインストールできるだけでなく、仮想マシンにもインストールできます。&lt;/p&gt;&#xA;&lt;p&gt;ただし、オリジナルのAndroid-x86はAndroid 9以降ほとんど更新されていません。&lt;/p&gt;&#xA;&lt;p&gt;近年はAndroid-x86ベースの「Bliss OS」が登場し、非常に活発に更新され、Android 15まで対応しています。&#xA;&lt;figure&gt;&#xA;  &lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;low&#34;&#xA;    alt=&#34;&#34;&#xA;    src=&#34;https://static.ivonblog.com/posts/android-emulators-for-linux/images/blissos.webp&#34;&#xA;    onerror=&#34;this.onerror=null;this.src=&#39;https://ivonblog.com/images/unable-to-load-the-image-pepe.webp&#39;&#34;&#xA;    &gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;特徴は以下の通りです：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ライセンス：Apache&lt;/li&gt;&#xA;&lt;li&gt;Android-x86は完全なOSで、Android 7からAndroid 15までISOがあります&lt;/li&gt;&#xA;&lt;li&gt;ほぼオープンソースソフトウェアで構成されたソリューションで、システムはクリーンかつ広告なしです&lt;/li&gt;&#xA;&lt;li&gt;仮想マシンにデプロイできるほか、Microsoft Surfaceなどの物理機にメインシステムとしてインストールすることもできます&lt;/li&gt;&#xA;&lt;li&gt;ARM → x86アーキテクチャ変換に対応し、より多くのスマホゲームをサポートします&lt;/li&gt;&#xA;&lt;li&gt;GPUパススルーなしでもVirGLで3Dハードウェアアクセラレーションを実現でき、Intel、AMD、Nvidia GPUに対応します&lt;/li&gt;&#xA;&lt;li&gt;多重起動の可能性があります&lt;/li&gt;&#xA;&lt;li&gt;Google Playストアを内蔵&lt;/li&gt;&#xA;&lt;li&gt;仮想マシンのバックエンドにはQEMU/KVM、VirtualBox、VMwareなどを選べます&lt;/li&gt;&#xA;&lt;li&gt;仮想マシンなのでGPUアクセラレーション能力には限界があります&lt;/li&gt;&#xA;&lt;li&gt;x86アーキテクチャのPCのみ対応&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;QEMU/KVMでAndroid-x86仮想マシンを動かす手順はこちら：&lt;a href=&#34;https://ivonblog.com/ja-jp/posts/bliss-os-qemu-installation/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Bliss OS QEMU VM&lt;/a&gt;。&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;4. Android StudioのAVDエミュレーター&#xA;    &lt;div id=&#34;4-android-studioのavdエミュレーター&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#4-android-studio%e3%81%aeavd%e3%82%a8%e3%83%9f%e3%83%a5%e3%83%ac%e3%83%bc%e3%82%bf%e3%83%bc&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Android Virtual Device、略してAVDは、Google公式が開発するAndroidエミュレーターで、Android Studioに付属しています。&#xA;&lt;figure&gt;&#xA;  &lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;low&#34;&#xA;    alt=&#34;&#34;&#xA;    src=&#34;https://static.ivonblog.com/posts/android-emulators-for-linux/images/avd.webp&#34;&#xA;    onerror=&#34;this.onerror=null;this.src=&#39;https://ivonblog.com/images/unable-to-load-the-image-pepe.webp&#39;&#34;&#xA;    &gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;特徴：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ライセンス：プロプライエタリソフトウェア&lt;/li&gt;&#xA;&lt;li&gt;主にAndroidアプリ開発用で、他の方案と比べると比較的成熟しています&lt;/li&gt;&#xA;&lt;li&gt;クロスプラットフォームで、同じソフトウェア一式をWindowsとmacOSでも使えます&lt;/li&gt;&#xA;&lt;li&gt;ADBとRootを使用できます&lt;/li&gt;&#xA;&lt;li&gt;複数のスマホ機種をエミュレートでき、技術的には多重起動も可能です&lt;/li&gt;&#xA;&lt;li&gt;Google PlayとARMトランスレーターlibndkを内蔵&lt;/li&gt;&#xA;&lt;li&gt;GPUグラフィックアクセラレーションを提供し、Intel、AMD、Nvidia GPUに対応します。&lt;/li&gt;&#xA;&lt;li&gt;Android Studio実行時は非常にリソースを食いますが、AVDエミュレーターはAndroid Studioに依存せず単独で実行するよう設定できます&lt;/li&gt;&#xA;&lt;li&gt;x86アーキテクチャのPCのみ対応&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;参考手順：&lt;a href=&#34;https://ivonblog.com/ja-jp/posts/linux-android-studio-avd-as-a-gaming-emulator&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Linux + Android AVD&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;5. Genymotionエミュレーター&#xA;    &lt;div id=&#34;5-genymotionエミュレーター&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#5-genymotion%e3%82%a8%e3%83%9f%e3%83%a5%e3%83%ac%e3%83%bc%e3%82%bf%e3%83%bc&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;クロスプラットフォームの商用Androidエミュレーターです。&#xA;&lt;figure&gt;&#xA;  &lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;low&#34;&#xA;    alt=&#34;&#34;&#xA;    src=&#34;https://static.ivonblog.com/posts/android-emulators-for-linux/images/genoymotion.webp&#34;&#xA;    onerror=&#34;this.onerror=null;this.src=&#39;https://ivonblog.com/images/unable-to-load-the-image-pepe.webp&#39;&#34;&#xA;    &gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;特徴：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ライセンス：プロプライエタリソフトウェア&lt;/li&gt;&#xA;&lt;li&gt;インストールが最も簡単&lt;/li&gt;&#xA;&lt;li&gt;実行時にQEMU/KVMまたはVirtualBoxに依存します&lt;/li&gt;&#xA;&lt;li&gt;さまざまなスマホ機種のエミュレーションを提供&lt;/li&gt;&#xA;&lt;li&gt;スクリーンショット、録画、ジェスチャーのシミュレーションに便利なクイックボタン操作を提供&lt;/li&gt;&#xA;&lt;li&gt;ARMトランスレーターを内蔵&lt;/li&gt;&#xA;&lt;li&gt;Intel、AMD、Nvidia GPUグラフィックアクセラレーションに対応。&lt;/li&gt;&#xA;&lt;li&gt;使用には登録が必要&lt;/li&gt;&#xA;&lt;li&gt;無料版では画面上にウォーターマークが表示され、使用の妨げになります。ライセンス購入が必要です&lt;/li&gt;&#xA;&lt;li&gt;x86アーキテクチャのPCのみ対応&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Linux版Genymotionのインストール手順は&lt;a href=&#34;https://ivonblog.com/ja-jp/posts/genymotion-for-linux&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;こちら&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;どれを選ぶべきか？&#xA;    &lt;div id=&#34;どれを選ぶべきか&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#%e3%81%a9%e3%82%8c%e3%82%92%e9%81%b8%e3%81%b6%e3%81%b9%e3%81%8d%e3%81%8b&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Nvidiaグラフィックカードのユーザーで、内蔵GPUがなく、面倒な調整もしたくない場合、選択肢はAndroid StudioのAVDとGenymotionだけです。&lt;/p&gt;&#xA;&lt;p&gt;IntelやAMDグラフィックカードのユーザーなら、選択肢は増えます。Linuxの各種「Androidエミュレーター」方案を比較すると、Waydroidは間違いなく最高性能です。LXCコンテナ技術を使い、Linuxとカーネルを共有するため、計算時の性能損失がほとんどありません。Waydroidの性能は、物理PCにAndroidをインストールしたようなものです。&lt;/p&gt;&#xA;&lt;p&gt;Android StudioのAVDエミュレーターやAndroid-x86仮想マシン方案と比べると、Waydroidの性能はかなり高いです。特に低スペックPCでは、Waydroidが最も経済的な選択です。私がGeekbenchでベンチマークしたところ、仮想化を一層挟んだAndroidの性能は、最大でほぼ半分近く失われます！つまり仮想マシンの性能を支えるには、より多くのCPUコアを割り当てる必要があります。PCのCPUが4コア以下なら、Android-x86仮想マシンを起動すると全リソースを食い尽くしてしまいます！それに比べ、Waydroidのリソース消費は低いです。&lt;/p&gt;&#xA;&lt;p&gt;Android-x86仮想マシンのグラフィックアクセラレーションはVirGLに依存しており、この性能はAndroid StudioのAVDエミュレーターよりやや弱いです。&lt;/p&gt;&#xA;&lt;p&gt;ReDroidについては上級者向けで、クラウドスマホへリモート接続したいプレイヤーに向いています。&lt;/p&gt;&#xA;</content:encoded>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://ivonblog.com/ja-jp/posts/android-emulators-for-linux/featured.webp" />
    </item>
    
    <item>
      <title>ReDroidチュートリアル：DockerでAndroidシステムを動かし、x86 PCでARMスマホゲームを遊ぶ</title>
      <link>https://ivonblog.com/ja-jp/posts/redroid-android-docker/</link>
      <pubDate>Thu, 15 Aug 2024 21:00:00 +0800</pubDate>
      <author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author>
      <guid>https://ivonblog.com/ja-jp/posts/redroid-android-docker/</guid>
      
      <description>&lt;!-- Co-translated by ChatGPT --&gt;&#xA;&lt;p&gt;ReDroid (Remote anDroid) は自前で「クラウドスマホ」を構築する方案で、DockerでAndroidシステムコンテナを動かし、さらにScrcpyの画面ミラーリング機能でAndroidデスクトップへ接続します。&#xA;&lt;figure&gt;&#xA;  &lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;low&#34;&#xA;    alt=&#34;&#34;&#xA;    src=&#34;https://static.ivonblog.com/posts/redroid-android-docker/images/FQXt3GC.webp&#34;&#xA;    onerror=&#34;this.onerror=null;this.src=&#39;https://ivonblog.com/images/unable-to-load-the-image-pepe.webp&#39;&#34;&#xA;    &gt;&lt;figcaption&gt;LinuxでReDroidを使ってFGOをプレイ&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
      <content:encoded>&lt;!-- Co-translated by ChatGPT --&gt;&#xA;&lt;p&gt;ReDroid (Remote anDroid) は自前で「クラウドスマホ」を構築する方案で、DockerでAndroidシステムコンテナを動かし、さらにScrcpyの画面ミラーリング機能でAndroidデスクトップへ接続します。&#xA;&lt;figure&gt;&#xA;  &lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;low&#34;&#xA;    alt=&#34;&#34;&#xA;    src=&#34;https://static.ivonblog.com/posts/redroid-android-docker/images/FQXt3GC.webp&#34;&#xA;    onerror=&#34;this.onerror=null;this.src=&#39;https://ivonblog.com/images/unable-to-load-the-image-pepe.webp&#39;&#34;&#xA;    &gt;&lt;figcaption&gt;LinuxでReDroidを使ってFGOをプレイ&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;ReDroidもPC上で&lt;strong&gt;オープンソースソフトウェア&lt;/strong&gt;を使ってAndroidアプリを動かすソリューションです。クラウドスマホはさておき、多くのAndroidスマホゲームエミュレーターは&lt;strong&gt;クローズドソースソフトウェア&lt;/strong&gt;ですからね。それに比べ、ReDroidはARMトランスレーター以外はオープンソースです。さらに素晴らしいことに、ReDroidはGPUアクセラレーション＋ARMからx86へのトランスレーターに対応しているため、大多数のスマホ3Dゲームを遊べます。&lt;/p&gt;&#xA;&lt;p&gt;Linuxユーザーにとって、これは&lt;a href=&#34;https://ivonblog.com/ja-jp/posts/android-emulators-for-linux/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;WaydroidとAndroid-x86仮想マシン&lt;/a&gt;以外に、Linux PCでAndroidアプリを高効率に動かす方法でもあります。さらにWaydroidよりクラウドスマホ用途に向いています。&lt;a href=&#34;https://ivonblog.com/posts/scrcpy-app-remote-control-android-in-cloud/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Self-hosting Cloud Phone&lt;/a&gt;を参照してください&lt;/p&gt;&#xA;&lt;p&gt;この記事では、x86アーキテクチャのLinux PCでReDroidを使い、ARMアーキテクチャのスマホゲームを遊ぶ方法を扱います。最良の使用体験を得るため、ReDroidイメージにARMトランスレーター＋Googleサービスフレームワークを追加します。&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;1. ReDroidシステム要件&#xA;    &lt;div id=&#34;1-redroidシステム要件&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#1-redroid%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e8%a6%81%e4%bb%b6&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;任意のLinuxディストリビューションで使えるはずです。&lt;/p&gt;&#xA;&lt;p&gt;この記事ではx86アーキテクチャのPCでReDroidを動かす例を示します。ARMアーキテクチャのPCについては、Oracle ARMアーキテクチャサーバーでのデプロイ成功例を報告したネットユーザーがおり、私も&lt;a href=&#34;https://ivonblog.com/posts/redroid-on-raspberry-pi&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Raspberry Pi 5でReDroidを動かせる&lt;/a&gt;ことをテスト済みです。&lt;/p&gt;&#xA;&lt;p&gt;PCがx86アーキテクチャの場合、実行できるのはx86アーキテクチャのAndroidアプリだけです。しかし多くのスマホゲームはARMアーキテクチャ版しかないため、ReDroidにはlibndkまたはlibhoudiniのARMトランスレーターを入れる必要があります。&lt;/p&gt;&#xA;&lt;p&gt;スマホゲームを遊ぶなら、PCには少なくとも8GB以上のRAMをおすすめします。ARMをx86命令へ変換するとき、大量のRAMを消費することがあるためです。&lt;/p&gt;&#xA;&lt;p&gt;GPUアクセラレーションについては、IntelやAMDのGPUなど、Linux Mesaがサポートするドライバーの使用をおすすめします。3Dアクセラレーションがそのまま使えます。Nvidiaはおすすめしません。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Androidバージョンについて、Redroid作者が公開している&lt;code&gt;redroid:11.0.0-latest&lt;/code&gt;と&lt;code&gt;redroid:12.0.0-latest&lt;/code&gt;イメージにはGoogle開発のARMトランスレーターlibndkが内蔵されています。試したところAndroid 11だけが比較的安定しており、GAppsも使えたので、この記事ではAndroid 11のイメージを選びます。&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;2. ReDroid前提依存項目をインストール&#xA;    &lt;div id=&#34;2-redroid前提依存項目をインストール&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#2-redroid%e5%89%8d%e6%8f%90%e4%be%9d%e5%ad%98%e9%a0%85%e7%9b%ae%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;ReDroidの&lt;a href=&#34;https://github.com/remote-android/redroid-doc/blob/master/deploy/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Github&lt;/a&gt;には主要Linuxディストリビューション向けのインストール説明があります。私はUbuntuシステムを例にします。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;まずbinderカーネルモジュールを用意します。Ubuntu 24.04では以下のコマンドを実行し、必要なbinderカーネルモジュールをインストールします：&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install linux-modules-extra-&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;uname -r&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo modprobe binder_linux &lt;span class=&#34;nv&#34;&gt;devices&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;binder,hwbinder,vndbinder&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;上記カーネルモジュールを起動時自動読み込みに追加します&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;binder_linux options binder_linux devices=&amp;#34;binder,hwbinder,vndbinder&amp;#34;&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee -a /etc/modules-load.d/redroid.conf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;コンテナ実行用に&lt;a href=&#34;https://ivonblog.com/posts/install-docker-engine-on-linux/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Docker&lt;/a&gt;をインストールします&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://developer.android.com/tools/releases/platform-tools?hl=zh-tw&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ADB&lt;/a&gt;ツールをインストールします&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;最後に&lt;a href=&#34;https://ivonblog.com/posts/scrcpy-usage&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Scrcpy&lt;/a&gt;をインストールします。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;キーマッピングを統合したグラフィカルなScrcpy UIが欲しい場合は、&lt;a href=&#34;https://ivonblog.com/posts/android-qtscrcpy-usage/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;QtScrcpy&lt;/a&gt;を入れてもよいです。Web版の&lt;a href=&#34;https://ivonblog.com/posts/ws-scrcpy/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ws-scrcpy&lt;/a&gt;も試せます。&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;3. ReDroidイメージに事前にGAppsをインストール&#xA;    &lt;div id=&#34;3-redroidイメージに事前にgappsをインストール&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#3-redroid%e3%82%a4%e3%83%a1%e3%83%bc%e3%82%b8%e3%81%ab%e4%ba%8b%e5%89%8d%e3%81%abgapps%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;ReDroid作者が公開しているイメージは素のAndroidで、GAppsはプリインストールされていません。&lt;a href=&#34;https://hub.docker.com/search?q=redroid&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Docker Hub&lt;/a&gt;で他人が事前にビルドしたReDroidイメージを探すこともできます。GApps内蔵のものなら自分でbuildする必要はありません。もちろん、リスクは自己責任です。&lt;/p&gt;&#xA;&lt;p&gt;ここでは&lt;a href=&#34;https://github.com/ayasa520/redroid-script&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ayasa520のRemote-Android Script&lt;/a&gt;を使い、ReDroidイメージを自動取得してGAppsを入れます。Android 11のイメージのみ対応です。&lt;/p&gt;&#xA;&lt;p&gt;このスクリプトはlibndk、libhoudini、Magisk、Widevine DRMなどのコンポーネントのインストールにも使えます。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Remote-Android Scriptリポジトリをクローンし、Python仮想環境を作成します&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install lzip python3 python3-venv python3-pip&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/ayasa520/redroid-script.git&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; redroid-script&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 -m venv venv&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;venv/bin/pip install -r requirements.txt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Android 11のイメージを取得し、GAppsをインストールします&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;venv/bin/python3 redroid.py -a 11.0.0 -g&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;これでGApps入りイメージ&lt;code&gt;redroid/redroid:11.0.0_gapps&lt;/code&gt;が得られます。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;4. docker-composeでReDroidコンテナを起動&#xA;    &lt;div id=&#34;4-docker-composeでredroidコンテナを起動&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#4-docker-compose%e3%81%a7redroid%e3%82%b3%e3%83%b3%e3%83%86%e3%83%8a%e3%82%92%e8%b5%b7%e5%8b%95&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;この手順はNvidiaグラフィックカードの場合のみ必要です。IntelとAMDグラフィックカードのユーザーは次の手順へ直接進んでください。ReDroidのNvidiaグラフィックカード対応は良くありません。可能なら内蔵GPUで動かすことをおすすめします。どうしてもNvidiaを使うなら、ReDroid用の仮想マシンを作成します。NvidiaクローズドソースドライバーではReDroidにGPUアクセラレーションを使わせられないため、QEMU仮想マシンを動かし、その中にReDroidを入れてvirtio-gpuでハードウェアアクセラレーションを実現する必要があります。ただしこれは準仮想化技術なので性能損失は大きいです。仮想マシンを作らず、PCに内蔵GPUもない場合、ReDroidはソフトウェアレンダリングになります。ソフトウェアレンダリングの性能を受け入れられるなら、仮想マシンをインストールする必要はありません。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt; ReDroid用仮想マシンを作成&lt;/summary&gt;&#xA;&lt;p&gt;QEMU ＋ Virt Managerをインストールし、&lt;a href=&#34;https://releases.ubuntu.com/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Ubuntu 24.04をダウンロード&lt;/a&gt;して、64GBのUbuntu仮想マシンを作成します&lt;/p&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qemu-img create -f qcow2 ubuntu.qcow2 64GB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qemu-system-x86_64 -boot d -cdrom &lt;span class=&#34;s2&#34;&gt;&amp;#34;ubuntu-22.04.1-desktop-amd64.iso&amp;#34;&lt;/span&gt; -enable-kvm -smp &lt;span class=&#34;m&#34;&gt;4&lt;/span&gt; -device intel-hda -device hda-duplex  -device virtio-vga-gl  -net nic -net user,hostfwd&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;tcp::5555-:5555 -cpu host  -m &lt;span class=&#34;m&#34;&gt;4096&lt;/span&gt;  -display sdl,gl&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;on -hda ubuntu.qcow2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;p&gt;仮想マシンへ起動し、その後&lt;a href=&#34;https://ivonblog.com/posts/install-docker-engine-on-linux/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Dockerをインストール&lt;/a&gt;します。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qemu-system-x86_64 -enable-kvm -smp &lt;span class=&#34;m&#34;&gt;4&lt;/span&gt; -device intel-hda -device hda-duplex  -device virtio-vga-gl  -net nic -net user,hostfwd&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;tcp::5555-:5555 -cpu host  -m &lt;span class=&#34;m&#34;&gt;4096&lt;/span&gt;  -display sdl,gl&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;on -hda ubuntu.qcow2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/details&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Androidデータ保存用ディレクトリを作成し、docker-composeを追加します&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir ~/redroid&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; redroid&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vim docker-compose.yml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;以下の内容を入力します：&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;redroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;redroid/redroid:11.0.0_gapps&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 先ほど作成したGApps入りReDroidイメージを使用&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;stdin_open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tty&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;privileged&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;m&#34;&gt;127.0.0.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5555&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5555&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# ADBポート。セキュリティ強化のためローカルlocalhostポートのみリッスン&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;./redroid-11-data:/data&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# データは現在ディレクトリに保存&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;command&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;androidboot.redroid_width=720&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# スマホ解像度&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;androidboot.redroid_height=1280&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;androidboot.redroid_dpi=320&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;androidboot.redroid_fps=60&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;androidboot.redroid_gpu_mode=host&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# ホストGPUハードウェアアクセラレーションを有効化。hostはGPUアクセラレーション、guestはソフトウェアレンダリング&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ro.product.cpu.abilist0=x86_64,arm64-v8a,x86,armeabi-v7a,armeabi&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# libndk関連設定&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ro.product.cpu.abilist64=x86_64,arm64-v8a&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ro.dalvik.vm.isa.arm=x86&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ro.dalvik.vm.isa.arm64=x86_64&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ro.enable.native.bridge.exec=1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ro.dalvik.vm.native.bridge=libndk_translation.so&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ro.ndk_translation.version=0.2.2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;サービスを起動&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo docker compose up -d&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;5&#34;&gt;&#xA;&lt;li&gt;ADBでローカルのReDroidへ接続します。ローカルなのでIPはlocalhostです。ReDroidをリモートにデプロイしている場合は、リモートホストのIPに変更します。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb connect localhost:5555&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 接続できない場合、以下のコマンドでコンテナ内部で何が起きているか確認します&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo docker ps&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo docker &lt;span class=&#34;nb&#34;&gt;exec&lt;/span&gt; &amp;lt;容器ID&amp;gt; logcat&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo docker logs &amp;lt;容器ID&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;6&#34;&gt;&#xA;&lt;li&gt;Scrcpyを実行し、Androidへ接続します：&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scrcpy -s localhost:5555 --audio-codec&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;aac&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;7&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;これでAndroidデスクトップが見えます。&#xA;&lt;figure&gt;&#xA;  &lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;low&#34;&#xA;    alt=&#34;&#34;&#xA;    src=&#34;https://static.ivonblog.com/posts/redroid-android-docker/images/rPc7feZ.webp&#34;&#xA;    onerror=&#34;this.onerror=null;this.src=&#39;https://ivonblog.com/images/unable-to-load-the-image-pepe.webp&#39;&#34;&#xA;    &gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Google Playサービスが「デバイスは認証されていません」というエラーメッセージを出すことがあります。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;以下のコマンドでAndroidデバイスIDを取得し、&lt;a href=&#34;https://www.google.com/android/uncertified&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Googleサイトでデバイスを登録&lt;/a&gt;します。30分ほど待ってからRedroidコンテナを再起動すると、Google Playにログインできます。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 root&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 shell &lt;span class=&#34;s1&#34;&gt;&amp;#39;sqlite3 /data/data/com.google.android.gsf/databases/gservices.db \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;select * from main where name = \&amp;#34;android_id\&amp;#34;;&amp;#34;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;10&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ReDroidの3Dアクセラレーションが正常に動いているか確認するには、&lt;a href=&#34;https://www.aida64.com/downloads&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;AIDA64&lt;/a&gt;をインストールし、PCのGPU型番を認識できるか見ます。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;セキュリティを強化したい場合は、ReDroidのdocker-composeネットワーク設定をローカルlocalhostポートのみリッスンするようにしてください（&lt;code&gt;ports: 127.0.0.1:5000:5000&lt;/code&gt;）。ReDroidを外部ネットワークからアクセス可能にする場合は、ファイアウォール設定に注意し、ADBの5000ポートを直接インターネットへ公開しないでください。重大なセキュリティリスクになります。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;5. ReDroidにAPKをインストールする方法&#xA;    &lt;div id=&#34;5-redroidにapkをインストールする方法&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#5-redroid%e3%81%abapk%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;現在、libndkをインストールしていても、Android 11のPlayストアはARMアーキテクチャのアプリをダウンロードさせてくれません。APKPureのようなアプリストアと組み合わせてアプリをインストールしてください。&lt;/p&gt;&#xA;&lt;p&gt;コンテナ内部のブラウザでAPKをダウンロードする以外に、ADBでAPKをReDroidコンテナへインストールすることもできます。たとえば&lt;a href=&#34;https://www.apkmirror.com/apk/line-corporation/line/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ApkMirror&lt;/a&gt;からLineのAPKをダウンロードし、ADBでインストールします：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 install &lt;span class=&#34;s2&#34;&gt;&amp;#34;jp.naver.line.android.apk&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;p&gt;ScrcpyはAPKをウィンドウへドラッグしてインストールできます。&lt;/p&gt;&#xA;&lt;p&gt;ADBの&lt;code&gt;pull&lt;/code&gt;と&lt;code&gt;push&lt;/code&gt;コマンドでファイルを転送することもできます。&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;6. ReDroidを「起動・停止」する方法&#xA;    &lt;div id=&#34;6-redroidを起動停止する方法&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#6-redroid%e3%82%92%e8%b5%b7%e5%8b%95%e5%81%9c%e6%ad%a2%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;ReDroidを停止したい場合、Scrcpyウィンドウを閉じた後、コンテナを停止します：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ~/redroid&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo docker compose down&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;p&gt;その後、このコマンドでReDroidを再び起動できます。ReDroidコンテナの&lt;code&gt;/data&lt;/code&gt;データは&lt;code&gt;~/redroid/redroid-11-data&lt;/code&gt;ディレクトリにあり、複数システムのファイルをバックアップするのに使えます。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ~/redroid&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo docker compose up -d&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb connect localhost:5555&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scrcpy -s localhost:5555 --audio-codec&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;aac&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;7. ReDroid多重起動の例&#xA;    &lt;div id=&#34;7-redroid多重起動の例&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#7-redroid%e5%a4%9a%e9%87%8d%e8%b5%b7%e5%8b%95%e3%81%ae%e4%be%8b&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://ivonblog.com/posts/redroid-multiple-instances&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ReDroid Multiple Instances&lt;/a&gt;を参照してください&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;付録&#xA;    &lt;div id=&#34;付録&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#%e4%bb%98%e9%8c%b2&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;details&gt; &lt;summary&gt; ReDroidイメージへGAppsを手動インストール &lt;/summary&gt;&#xA;&lt;p&gt;ReDroid作者によると、Googleサービスフレームワークはプロプライエタリソフトウェアなので内蔵できません。したがって自分でインストールする必要があります。1つ目の方法はReDroidイメージの再コンパイル、2つ目はOpenGAppsの手動インストールです。&lt;/p&gt;&#xA;&lt;p&gt;1つ目の方法はおすすめしません。時間がかかるうえ、作者が提供するGAppsビルド手順には他のアプリが検出できない問題もあります。&lt;/p&gt;&#xA;&lt;p&gt;ここでは2つ目の方法、手動インストールを使います。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://opengapps.org/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;OpenGapps&lt;/a&gt;からx86_64アーキテクチャのAndroid 11 GAppsをダウンロードし、最小構成のpico版を選びます。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;展開すると、以下のディレクトリが見えます&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;open_gapps-x86_64-11.0-pico-20220503&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Core&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── GApps&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── META-INF&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Optional&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;展開したディレクトリ&lt;code&gt;open_gapps-x86_64-11.0-pico-20220503&lt;/code&gt;の下に&lt;code&gt;system&lt;/code&gt;ディレクトリを追加します。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;次に、&lt;code&gt;Core&lt;/code&gt;と&lt;code&gt;GApps&lt;/code&gt;ディレクトリ内の&lt;code&gt;.lz&lt;/code&gt;ファイルをすべて展開し、中のAPKディレクトリを対応するインストール先に従って&lt;code&gt;system&lt;/code&gt;ディレクトリへ置きます。たとえば&lt;code&gt;GApps/googletts-x86_64/nodpi/app/&lt;/code&gt;下の&lt;code&gt;GoogleTTS&lt;/code&gt;ディレクトリは&lt;code&gt;/system/app&lt;/code&gt;へ置きます。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;配置後、&lt;code&gt;system&lt;/code&gt;下のディレクトリ構造はこのようになるはずです：&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;system&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── app&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GoogleCalendarSyncAdapter&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GoogleCalendarSyncAdapter.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GoogleContactsSyncAdapter&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GoogleContactsSyncAdapter.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GoogleExtShared&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GoogleExtShared.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── GoogleTTS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       └── GoogleTTS.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── etc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── default-permissions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   ├── default-permissions.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── opengapps-permissions-q.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── permissions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   ├── com.google.android.dialer.support.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   ├── com.google.android.maps.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   ├── com.google.android.media.effects.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   ├── privapp-permissions-google.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── split-permissions-google.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── preferred-apps&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── google.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── sysconfig&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       ├── dialer_experience.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       ├── google_build.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       ├── google_exclusives_enable.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       ├── google-hiddenapi-package-whitelist.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       └── google.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── framework&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── com.google.android.dialer.support.jar&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── com.google.android.maps.jar&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── com.google.android.media.effects.jar&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── priv-app&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── AndroidAutoPrebuiltStub&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── AndroidAutoPrebuiltStub.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── AndroidMigratePrebuilt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── AndroidMigratePrebuilt.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── CarrierSetup&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── CarrierSetup.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── ConfigUpdater&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── ConfigUpdater.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GoogleBackupTransport&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GoogleBackupTransport.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GoogleExtServices&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GoogleExtServices.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GoogleFeedback&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GoogleFeedback.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GoogleOneTimeInitializer&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GoogleOneTimeInitializer.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GooglePackageInstaller&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GooglePackageInstaller.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GooglePartnerSetup&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GooglePartnerSetup.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GoogleRestore&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GoogleRestore.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── GoogleServicesFramework&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── GoogleServicesFramework.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── Phonesky&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── Phonesky.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── PrebuiltGmsCore&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── PrebuiltGmsCore.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── SetupWizard&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       └── SetupWizard.apk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── product&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── overlay&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        └── PlayStoreOverlay.apk&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;6&#34;&gt;&#xA;&lt;li&gt;以下のコマンドでroot権限を取得します：&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb connect localhost:5555&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 root&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 remount&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 shell &lt;span class=&#34;s2&#34;&gt;&amp;#34;rm -rf system/priv-app/PackageInstaller&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;7&#34;&gt;&#xA;&lt;li&gt;次に&lt;code&gt;system&lt;/code&gt;ディレクトリをReDroidシステムへpushし、権限を付与します：&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 push system /&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 shell &lt;span class=&#34;s2&#34;&gt;&amp;#34;pm grant com.google.android.gms android.permission.ACCESS_COARSE_LOCATION&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 shell &lt;span class=&#34;s2&#34;&gt;&amp;#34;pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 shell &lt;span class=&#34;s2&#34;&gt;&amp;#34;pm grant com.google.android.setupwizard android.permission.READ_PHONE_STATE&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb -s localhost:5555 shell &lt;span class=&#34;s2&#34;&gt;&amp;#34;pm grant com.google.android.setupwizard android.permission.READ_CONTACTS&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb reboot&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;8&#34;&gt;&#xA;&lt;li&gt;ReDroidコンテナを再起動します：&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ~/redroid&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo docker compose down&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo docker compose up -d&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;9&#34;&gt;&#xA;&lt;li&gt;Scrcpyを起動&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scrcpy -s localhost:5555 --audio-codec&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;raw&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;10&#34;&gt;&#xA;&lt;li&gt;システム設定 → アプリを開き、右上からシステムアプリ表示を選択し、Google PlayサービスとPlayストアの権限をすべて有効にします。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt; libndkを手動抽出してAndroidイメージをビルド &lt;/summary&gt;&#xA;&lt;p&gt;libndkはGoogleが開発したプロプライエタリソフトウェアで、Android Studioのエミュレーターに含まれています。&lt;a href=&#34;https://github.com/zhouziyang/libndk_translation&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ReDroid作者の指示&lt;/a&gt;によると、新しいAndroidエミュレーターからlibndkを手動で抽出し、ReDroidの素のシステムへ入れることができます。&lt;/p&gt;&#xA;&lt;p&gt;ここではAndroid 13を例にします。作者は必ず使えるとは保証していない点に注意してください。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Android Studioをインストールし、Android 13の仮想マシンを追加します&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ADBで接続&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb devices&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb shell&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;su&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;libndkをパッケージ化&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;{&lt;/span&gt; find /system -name arm* -type d&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; find /system -name *ndk_translation*&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; find /system/etc -name *arm*&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; tar -cf /sdcard/nb.tar -T -&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;libndk.soをパッケージ化&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;find system -type l &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; tar -cf /sdcard/so.tar -T -&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;5&#34;&gt;&#xA;&lt;li&gt;ADBを終了し、上記ファイルをローカルへ転送します&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;exit&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;exit&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb pull /sdcard/nb.tar .&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb pull /sdcard/so.tar .&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;6&#34;&gt;&#xA;&lt;li&gt;libndk.soをlibndkの圧縮ファイルへ追加します&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tar -xvf so.tar&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;find system -type l &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; tar -rf libndk_translation.tar -T -&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;7&#34;&gt;&#xA;&lt;li&gt;&lt;code&gt;DOCKERFILE&lt;/code&gt;を追加し、以下の内容を入力します：&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FROM redroid/redroid:13.0.0-latest&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ADD libndk_translation.tar /&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;ol start=&#34;8&#34;&gt;&#xA;&lt;li&gt;libndk入りAndroid 13イメージのビルドを開始します。その後、このイメージ&lt;code&gt;redroid:13.0.0-libndk&lt;/code&gt;をコンテナ実行に使えるようになります。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker build . -t redroid:13.0.0-libndk&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;參考資料&#xA;    &lt;div id=&#34;參考資料&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#%e5%8f%83%e8%80%83%e8%b3%87%e6%96%99&#34; aria-label=&#34;アンカー&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/remote-android/redroid-doc&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;redroid (Remote-Android) is a multi-arch, GPU enabled, Android in Cloud solution - Github&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vocus.cc/article/645b3257fd8978000139c12f&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;App 自動化測試（三）ReDroid 安裝與基本使用 - Scott Hsiao&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.bilibili.com/read/cv19273886/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;在使用 NVIDIA 显卡时为 redroid 开启3d加速&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/remote-android/redroid-doc/issues/282&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;redroid nVidia GPU support #282&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://groups.google.com/g/android-rpi/c/xb2fwTQbUYw&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Install GApps Manually - Google Groups&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content:encoded>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://ivonblog.com/ja-jp/posts/redroid-android-docker/featured.webp" />
    </item>
    
  </channel>
</rss>
