Android Open Source Project
1. 개요
Android Open Source Project(AOSP)는 구글이 만든 모바일 플랫폼의 오픈소스 운영 체제 프로젝트이다. 흔히 안드로이드가 오픈 소스라는 건 이 AOSP의 소스 코드 공개를 얘기하는 것이다.
AOSP의 소스는 모두 공개하지만, 퀄컴과 MTK의 칩셋 업체의 BSP 부분은 공개하지 않는다. AOSP는 구글에서 개발하는 Pixel2/3/4 의 소스를 확인할 수 있고, Android PDK 나 NDK 개발자는 우분투 환경에 빌드해서 이미지를 스스로 만들 수 있다. 우분투20.04에서 Android 10빌드
Android source는 Q-OS 기준으로 대략 100GB 정도의 크기이고, /.repo #가 47GB로 거의 50% 용량을 차지하고 있다. Git 전체를 다운로드 받으면 git log를 통해서 history 확인이 가능하지만, 굳이 전체 history를 확인할 필요가 없는 경우 git log 정보는 디스크 낭비이다. 예를 들어, 개발자가 commit을 이미 만든 상태에서 commit 을 반영한 system 이미지를 만드는 경우 git log 전체를 다운로드 할 필요은 없다. 또한 Android source는 Linux와 MacOS의 prebuilt tool chain 까지 포함하고 있어 Linux에서만 빌드하는 경우 Mac OS tool chain은 삭제 가능하다.Git log와 Tool chain을 삭제하면 100GB에서 65GB로 소스 크기를 줄일 수 있다 #방법
AOSP 소스의 빌드는 공식적으로 리눅스와 Mac OS만 지원한다. Windows 10의 WSL (Windows Subsystem for Linux)에서는 'Case in-sensitive file system not supported' 에러 빌드가 불가능하다#.
2. 특징
역시 말그대로 Android Open Source Project 이다보니. 여러 개발자에게도 영향을 준다. 예를 들어 AOSP 기반으로 제작된 LineageOS가 있고 그외에도 AOSP 기반으로 제작된 커스텀 펌웨어가 수도없이 많다. 또한 제조사의 부가기능이 들어가있지 않아 굉장히 빠릿하고 부드럽다.
2.1. 안드로이드와의 관계
안드로이드의 기본이 되는 OS이다. 하지만 AOSP=안드로이드는 아니다. 안드로이드는 엄연히 구글이 상표권 및 저작권을 가진 운영체제이며, 안드로이드라는 이름을 달고 제품을 출시하려면 구글이 제시하는 하드웨어 기준 및 소프트웨어 테스트(CTS)를 만족하고 플레이스토어를 포함한 구글의 서비스 프레임워크(GMS)를 탑재한 뒤 최종적으로 구글의 승인을 받아야 한다.[1] AOSP는 안드로이드에서 이런 문제가 되는 부분을 뺀 부분을 의미하며, AOSP 기반의 운영체제라고 해서 안드로이드라는 이름을 달 수는 없다.
단, 넓은 의미로 제조사의 커스텀이 들어가지 않은, 순정 안드로이드를 AOSP라고 부르기도 한다.
AOSP의 소스가 공개되어 있다지만 구글은 GMS(Google Mobile Service)에 독점적인 기능을 점점 추가하고 있어서 사실상 구글의 인증을 받지 않은 안드로이드는 뭔가 반쪽짜리 물건이 되어버렸다.[2] 이것 때문에 GMS의 기능을 오픈소스로 재구현하는 microG라는 프로젝트가 진행되고 있다.
2.2. 커스텀 펌웨어와의 관계
AOSP는 커스텀 펌웨어와 관계가 많다. 새로운 AOSP 소스 코드가 나오면. 개발자들이 새 소스 코드로 개발을 시작한다. 다만. 몇몇 커스텀 펌웨어는 LineageOS 기반도 있어. AOSP 기반인 LineageOS의 새 버전이 나오면 개발자들이 그걸로 개발하는 경우도 있다.
자세한 내용은 커스텀 펌웨어/안드로이드 문서를, AOSP 기반의 커스텀 펌웨어 목록은 커스텀 펌웨어/안드로이드/목록 문서의 2.1문단이나 안드로아드 사용자 인터페이스 목록 틀을 참조하면 된다.
3. 탑재된 기종
구글 서비스 없이 순정 AOSP만 탑재한 디바이스는 B2C로 판매되지 않거나 임베디드 OS용으로 탑재된 기기가 대부분이기 때문에 여기서의 AOSP는 구글 서비스가 탑재되어있더리도 구글 순정 안드로이드가 제조사 커스텀 없이 탑재된 기기 또한 포함한다.
- 구글 픽셀 시리즈 기기
- 구글 넥서스 시리즈와 구글 플레이 에디션 기기
- 안드로이드 원 플랫폼 대상 기기
- Essential Phone
4. 업데이트
AOSP 자체가 기기 제조사가 아닌 구글에서 관리, 배포하는 것이기 때문에 업데이트가 매우 신속하다. 만약 새로운 보안패치가 나왔다 하면 며칠 안에 새로운 보안패치가 적용되는 마법을 볼 수있다.
현재는 일반 안드로이드에서도(8.0 이상) 제조사 커스텀과 구글의 베이스를 분리함으로써 업데이트를 쉽게 할 수 있는 구조(Android Treble)가 적용되어 있다.