Anbox(androd in box)
Anbox는 가상 환경에서 안드로이드를 시뮬레이팅 하지 않고, 리눅스 커널 위에 안드로이드 호환 레이어를 제공합니다. 호환 레이어 방식은 해당 OS의 API를 모방하여 개발한 것이기 때문에 네이티브에 가까운 성능을 낼 수 있습니다.
Anbox는 꽤 많은 안드로이드 앱을 실행할 수 있습니다. 그리고 OpenGL ES 드라이버를 포함하고 있어서 안드로이드 게임도 실행할 수 있습니다.
하지만 Anbox는 낮은 안드로이드7 버전을 가지고 있어서 최신 게임을 구동하는 것은 불가능합니다.
_
설치 환경
우분투 버전 18에서 설치하고 테스트 하였습니다.ubuntu-18.04.6-desktop-amd64
_
커널 모듈 설치하기
Android 컨테이너를 구동하기 위해서는 ashmem과 binder가 필수입니다. Anbox 홈페이지는 kernel_module를 설치하는 방법을 안내하고 있습니다. 하지만 그 방법으로는 설치가 되지 않아서, 스택오버플로우에서 찾은 방법으로 설치했습니다.
$ sudo apt update
$ sudo apt install git dkms
$ git clone https://github.com/anbox/anbox-modules.git
$ cd anbox-modules
$ sudo ./INSTALL.sh
anbox-modules 패키지 설치가 끝나고 나면 커널 모듈을 로드합니다.
$ sudo modprobe ashmem_linux
$ sudo modprobe binder_linux
이제 시스템 /dev 디렉토리에는 두 개의 새로운 노드가 존재하게 됩니다.
$ ls -1 /dev/{ashmem,binder}
/dev/ashmem
/dev/binder
_
Anbox 설치하기
Anbox는 snap으로 설치할 수 있습니다. 다른 배포 방법은 공식적으로 제공하지 않습니다. 우분투는 snap이 기본적으로 설치가 되어 있기 때문에, 우분투에서는 snap으로 anbox를 쉽게 설치할 수 있습니다.
$ sudo snap install --devmode --beta anbox
Anbox를 업데이트하려면 다음과 같이 입력합니다.
$ sudo snap refresh --beta --devmode anbox
Anbox 설치가 완료되면 앱 서랍에서 Anbox Application Manager를 볼 수 있습니다.
_
안드로이드 apk 설치하기
Anbox는 Android에서 제공하는 사이드로딩 기능을 사용하여 안드로이드 앱(apk) 설치가 가능합니다. 이를 위해서는 호스트 시스템에 Android debug bridge(adb)를 설치해야 합니다.
$ sudo apt install android-tools-adb
Anbox는 기본적으로 Android 앱을 검색해서 설치할 수 있는 기능을 제공하지 않습니다. apk 패키지는 인터넷에서 다운로드 받든 지, 또는 스마트폰에서 추출하는 방법으로 구해야 합니다. apk 패키지가 있으면 다음 명령을 사용하여 Anbox의 Android 컨테이너에 설치할 수 있습니다.
$ adb install my-app.apk
Anbox의 Android 컨테이너가 실행 중이 아닌 경우에는 앱 설치를 할 수 없기 때문에, 터미널에서 Anbox Application Manager을 실행하여 로드할 수 있습니다.
$ anbox.appmgr
_
구글 플레이 스토어 설치하기
apk로 설치하는 방법은 매우 불편합니다. 그래서 geeks-r-us.de 팀에서 구글 플레이 스토어를 Anbox에 설치할 수 있는 스크립트를 개발하여 공개하고 있습니다.
다음과 같이 입력하여 설치합니다.
$ sudo apt install lzip curl
$ wget -O - https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh | bash
이제 Anbox를 실행하면 Google Play Store 앱이 설치되어 있습니다.
그리고 Setting에 들어가 보면 Android Version이 7.1.1인 것을 확인할 수 있습니다.
fly~
'개발' 카테고리의 다른 글
JWT 해킹 사례를 통한 취약점 분석하기 (0) | 2021.09.29 |
---|---|
VMware에 안드로이드 9 버전 설치하기 (0) | 2021.09.29 |
Mac에서 Automator를 사용하여 웹앱 만들기 (0) | 2020.10.12 |
스위프트 웹뷰를 사용하여 MacOS 앱 만들기 (0) | 2020.10.11 |
Swift로 계산기 만들기 #6 - 가로화면(Landscape) 대응하기 (0) | 2020.07.12 |