Anbox的配置
本文僅針對Arch Linux用戶而言,Manjaro用戶請不要嘗試,顯卡驅動會炸(別問,問就是試過)
簡介
Anbox
是一個可以在 GNU/Linux
發行版上運行 Android App 的一個 容器。
使用它,你可以讓Android Apps直接跑在內核上,效率比較高
領先Windows一萬年(?)
開始
1. 本體的安裝
sudo pacman -Syy
sudo pacman -S yay adb #如果已經裝過yay就忽略
yay -S anbox-git anbox-<xxxxx>
其中,anbox-xxxxxx可以是以下內容
- anbox-image(官方鏡像)
- anbox-image-houdini(包含 Houdini)
- anbox-image-houdini-rooted(包含 Houdini 和 SuperSU)
- anbox-image-gapps(包含 Houdini 和 OpenGApps)
- anbox-image-gapps-rootedAUR (包含 Houdini, OpenGApps 和 SuperSU)
通常情況下,在 x86_64 計算機上運行 ARM 應用程序需要 Houdini
,所以不要安裝anbox-image,這樣在后續安裝ARM程序的時候會出現[INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]的錯誤
2.內核
需要運行帶有 ashmem 和 binder 模塊的內核,但它們不是 Arch Linux 的默認內核 ( linux ) 的一部分,所以需要安裝一個包含這些模塊的內核
通常情況下,你可以使用linux-zen
內核
它包含了anbox運行所要的模塊,而且也是最簡單的方式
此內核需要一兩周滾動更新一次,即sudo pacman -Syu
sudo pacman -S linux-zen linux-zen-headers
3.更新Grub
# 以下步驟不是必需的
sudo nano /etc/default/grub
# 這三行是將子菜單展開,這樣不用點擊 advanced 進去了
GRUB_DISABLE_SUBMENU=y
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
# Ctrl+x ,y退出
#----------以下步驟是必要的-------
sudo grub-mkconfig -o /boot/grub/grub.cfg
#大概會輸出以下內容(選段)
正在生成 grub 配置文件
找到 Linux 鏡像:/boot/xxxxxxxx
找到 initrd 鏡像: /boot/xxxx.img /boot/xxxxx.img
4.重啟界面選擇Linux-zen
重啟,在grub中選擇即可
5.掛載binderfs
linux-zen內核必需掛載binderfs
首先,需要一個掛載點。默認情況下,Anbox 將使用 /dev/binderfs
。 可以直接創建該目錄,但它會在啟動時被刪除
# 直接創建目錄
sudo mkdir /dev/binderfs
所以這里建議使用 systemd-tmpfiles(ArchLinux Wiki) 實現在啟動時創建 /dev/binderfs
為此
需要在 /etc/tmpfiles.d/
創建一個包含以下內容的文件:
/etc/tmpfiles.d/anbox.conf
d! /dev/binderfs 0755 root root
實現:
sudo nano /etc/tmpfiles.d/anbox.conf
d! /dev/binderfs 0755 root root
# Ctrl+x ,y退出
其次需要掛載 binder 文件系統
mount -t binder none /dev/binderfs
如果想要在啟動時掛載它,只需要在 fstab 中添加下面這一行。
none /dev/binderfs binder nofail 0 0
實現:
sudo /dev/fstab
#在最下面添加:
none /dev/binderfs binder nofail 0 0
# Ctrl+x ,y退出
警告: 添加 nofail
參數后,當啟動沒有 binderfs 支持的內核時,將無法進入恢復 shell
再次重啟
6.打開服務
sudo systemctl enable anbox-container-manager.service
7.啟動Anbox
在桌面環境菜單中找到anbox,打開它,可以進行使用
8.安裝軟件
在anbox中,adb無需手動配置
adb install xxxx.apk