์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”2. ํŠน์ง•
2.1. ์•ˆ๋“œ๋กœ์ด๋“œ์™€์˜ ๊ด€๊ณ„2.2. ์ปค์Šคํ…€ ํŽŒ์›จ์–ด์™€์˜ ๊ด€๊ณ„
3. ํƒ‘์žฌ๋œ ๊ธฐ์ข…4. ์—…๋ฐ์ดํŠธ


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๋Š” ๊ตฌ๊ธ€ ์„œ๋น„์Šค๊ฐ€ ํƒ‘์žฌ๋˜์–ด์žˆ๋”๋ฆฌ๋„ ๊ตฌ๊ธ€ ์ˆœ์ • ์•ˆ๋“œ๋กœ์ด๋“œ๊ฐ€ ์ œ์กฐ์‚ฌ ์ปค์Šคํ…€ ์—†์ด ํƒ‘์žฌ๋œ ๊ธฐ๊ธฐ ๋˜ํ•œ ํฌํ•จํ•œ๋‹ค.

4. ์—…๋ฐ์ดํŠธ[ํŽธ์ง‘]

AOSP ์ž์ฒด๊ฐ€ ๊ธฐ๊ธฐ ์ œ์กฐ์‚ฌ๊ฐ€ ์•„๋‹Œ ๊ตฌ๊ธ€์—์„œ ๊ด€๋ฆฌ, ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฐ์ดํŠธ๊ฐ€ ๋งค์šฐ ์‹ ์†ํ•˜๋‹ค. ๋งŒ์•ฝ ์ƒˆ๋กœ์šด ๋ณด์•ˆํŒจ์น˜๊ฐ€ ๋‚˜์™”๋‹ค ํ•˜๋ฉด ๋ฉฐ์น  ์•ˆ์— ์ƒˆ๋กœ์šด ๋ณด์•ˆํŒจ์น˜๊ฐ€ ์ ์šฉ๋˜๋Š” ๋งˆ๋ฒ•์„ ๋ณผ ์ˆ˜์žˆ๋‹ค.

ํ˜„์žฌ๋Š” ์ผ๋ฐ˜ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋„(8.0 ์ด์ƒ) ์ œ์กฐ์‚ฌ ์ปค์Šคํ…€๊ณผ ๊ตฌ๊ธ€์˜ ๋ฒ ์ด์Šค๋ฅผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์—…๋ฐ์ดํŠธ๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ(Android Treble)๊ฐ€ ์ ์šฉ๋˜์–ด ์žˆ๋‹ค.
[1] ์ƒ์ˆ ํ•œ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•œ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ์‚ฌ์—…์  ์ด์œ  ๋“ฑ ๊ตฌ๊ธ€์˜ ์˜๋„์— ๋”ฐ๋ผ ํ—ˆ๊ฐ€ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ์„ ๋ช…์‹œํ•˜๊ณ  ์žˆ๋‹ค.
[2] ์˜ˆ๋ฅผ ๋“ค์–ด, ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ๋ฐ›๋Š” ์•ฑ์€ ๋‹น์—ฐํžˆ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋Œ์•„๊ฐ€์•ผ ํ•˜์ง€๋งŒ ์•ˆ๋“œ๋กœ์ด๋“œ 8.0 ์˜ค๋ ˆ์˜ค๋ถ€ํ„ฐ ๊ตฌ๊ธ€์˜ Firebase Cloud Messaging์„ ์“ฐ์ง€ ์•Š์œผ๋ฉด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋Œ์•„๊ฐ€์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ GMS์— ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.