Linux 2018 編譯與使用 anbox [論壇 - Ubuntu 非官方發行版討論]
正在瀏覽:
1 名遊客
Linux 2018 編譯與使用 anbox |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2017/3/23 10:15 所屬群組:
已註冊使用者 等級: 10
HP : 0 / 247
![]() |
安卓模擬器 Anbox 主程式只在 Linux 2020 上面有。
預編譯核心模塊,各大發行版幾乎都是從5.x核心開始有。 其實我試過 Linux 4.9 以上或更早的版本,就可以編譯模塊了。 在Linux 2018 以前我沒試過,編譯的難度應該會大增。 現在已經確定可以正常在2018年的Linux上面跑了。 主要編譯的對象是 anbox 模擬器程式與 anbox-module-dkms 較麻煩的 anbox 因為 cmake 需要3.13以上的版本,要編譯一堆依賴。 anbox-module-dkms github 有公版的可用,Linux 原始碼其實也有內附,但是需要補釘才能編成模塊,所以建議用公版就好。 工具更新: #################################################### ### Build libarchive on Debian #################################################### # Install Build Depends: sudo apt-get install pkg-config libbz2-dev liblz4-dev liblzma-dev libxml2-dev libzstd-dev zlib1g-dev libacl1-dev libext2fs-dev libattr1-dev sharutils nettle-dev locales wget https://www.libarchive.org/downloads/libarchive-3.4.0.tar.gz tar zxvf libarchive-3.4.0.tar.gz cd libarchive-3.4.0 ./configure \ --build=x86_64-linux-gnu \ --prefix=/usr \ --includedir=/usr/include \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-silent-rules \ --libdir=/usr/lib/x86_64-linux-gnu \ --libexecdir=/usr/lib/x86_64-linux-gnu \ --disable-maintainer-mode \ --disable-dependency-tracking \ --without-openssl \ --with-nettle \ --enable-bsdtar=shared \ --enable-bsdcpio=shared \ --enable-bsdcat=shared make -j$(nproc) sudo make install #################################################### ### Build cmake on Debian #################################################### # Install Build Depends: sudo apt-get install libbz2-dev zlib1g-dev libcurl4-openssl-dev libexpat1-dev libjsoncpp-dev liblzma-dev libncurses5-dev librhash-dev libuv1-dev procps python3-sphinx wget https://cmake.org/files/v3.16/cmake-3.16.3.tar.gz tar zxvf cmake-3.16.3.tar.gz cd cmake-3.16.3 rm -rf build mkdir -p build cd build ../bootstrap \ --prefix=/usr \ --docdir=/share/doc/cmake \ --mandir=/share/man \ --init=../build-flags.cmake \ --system-libs \ --sphinx-man \ --verbose make -j$(nproc) sudo make install #################################################### ### Build googletest on Debian #################################################### git clone https://github.com/google/googletest.git cd googletest rm -rf obj-x86_64-linux-gnu mkdir obj-x86_64-linux-gnu cd obj-x86_64-linux-gnu cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \ -DCMAKE_INSTALL_SYSCONFDIR=/etc \ -DCMAKE_INSTALL_LOCALSTATEDIR=/var \ -DCMAKE_INSTALL_RUNSTATEDIR=/run \ -DCMAKE_BUILD_TYPE=None \ -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON \ -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON \ "-GUnix Makefiles" \ -DCMAKE_VERBOSE_MAKEFILE=ON make -j$(nproc) sudo make install sudo install -D -m644 CMakeLists.txt /usr/src/googletest/CMakeLists.txt sudo cp -r googlemock /usr/src/googletest/ sudo cp -r googletest /usr/src/googletest/ sudo ln -sf googletest/googletest /usr/src/gmock sudo ln -sf googletest/googlemock /usr/src/gtest
2021/1/1 14:24
|
||||||||||
![]() |
回覆: Linux 2018 編譯與使用 anbox |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2017/3/23 10:15 所屬群組:
已註冊使用者 等級: 10
HP : 0 / 247
![]() |
####################################################
### Build anbox on Debian #################################################### # Install Build Depends: sudo apt-get install python3 protobuf-compiler sudo apt-get install libboost-filesystem-dev libboost-iostreams-dev libboost-log-dev libboost-program-options-dev libboost-system-dev libboost-test-dev libcap-dev libegl1-mesa-dev libgles2-mesa-dev libproperties-cpp-dev libprotobuf-dev libsdl2-dev libsdl2-image-dev libsystemd-dev lxc-dev sudo apt-get install libdw-dev binutils-dev libdwarf-dev doxygen libglm-dev libexpat1-dev #################################################### 原始碼自行選擇,看要2018版、還是2020年版本 # download anbox 2018 wget http://deb.debian.org/debian/pool/contrib/a/anbox/anbox_0.0~git20181014.orig.tar.gz NVER=20181014 # download anbox 2020 wget http://deb.debian.org/debian/pool/contrib/a/anbox/anbox_0.0~git20200526.orig.tar.gz NVER=20200526 tar zxvf anbox_0.0~git${NVER}.orig.tar.gz cd anbox-0.0~git${NVER} # Patch python sed -i 's/python2/python3/g' scripts/gen-emugl-entries.py # Patch GMock rm cmake/FindGMock.cmake wget -O cmake/FindGMock.cmake https://raw.githubusercontent.com/anbox/anbox/master/cmake/FindGMock.cmake # Build anbox rm -rf build mkdir -p build cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \ -DENABLE_WAYLAND=OFF \ -DCMAKE_CXX_FLAGS="-Wno-error=implicit-fallthrough -Wno-error=missing-field-initializers" \ -DCMAKE_BUILD_TYPE=Release make -j$(nproc) sudo make install cd .. mkdir -p /var/lib/anbox mkdir -p /usr/share/applications mkdir -p /usr/lib/systemd/user mkdir -p /lib/systemd/system install -D -m644 snap/gui/icon.png /usr/share/pixmaps/anbox.png install -D -m755 scripts/anbox-bridge.sh /usr/share/anbox/anbox-bridge.sh install -D -m755 scripts/anbox-shell.sh /usr/share/anbox/anbox-shell.sh cat > anbox.desktop << EOF [Desktop Entry] Name=Anbox GenericName=Anbox Comment=Android in a box Version=1.0 Type=Application Icon=anbox Exec=anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Terminal=false Keywords=android;container; Categories=Utility; EOF sudo mv anbox.desktop /usr/share/applications/anbox.desktop cat > anbox-session-manager.service << EOF [Unit] Description=Anbox Session Manager Documentation=man:anbox(1) [Service] ExecStart=/usr/bin/anbox session-manager [Install] WantedBy=default.target EOF sudo mv anbox-session-manager.service /usr/lib/systemd/user/anbox-session-manager.service cat > anbox-container-manager.service << EOF [Unit] Description=Anbox Container Manager Documentation=man:anbox(1) After=network.target Wants=network.target ConditionPathExists=/var/lib/anbox/android.img [Service] ExecStartPre=/sbin/modprobe ashmem_linux ExecStartPre=/sbin/modprobe binder_linux ExecStartPre=/usr/share/anbox/anbox-bridge.sh start ExecStart=/usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox ExecStopPost=/usr/share/anbox/anbox-bridge.sh stop [Install] WantedBy=multi-user.target EOF sudo mv anbox-container-manager.service /lib/systemd/system/anbox-container-manager.service
2021/1/1 14:30
|
||||||||||
![]() |
回覆: Linux 2018 編譯與使用 anbox |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2017/3/23 10:15 所屬群組:
已註冊使用者 等級: 10
HP : 0 / 247
![]() |
Anbox 使用
# 下載 android.img wget https://build.anbox.io/android-images/2018/07/19/android_amd64.img sudo mkdir -p /var/lib/anbox sudo cp android_amd64.img /var/lib/anbox/android.img # 載入模塊 sudo modprobe ashmem_linux sudo modprobe binder_linux # 啟動 Anbox 服務 sudo systemctl status anbox-container-manager.service sudo systemctl start anbox-container-manager.service sudo systemctl stop anbox-container-manager.service 然後打開程式選單的 Anbox 即可。 或執行: anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity # 模擬器安裝 google play sudo systemctl start anbox-container-manager.service sudo apt install curl wget lzip unzip squashfs-tools wget https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh sed -i '/anbox-container-manager.service.d/s/etc/lib/g' install-playstore.sh sudo mkdir -p /lib/systemd/system/anbox-container-manager.service.d chmod +x install-playstore.sh sudo ./install-playstore.sh sudo systemctl restart anbox-container-manager.service ![]() ![]() ![]()
2021/1/1 14:39
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.