블루투스

블루투스는 Android 13부터 제공되는 메인라인 모듈(선택사항)입니다. 블루투스 메인라인 모듈은 모든 Android 사용자에게 고품질의 일관된 블루투스 환경을 제공하는 것을 목표로 합니다.

동기

블루투스 모듈의 주된 동기는 파트너, 사용자, 앱 개발자에게 고품질 환경을 제공하는 것입니다. Google은 이를 위해 다음과 같은 몇 가지 주요 방법을 사용했습니다.

  1. 새로운 기능, 버그, 상호 운용성 수정사항 및 보안 관련 수정사항이 포함된 업데이트를 더 빨리, 더 자주 출시합니다.
  2. 파트너의 반복 작업을 줄입니다.
    1. 매년 코드베이스를 리베이스하는 오버헤드를 줄였습니다.
    2. 기존 기기에 OTA를 적용하는 오버헤드를 줄였습니다.
  3. 파편화를 줄이고 앱 개발자와 사용자에게 맞는 일관된 환경을 만듭니다.
  4. Android 생태계 내에서 글로벌 보안을 강화합니다. Android 보안 취약점은 대부분 블루투스와 관련이 있습니다.

패키지 형식

패키지는 블루투스 APK(현재 packages/modules/Bluetooth/android/app에 정의됨), 네이티브 라이브러리(libbluetooth.solibbluetooth_jni.so), API(packages/modules/Bluetooth/framework/java/android/bluetooth 아래 있음), HIDL 인터페이스를 포함하는 APEX입니다.

모듈 경계

메인라인 블루투스 모듈 아키텍처

그림 1. 블루투스 모듈 경계

기존의 모든 저장소를 system/bt 아래 단일 저장소로 이전하고 있습니다. 그림 1은 모듈을 구성할 현재 디렉터리를 보여줍니다.

종속 항목

블루투스 모듈에는 다음과 같은 종속 항목이 있습니다.

  • 수신 및 발신 @hide API 사용(삭제 예정)
  • 블루투스 APK, libbluetooth.so, libbluetooth_jni.so에 필요한 라이브러리