Android Open Source Project

덤프버전 :

1. 개요
2. 특징
2.1. 안드로이드와의 관계
2.2. 커스텀 펌웨어와의 관계
3. 업데이트



1. 개요[편집]


Android Open Source Project(AOSP)는 구글이 만든 모바일 플랫폼의 오픈소스 운영체제 프로젝트이다. 흔히 안드로이드오픈 소스라는 건 이 AOSP의 소스 코드 공개를 얘기하는 것이다.

AOSP의 소스는 모두 공개하지만, 퀄컴, 미디어텍 등 칩셋 업체의 Board Support Package(BSP) 부분은 공개하지 않는다. AOSP는 구글에서 개발하는 Pixel2/3/4 의 소스 코드를 확인할 수 있고, Android PDK 나 NDK 개발자는 우분투 환경에 빌드해서 이미지를 스스로 만들 수 있다.

소스 코드의 크기는 안드로이드 10 기준으로 대략 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 소스의 빌드는 공식적으로 리눅스macOS만 지원한다. Windows 10의 WSL(Windows Subsystem for Linux)에서 그냥 빌드하려고 시도하면 'Case in-sensitive file system not supported' 오류만 나며 빌드가 되지 않는다. 이는 디렉터리가 대소문자 구별을 하지 않기 때문이며 파워셸에서 fsutil.exe file setCaseSensitiveInfo <경로> enable 로 설정하면 빌드할 수 있다.

2. 특징[편집]


역시 말그대로 'Android Open Source Project'이다보니, 여러 개발자들이 이를 기반으로 커스텀 펌웨어를 많이 개발한다. 대표적인 예시가 바로 Lineage OS, 그외에도 AOSP 기반으로 제작된 커스텀 펌웨어가 수도 없이 많다. 또한 제조사의 부가기능이 들어가있지 않아 굉장히 빠릿하고 부드럽다. 이는 실제로 구글 픽셀 시리즈나 이와 비슷한 성능인 Pixel Experience 롬만 봐도 알 수 있다.

또한 미국의 무역 제재로 인해 안드로이드 사용이 불가능해진 경우에는 AOSP 기반으로 운영 체제를 만들어 안드로이드 앱 실행을 보장해준다. 대표적으로 화웨이훙멍이 있다.


2.1. 안드로이드와의 관계[편집]


안드로이드의 기본이 된다. 하지만 AOSP=안드로이드는 아니다. 안드로이드라는 상표권은 엄연히 구글이 가지고 있으며, 안드로이드라는 이름을 달고 제품을 출시하려면 구글이 제시하는 하드웨어 기준 및 소프트웨어 테스트(CTS)를 만족하고 플레이스토어를 포함한 구글의 서비스 프레임워크(GMS)를 탑재한 뒤 최종적으로 구글의 승인을 받아야 한다.[1] AOSP는 안드로이드에서 이런 문제가 되는 부분을 뺀 부분을 의미하며, AOSP 기반의 운영 체제라고 해서 안드로이드라는 이름을 달 수는 없다.

단, 넓은 의미로 제조사의 커스텀이 들어가지 않은, 순정 안드로이드를 AOSP라고 부르기도 한다.

AOSP의 소스가 공개되어 있다지만 구글은 GMS(Google Mobile Service)에 독점적인 기능을 점점 추가하고 있어서 사실상 구글의 인증을 받지 않은 안드로이드는 뭔가 반쪽짜리 물건이 되어버렸다.[2] 이것 때문에 GMS의 기능을 오픈소스로 재구현하는 microG라는 프로젝트가 진행되고 있다.


2.2. 커스텀 펌웨어와의 관계[편집]


파일:다른 뜻 아이콘.svg
은(는) 여기로 연결됩니다.
커스텀 펌웨어 목록에 대한 내용은 커스텀 펌웨어/안드로이드 문서
커스텀 펌웨어/안드로이드번 문단을
커스텀 펌웨어/안드로이드# 부분을
, AOSP 기반 커스텀 펌웨어 목록에 대한 내용은 커스텀 펌웨어/안드로이드/목록 문서
2번 문단을
#s-번 문단을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
참고하십시오.





AOSP는 커스텀 펌웨어와 관계가 많다. 새로운 AOSP 소스 코드가 나오면. 개발자들이 새 소스 코드로 개발을 시작한다. 다만, 몇몇 커스텀 펌웨어Lineage OS 기반도 있어, AOSP 기반인 Lineage OS의 새 버전이 나오면 개발자들이 그걸로 개발하는 경우도 있다.


3. 업데이트[편집]


AOSP 자체가 기기 제조사가 아닌 구글에서 관리, 배포하는 것이기 때문에 업데이트가 매우 신속하다. 만약 새로운 보안 패치가 나왔다 하면 며칠 안에 새로운 보안 패치가 적용된다.

현재는 일반 안드로이드에서도(8.0 이상) 제조사 커스텀과 구글의 베이스를 분리함으로써 업데이트를 쉽게 할 수 있는 구조(Android Treble)가 적용되어 있다.


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-10-20 13:08:38에 나무위키 Android Open Source Project 문서에서 가져왔습니다.

[1] 상술한 조건을 모두 만족한다고 하더라도 사업적 이유 등 구글의 의도에 따라 허가하지 않을 수 있음을 명시하고 있다.[2] 예를 들어, 푸시 알림을 받는 앱은 당연히 백그라운드에서 돌아가야 하지만 안드로이드 8.0 오레오부터 구글의 Firebase Cloud Messaging을 쓰지 않으면 백그라운드에서 돌아가지 않는다. 그리고 이것은 GMS에 구현되어 있다.