VMWare에 Android x86을 설치하면서 겪은 삽질(...)을 공유하고자 합니다.
(수정) 롤리팝이 아니라 마시멜로여서 수정합니다.
1. Android x86은 누구에게 필요한가?
- 채굴이슈 등 다양한 이유로 앱플레이어를 사용을 꺼리시는 분
- 앱플레이어가 너무 느려 속도에 불만이 있으신 분
2. 설치 전 알아두셔야 할 사항
- 인텔 CPU를 사용하는 경우에만 시도해주세요. AMD CPU는 하드웨어 가속을 지원하지 않습니다.
- 필자는 인텔 CPU 및 인텔 내장 GPU 조합에 대해서만 실험을 진행하였습니다.
- Android x86에서 돌아가지 않는 모바일 게임들은 매우 많습니다.
- 특히, 제가 하고자 하는 게임은 마시멜로 버전에서만 동작하였고 누가 이상에서는 동작하지 않았습니다.
- 마시멜로 버전은 Google Play 게임 설치가 안됩니다.
3. VMWare에 Android x86 설치
이 부분은 인터넷에 잘 소개된 글이 많으므로 다른 글을 참고해주시기 바랍니다.
이 부분을 넣을까 고민했는데, 너무 장황해서 스킵하였습니다.
4. ARM Translation Layer 설치
이 부분은 제가 완벽하게 이해하지 않았기 때문에 틀린 표현이 존재할 수도 있습니다.
우선 제가 이해한 바에 따르면, 대부분의 앱은 ARM을 타겟으로 빌드가 되어있기 때문에 ARM 바이너리 코드를 x86으로 변환하는 작업이 필요합니다. 이를 수행하는 것이 ARM Translation Layer이고, 거의 모든 앱플레이어에 내장되어 있습니다. Android x86에는 이 layer가 기본으로 설치되어 있지 않기 때문에, 추가로 설치해주셔야 합니다.
(1) 먼저 Settings > Apps Compatibility > Enable Native Bridge 를 on합니다.
(2) 터미널을 킵니다. 미리 설치된 앱들 중에 "터미널 에뮬레이터"를 실행합니다.
(3) "su"를 입력하여 루트 권한을 획득합니다.
(4) "/system/etc"에 "houdini.sfs"를 다운받습니다.
(5) "/system/bin/enable_nativebridge" 또는 "enable_nativebridge"를 실행시킵니다.
houdini.sfs는 https://github.com/Rprop/libhoudini 에서 본인의 안드로이드 버전 및 32비트/64비트에 맞는 파일을 선택하여 다운받으면 됩니다.
(2)~(5)의 작업은 다음과 같이 이루어집니다. (Android x86 마시멜로 32-bit 기준)
위의 그림을 따라하시기 전에 반드시 su 입력하여 권한 획득하시기 바랍니다.
"enable_nativebridge" 실행 후 오류 메세지가 뜨지 않는다면 성공한 것이고, "/system/lib/arm/libhoudini.so" 가 존재하는지 확인하시기 바랍니다.
5. 구글 플레이에서 모바일 게임 설치
플레이 하고자하는 앱을 설치하시면 됩니다.
한글 타이핑이 안된다면 "gboard" 검색하셔서 구글 키보드 설치하시기 바랍니다.
일부 모바일 게임은 "Google Play 게임"을 요구하나, 제가 실험해본 바로는 마시멜로에서는 설치할 수 없었습니다.
6. 모바일 게임 실행
일부 모바일 게임은 ARM Translation Layer 없이도 돌아가는 경우가 있습니다.
정확한 이유는 모르겠으나, 일부 앱은 x86에도 대응 가능한 것으로 추측됩니다.
예를 들어 "클래시 오브 클랜"은 libhoudini를 설치하지 않아도 실행이 가능했습니다.
허나, 제가 플레이하고자 하는 게임인 "크루세이더 퀘스트"는 libhoudini를 설치하지 않으면 곧바로 튕깁니다.
libhoudini 설치 이후에 게임을 실행해보면,
앱이 잘 실행되며, 여러 컨텐츠를 진행해본 결과
블루스택, 녹스 앱 플레이어등은 스마트폰으로 플레이할 때에 비해 매우 느린 반응속도를 보여주는 반면
Android x86은 네이티브라고 해도 믿길 정도의 빠른 속도였습니다.
앞으로 블루스택 혹은 다른 앱 플레이어를 사용할 일은 없을 것 같습니다.
7. 여담
- 마시멜로, 누가, 오레오 버전과 32비트, 64비트를 실험해봤는데 마시멜로 32비트에서만 게임이 잘 돌아갔습니다.
- 마시멜로가 아닌 다른 버전에서 libhoudini를 설치하실 경우 "/system/bin/enable_nativebridge"를 vim으로 열어서 코드를 확인하신 다음 진행하시기 바랍니다. 일부 버전의 경우 houdini.sfs의 파일 이름을 변경해야 정상 작동합니다.
- 간혹 안드로이드 설치 직후 실행 시 아무리 기다려도 검은 화면만 뜨고 android 로고가 보이지 않는 경우가 있는데, 이럴 경우 VMWare 전용 iso가 따로 있는지, 그렇지 않다면 아예 설치를 포기하고 다른 버전에서 시도하는게 좋습니다. 인터넷 등지에서 "nomodeset xforcevesa"를 가르쳐 주는 경우가 있는데 이를 이용하면 (정확한 원인은 알 수 없으나) 매우 느린 속도로 실행되므로 게임을 돌리기 적합하지 않습니다.
앱플레이어에서 지원하는 키보드 맵핑이나 마우스 레코딩(매크로)같은 부분에서 불편해서 다시 앱플레이어로 돌아갔었어요.
요즘은 모르겠네요.