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

안드로이드 Camera2 API 활성화 방법 – 루팅·비루팅 기기 모두 가능

안드로이드에서 앱 개발자는 구글의 Camera2 API를 통해 기기의 카메라 하드웨어와 직접 소통할 수 있습니다. GCam(구글 카메라 포트) 같은 서드파티 카메라 앱을 사용하기 위한 필수 조건이기도 합니다. 하지만 이 API가 제공하는 강력한 제어 권한 때문에 대부분의 제조사는 출고 시 Camera2를 비활성화해 두는 경우가 많습니다.

Camera2 API가 왜 필요한가?

간단히 말해, Camera2 API는 앱이 스마트폰의 카메라 하드웨어를 사용하고 제어할 수 있게 해주는 도구 모음입니다. 작동 원리의 세부 사항은 본 가이드의 범위를 벗어나지만, 대부분의 서드파티 카메라 앱이 이 API에 의존한다는 점은 알아두어야 합니다. 다른 서비스와 달리 카메라 앱은 해당 기기가 지원하는 하드웨어의 성능을 최대한 끌어내기 위해 직접적인 접근 권한이 필요하기 때문입니다.

예를 들어, WhatsApp의 기본 카메라에는 사진·동영상 촬영, 플래시 켜기, 전면/후면 카메라 전환 정도의 옵션만 있습니다. 반면 GCam과 같은 본격적인 카메라 앱에서는 RAW 이미지 촬영, 화이트 밸런스 조정, 셔터 속도, ISO, 수동 포커스 등의 고급 기능이 필요합니다. 바로 이러한 고급 제어를 위해 Camera2 API가 사용됩니다.

내 기기에서 Camera2 API 활성화 여부 확인하기

먼저 내 휴대폰에서 Camera2 API가 활성화되어 있는지 확인해야 합니다. 온라인 포럼을 검색해 호환성을 확인하거나, 자동으로 검사해 주는 서드파티 앱을 사용할 수 있습니다. 후자를 선호한다면 구글 플레이 스토어에서 "Camera2 API Probe"를 다운로드하세요.

이 앱은 휴대폰의 Camera2 호환성에 대한 상세 정보를 알려줍니다. "하드웨어 지원 수준(Hardware Support Level)" 항목에서 다음과 같은 용어를 볼 수 있으며, 각각의 의미는 아래와 같습니다:

  1. LIMITED: 카메라 포트가 의도대로 작동하지 않을 수 있으며, 이후 버그나 오류를 겪을 가능성이 큽니다.
  2. LEGACY: 기본적인 카메라 기능은 작동하지만, 고급 제어 기능은 제한됩니다.
  3. FULL 또는 LEVEL_3: 휴대폰에서 Camera2 API가 활성화되어 있으며, 서드파티 카메라 포트와 완전히 호환됩니다.

Camera2 API Probe는 어떤 기능이 지원되고 어디까지가 한계인지에 대한 완전한 정보를 제공합니다. 후면 및 전면 카메라를 각각 분리해서 지원되는 동영상 FPS, 초점 모드, 노출 설정, 손떨림 보정 모드, 미리보기 해상도 등의 세부 정보까지 확인할 수 있습니다.

이제 기기에서 Camera2 API를 활성화하는 몇 가지 방법을 소개합니다. 다만 아래 과정들은 모두 시스템 파일에 일종의 변경을 가해야 하므로 주의가 필요합니다. 단순히 서드파티 카메라 앱만 필요하다면 GCam Go를 먼저 시도해 보세요. 기본적인 카메라 기능을 모두 갖추고 있으며, Camera2 완전 지원 없이도 작동합니다.

1) Camera2API 매직 모듈 (루팅 필요)

Magisk의 모듈 방식을 활용하면 수정 파일만 플래싱하면 Camera2 제한을 우회할 수 있습니다. 물론 휴대폰이 루팅되어 있어야 합니다.

  1. jhangyu의 GitHub 저장소에서 Camera2API 모듈을 다운로드합니다.
  2. 모듈을 플래싱합니다.
    • Magisk 실행 > 우측 하단 '모듈(Modules)' > '저장소에서 설치(Install from storage)' > 다운로드한 .zip 파일 선택
  3. 기기를 재부팅합니다.

2) 터미널 에뮬레이터 (루팅 필요)

KernelSU처럼 다른 루팅 도구를 사용하는 경우 터미널 에뮬레이터(Terminal Emulator) 앱으로 build.prop 파일을 수정하여 API를 활성화할 수 있습니다.

  1. 기기에 터미널 에뮬레이터를 다운로드합니다.
    • 앱의 .APK 파일은 온라인 포럼과 웹사이트에서 찾을 수 있습니다.
  2. su 명령어를 입력해 앱에 루트 권한을 부여합니다.
  3. 그다음 아래 두 명령어를 차례로 입력합니다:
    • setprop persist.camera.HAL3.enabled 1
    • setprop vendor.persist.camera.HAL3.enabled 1
  4. Enter를 누르고 기기를 재부팅합니다.

참고로 API를 활성화하려면 위 명령어 줄을 /system/build.prop 파일에 추가해야 할 수도 있습니다.

3) TWRP (비루팅, 부트로더 언록 상태)

루팅하지 않은 기기 사용자는 TWRP를 통해 위의 두 명령어를 build.prop 파일에 적용할 수 있습니다. 잘못된 파일을 건드리면 기기가 완전히 벽돌(hard-brick)이 될 수 있으므로, 시작 전에 모든 데이터를 백업하고 신중하게 진행하는 것이 좋습니다.

  1. PC에 ADB를 설정합니다.
    • ADB를 처음 설정하는 것이라면 관련 상세 가이드를 함께 참고하는 것을 강력히 권장합니다.
  2. 기기에 맞는 TWRP 리커버리 파일을 다운로드하고 파일명을 twrp.img로 변경합니다.
  3. USB 케이블로 휴대폰과 PC를 연결합니다.
  4. Platform Tools의 명령 프롬프트에 아래 명령어를 입력해 TWRP를 부팅합니다.
    • adb devices
    • adb reboot bootloader
    • fastboot boot twrp.img
  5. 휴대폰이 TWRP로 부팅되면 "Swipe to Allow Modifications(수정 허용)" 바를 스와이프합니다.
  6. 명령 프롬프트에서 ADB Shell을 통해 Camera2 API를 활성화하는 아래 명령어를 입력합니다.
    • adb devices
    • adb shell
    • setprop persist.camera.HAL3.enabled 1
    • exit
    • adb reboot

위 방법 중 하나를 완료했다면 Camera2 API 상태를 다시 확인하고, 구글 카메라(GCam) 또는 다른 포트 버전을 자유롭게 사용할 수 있습니다. 단, 기기를 초기화하면 이 절차를 다시 진행해야 할 수 있다는 점을 유의하세요.