Computer >> 컴퓨터 >  >> 문제 해결 >> Android

Android x86 설치 완벽 가이드 – USB·CD·가상머신 설치 및 문제 해결 방법

데스크톱에서 안드로이드를 경험하고 싶은 사용자를 위해 안드로이드 기반 운영체제가 여러 개 존재하지만, 그중 상당수는 사실 Android x86의 포크(fork)입니다(PrimeOS, Remix OS, Phoenix OS x86 등). 이는 한동안 Android x86의 개발 속도가 늦춰지면서 다른 개발자들이 그 공백을 메꿨기 때문입니다.

하지만 최근 Android x86은 안드로이드 오레오(Oreo) 기반 업데이트를 포함해 꾸준히 업데이트를 배포하고 있습니다. 따라서 데스크톱에서 훌륭한 안드로이드 환경을 원한다면, 다른 포크 버전을 시도하기 전에 먼저 Android x86을 사용해 보는 것이 좋습니다. (참고로 Remix OS는 이미 개발이 완전히 중단된 상태입니다.)

설치 전 준비물

  • Android x86 ISO 파일
  • UNetbootin

Ubuntu 사용자라면 터미널에서 아래 명령어로 UNetbootin을 설치할 수 있습니다.

sudo apt-get install unetbootin

Arch Linux 사용자라면 다음 명령어를 사용하세요.

pacman -S unetbootin

USB 플래시 드라이브로 설치하기

  1. UNetbootin을 실행하고 Android x86 ISO 파일을 지정합니다.
  2. 'USB Drive'를 선택하고 OK를 클릭합니다.
  3. UNetbootin이 Android x86을 USB에 복사하여 휴대용 설치 미디어로 만들어 줍니다.
  4. 작업이 완료되면 컴퓨터를 재부팅하고 BIOS 메뉴로 진입합니다.
  5. BIOS에서 특정 미디어(HDD, CD, USB 등)로 직접 부팅할 수 있는 설정 페이지를 찾습니다.
  6. USB 플래시 드라이브로 직접 부팅하도록 선택합니다.
  7. GRUB 메뉴가 나타나면 하드 드라이브에 Android x86을 설치하는 항목을 선택합니다.
  8. 설치할 파티션을 선택해야 합니다. 확실하지 않다면 파티션을 포맷하지 마세요. 당연히 다른 OS가 설치된 파티션을 덮어쓰지 않도록 주의해야 합니다.
  9. GRUB 설치 여부를 묻는 프롬프트가 나타납니다. Windows만 사용 중이고 다른 리눅스 OS가 없다면 'Yes'를 선택하세요. 이미 리눅스 OS 또는 GRUB이 설치되어 있다면 덮어쓰기는 절대 피해야 합니다.
  10. 'Make system R/W' 여부를 묻는 프롬프트에서는 'Yes'를 선택합니다. 이렇게 하면 Android x86이 루팅되어 /system 파티션에 읽기-쓰기 권한이 활성화됩니다.
  11. 컴퓨터를 재부팅하고 새롭게 설치된 Android x86을 즐기세요.

CD / DVD로 설치하기

CD/DVD 설치 과정은 거의 동일하며, 차이점은 Android x86 ISO 파일을 부팅 가능한 CD로 굽는다는 것뿐입니다. ISO 굽기 프로그램은 매우 다양하며, 간편하게 Free ISO Burner를 사용할 수 있습니다.

가상 머신에 설치하기

  1. VM의 RAM을 최소 512MB 이상으로 설정합니다. 최신 오레오 기반 Android x86이라면 조금 더 높게 설정하는 것이 좋습니다.
  2. Android x86 ISO 파일을 VM에 로드하고 VM을 실행합니다.
  3. GRUB 메뉴가 나타나면 하드 디스크에 Android x86을 설치하는 항목을 선택합니다.
  4. 새 파티션을 생성하고 Android x86을 설치합니다. 지원되는 형식(ext3, ext2, ntfs, fat32) 중 하나로 포맷하세요. 단, fat32를 선택하면 데이터를 저장할 수 없다는 경고가 표시됩니다. 이 경우 Android x86은 라이브 CD처럼 작동하게 되며(사용 중인 데이터가 시스템에 저장되지 않음) 주의가 필요합니다.
  5. 부트로더 GRUB 설치를 묻는 질문에는 'Yes'를 선택하고, 시스템을 R/W로 만들어 루트 권한을 활성화합니다.
  6. 모든 과정이 끝나면 재부팅합니다.

GRUB 메뉴에 Android x86 추가하기

먼저 GRUB Customizer를 설치하면 이 과정이 훨씬 수월해집니다.

sudo add-apt-repository ppa:danielrichter2007/grub-customizer

sudo apt-get update

sudo apt-get install grub-customizer

GRUB Customizer를 실행한 후 새 GRUB 항목을 추가합니다.

'Sources' 탭을 클릭하고 아래 명령어를 입력합니다.

set root='(hd0,4)'

search --no-floppy --fs-uuid --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3

linux androidx86/kernel root=UUID=e1f9de05-8d18-48aa-8f08-f0377f663de3 quiet androidboot.hardware=generic_x86 SRC=/androidx86 acpi_sleep=s3_bios,s3_mode

initrd androidx86/initrd.img

명령어 중 굵게 표시된 부분은 반드시 자신의 환경에 맞게 수정해야 하는 항목입니다.

set root='(hd0,4)'에서 (hd0,4)는 Android x86이 설치된 파티션으로 변경합니다. HD0는 SDA를 의미하므로, SDB에 설치했다면 HD1이 됩니다. 뒤의 숫자는 파티션 번호입니다. 예를 들어 hd0,4는 SDA4를 뜻하며, SDA6에 설치했다면 hd0,6으로 바꾸면 됩니다.

--set=root e1f9de05-8d18-48aa-8f08-f0377f663de3 부분의 무작위 문자열은 Android x86이 설치된 파티션의 UUID입니다. 올바른 UUID로 변경해야 합니다. 정확한 UUID는 GRUB Customizer에서 새 항목을 만든 후 Options 탭으로 이동하여 드롭다운 메뉴에서 'Linux' 옵션을 선택하면 확인할 수 있습니다. 파티션 드롭다운 메뉴에서 해당 파티션을 선택한 뒤 Source 탭으로 가면 UUID가 표시됩니다.

굵게 표시된 androidx86/은 Android x86의 루트 경로입니다. Android x86이 설치된 실제 파티션으로 이동하면 'android'라는 이름의 폴더가 보이는데, 이것이 Android x86 설치의 루트입니다.

androidboot.hardware은 사용 중인 특정 디바이스를 의미합니다. 구버전(Android 4.03 등)을 사용한다면 androidboot_hardware처럼 마침표(.) 대신 밑줄(_)로 변경해야 합니다. 최신 Android x86 버전에서는 이 설정이 전혀 필요하지 않습니다. 커널 명령줄에 androidboot.hardware가 설정되지 않아도 init 프로세스가 ro.hardware의 올바른 값을 자동으로 가져오기 때문입니다.

설정 가능한 하드웨어 목록은 다음과 같습니다.

  • generic_x86: 목록에 없는 일반적인 하드웨어의 기본값
  • eeepc: EEEPC 노트북
  • asus_laptop: ASUS 노트북 (지원되는 ASUS 모델에 한함)

앱 설치 팁 – 구글 플레이 없이 APK 받기

Android x86은 구글 플레이 스토어를 사용할 수 없으므로, 앱을 얻기 위한 대안이 필요합니다.

먼저 출처를 알 수 없는 앱 설치를 허용해야 합니다. 설정 > 애플리케이션으로 이동해 'Unknown Sources(출처를 알 수 없는 앱)'를 활성화하고 경고 창은 무시하세요.

이제 구글 플레이 외부에서 APK를 내려받아 설치할 수 있습니다. 서드파티 앱 스토어는 많지만 신중하게 선택해야 합니다. 비교적 신뢰할 만한 스토어는 다음과 같습니다.

  • XDA Labs
  • AndAppStore
  • Aptoide
  • APKMirror

배터리 잔량이 잘못 표시될 때 해결 방법

안드로이드는 특정 배터리를 전제로 개발되었기 때문에, 안드로이드 기반 OS는 다른 하드웨어 플랫폼(예: 노트북)에서 배터리 값을 잘못 표시할 수 있습니다. 이를 수정하려면 몇 가지 설정을 조정해야 합니다.

리눅스에서 애플리케이션은 sysfs를 통해 배터리 상태를 수집하며, 배터리 정보는 /sys/class/power_supply/ 경로에 위치합니다. 그러나 플랫폼마다 이 디렉터리 구조가 다를 수 있는데, 안드로이드는 /sys/class/power_supply/ 구조를 하드코딩하고 있습니다. 이 문제를 해결하려면 vendor/asus/eeepc/system.prop 파일에 새 항목을 추가하고, 플랫폼에 맞게 값을 변경하여 sysfs 디렉터리 구조를 올바르게 설정할 수 있습니다. 해당 항목은 다음과 같습니다.

ro.sys.fs.power_supply.ac=/AC0
ro.sys.fs.power_supply.bat=/BAT0
ro.sys.fs.power_supply.ac.feature.online=/online
ro.sys.fs.power_supply.bat.feature.status=/status
ro.sys.fs.power_supply.bat.feature.present=/present
ro.sys.fs.power_supply.bat.feature.capacity.now=/charge_now
ro.sys.fs.power_supply.bat.feature.capacity.full=/charge_full
ro.sys.fs.power_supply.bat.feature.voltage.now=/voltage_now
ro.sys.fs.power_supply.bat.feature.voltage.full=/voltage_full
ro.sys.fs.power_supply.bat.feature.tech=/technology
#ro.sys.fs.power_supply.bat.features.bat.health is not supported
#ro.sys.fs.power_supply.bat.features.bat.temperature is not supported

본질적으로 이 항목들은 안드로이드 배터리 서비스 코드가 올바른 위치에서 정보를 찾도록 알려주는 역할을 합니다.

자체 배터리 상태 처리 코드를 구현하려면 frameworks/base/libs/utils/IBatteryServiceStatus.cpp의 IBatteryServiceStatus 클래스를 재구현하고, frameworks/base/libs/utils/BatteryServiceStatus.cpp를 자신의 구현 코드로 교체하면 됩니다.

절전 모드에서 시스템 깨우기

다른 OS와 달리, 마우스를 움직이거나 아무 키나 누른다고 해서 절전 상태에서 시스템을 깨울 수 없습니다.

ESC, Menu, 방향키(좌·우·상·하)만으로 시스템을 깨울 수 있으며, 위 키들을 최소 1초 이상 길게 눌러야 합니다. 키가드 화면이 표시될 때 Menu 키를 눌러 화면 잠금을 해제하거나, 마우스 휠을 돌려서 잠금을 해제할 수도 있습니다.

지원되지 않는 그래픽 카드에서 부팅하기

라이브 CD 부팅 시 다양한 부팅 옵션이 제공되는 메뉴에서 Tab 키를 누르면 부팅 프롬프트가 표시됩니다.

아래와 같은 내용이 나타날 것입니다.

kernel initrd=/initrd.img root=/dev/ram0
androidboot_hardware=generic_x86 acpi_sleep=s3_bios,s3_mode video=-16
quiet SRC= DATA= DPI=240

커널 메시지를 확인하려면 먼저 이 줄에서 'quiet' 옵션을 제거합니다.

그런 다음 다양한 비디오 모드 파라미터를 설정할 수 있습니다. NoModeSet을 사용하면 커널 모드 설정이 비활성화되어 커널이 그래픽 해상도를 자동으로 설정하지 않습니다. 또는 Xforcevesa를 사용해 VESA 드라이버를 강제로 사용할 수도 있습니다.

여러 파라미터를 조합해 본인 환경에 맞는 것을 찾아보세요. 두 옵션을 함께 사용하는 'nomodeset xforcevesa'도 가능합니다.