본문 바로가기

AOSP

AOSP) 안드로이드 빌드 관련 명령어

"source build/envsetup.sh" 명령어를 실행하여 안드로이드 소스코드로 작업할 수 있는 명령어를 불러 올 수 있습니다.
 
"hmm" 명령어를 실행하면 활성화된 명령어들의 목록을 확인할 수 있습니다.

명령어 종류

launch

launch 명령어는 빌드할 타겟을 선택하는 명령어입니다. 

launch <product_name>-<build_variant>

product_name : 빌드할 디바이스의 이름
build_variant : 특정 디바이스 빌드를 어떻게 구성할지 정의

build_variant 타입

  • eng(Engineering) : 모든 디버깅 기능 활성화, 코드 최적화 적게 진행, 가장 많은 로그 메시지, 테스트 기능 포함
  • userdebug :            디버깅 기능 추가, 일반 사용자 빌드와 비슷한 성능 및 최적화, 디버깅 목적으로 주로 사용
  • user :                       최종 사용자 빌드, 디버깅 기능 비활성화, 로그 메시지 최소화, 안정성, 보안성 제공 

tapas

특정 모듈(앱 또는 라이브러리)만 빌드할때 사용되는 명령어입니다.

tapas <build_variant> <module_name>

launch 명령어와 비슷하게 빌드할 대상과, 빌드 타입을 결정해주고 실행하면 됩니다.
 

tapas eng Calculator

Calculator(계산기앱)만을 eng 타입으로 빌드하는 명령어입니다.

m

프로젝트 파일 트리 가장 상단부터 빌드를 즉 전체 시스템을 빌드할때 사용되는 명령어입니다.

mm (=mma)

현재 작업 디렉토리와 그 하위 디렉토리 내의 모듈을 빌드하는데 사용되는 명령어입니다.

cd paht/to/directory
mm

mmma (=mmma)

현재 디렉토리 또는 특정 경로에 있는 모듈을 빌드하는데 사용되는 명령어입니다.

cd path/to/directory
mmm

현재 경로부터 하위 디렉토리들을 빌드합니다.

mmm path/to/directory path/to/another/directory

mmm 명령어 뒤에 오는 하나 또는 두개 이상의 경로에 디렉토리를 빌드합니다.

m clean

이전에 빌드했던 결과물들을 정리하는 명령어 입니다.

croot

AOSP 빌드 환경에서 루트 디렉토리로 이동하는 명령어입니다.

provision

디바이스 플래싱을 모든 필수 파티션에 걸처 수행하는 명령어입니다.

grep 관련 명령어

cgrep :      모든 c/c++ 파일들을 grep
ggrep :      모든 gradle 파일들을 grep  
gogrep :      모든 go 파일들을 grep
jgrep :       모든 java 파일들을 grep
resgrep :   모든 res 디렉토리에 있는 모든 xml 파일들을 grep
mangrep : 모든 AndroidManifest.xml 파일들을 grep
mgrep :     모든 Makefile 또는 Android.bp(Blueprint) 파일들을 grep
sepgrep :  모든 sepolicy 파일들을 grep
sgrep :      모든 source 파일들을 grep
 

용어

플래싱(Flashing)

장치에 장착된 메모리 중 ROM에 데이터를 덮어쓰는 기술입니다.
주로 펌웨어나 운영 체제를 저장하는 비휘발성 메모리(ROM)에 새로운 소프트웨어를 설치하는 과정이 이루어집니다.
 

참고

https://source.android.com/docs/setup/build/building?hl=ko

 

Android 빌드  |  Android 오픈소스 프로젝트  |  Android Open Source Project

Android 빌드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 다음 안내에 따라 Android 빌드를 시작합니다. 환경 설정 다음과 같이 envsetup.sh 스크립트로 환경을

source.android.com