Arch Linux 安裝 Anbox

哈哈哈hh發表於2022-01-10

映象下載、域名解析、時間同步請點選  阿里雲開源映象站

Anbox 介紹

  • Anbox 是一個可以在 GNU/Linux 發行版上執行 Android App 的容器,是一個開源相容層。
  • 其工作原理是在 LXC 容器中執行 Android 環境,重新建立 Android 的目錄結構作為可掛載的 loop 映象,同時使用本機 Linux 核心來執行應用,所以沒有虛擬化的開銷,非常輕量級且保障了執行速度。
  • 每個 Android 應用將在一個單獨視窗開啟,就像 Linux 本地應用程式一樣。

安裝過程

1、環境要求

  • Anbox 的 dkms 模組在核心版本 ≥ 5.7 下不會工作。
  • 需要執行帶有 ashmem 和 binder 模組的核心,但它們不是 Arch Linux 預設核心 ( linux ) 的一部分。

2、開始安裝

  • 確保系統安裝了 Linux 核心標頭檔案:

    sudo pacman -S linux-headers
  • 安裝 Anbox :

    • anbox-image 是官方映象,可根據需要選擇其他映象
    • anbox-git 是 Anbox 執行的容器
    • anbox-modules-dkms-git 是 Anbox 所需的核心模組
    yay -S anbox-image anbox-git anbox-modules-dkms-git
  • 載入 DKMS 模組:

    sudo modprobe ashmem_linux
    sudo modprobe binder_linux

    檢查裝置:

    ls -1 /dev/{ashmem,binder}

    看到如下資訊,說明模組載入成功:

    /dev/ashmem
    /dev/binder
  • 掛載 binderfs

  • 啟動服務,設定開機自啟:

    sudo systemctl start anbox-container-manager.service
    sudo systemctl enable anbox-container-manager.service

3、配置網路

  • Arch Wiki 提供了三種連網方案:NetworkManager、systemd-networkd、anbox-bridge。
  • 筆者採用 anbox-bridge 方式:

    • 下載   指令碼到  /usr/bin 目錄下,並賦予 可執行許可權
    • 建立檔案  /etc/systemd/system/anbox-container-manager.service.d/enable-anbox-bridge.conf 並寫入一下內容:

      [Service]
      ExecStartPre=/usr/bin/anbox-bridge.sh start
      ExecStopPost=/usr/bin/anbox-bridge.sh stop

4、安裝 adb 工具

  • adb ( Android Debug Bridge ) 是安卓開發除錯工具,我們用它來管理 Anbox 內的安卓應用。

    sudo pacman -S android-tools

adb 使用

  • 安裝應用

    adb install /path/to/app.apk
  • 檢視應用列表

    adb shell pm list packages
  • 解除安裝使用者應用

    adb uninstall app.name
  • 解除安裝系統應用

    adb uninstall --user 0 app.name

尚未解決的問題

  • 某些應用開啟後,視窗上方的標題欄消失,導致整體畫面上移但實際點選區域未移動,且下方留有黑邊。
  • 未掛載 binderfs 時,開關機會提示  [FAILED]Failed to Mount Android Binder File System
  • 按 Arch Wiki 步驟掛載binderfs後,開關機提示  [FAILED]Failed to Mount /dev/binderfs


本文轉自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70003733/viewspace-2851435/,如需轉載,請註明出處,否則將追究法律責任。

相關文章