Android File system의 구조
├── abi ├── bionic : bionic libc(BSD의 libc 수정)를 포함 (glibc, uclibc사용안함) ├── bootable : bootloader, recovery mode 관련 코드 ├── build : 빌드 관련 스크립트를 저장 │ ├── envsetup.sh : 환경 정보 설정 파일, 제조사의 Flag들에 대한 설정을 함 │ ├── core │ │ │ │ │ └── prelink-linux-arm.map : shared library들이 로딩되는 번지를 미리 지정한 파일 │ └── target │ └── board │ └── generic │ ├── AndroidBoard.mk : 최상위 directive 파일, Android 최종 결과물 │ │ 구성서 자동 포함 bin에 대한 install을 결정 │ │ init.rc, init%hw%.rc 들을 install │ └── BoardConfig.mk : HAL의 en/disable 등을 결정 ├── cts : Compatibility Test Suite, GMS를 탑재 위해 통과해야 하는 Test ├── dalvik : dalvik VM 관련 소스 코드 ├── development : 개발용 application을 저장 ├── device : 칩 관련 설정 파일 및 디버깅을 위한 cmm 파일 등을 포함 ├── external : Android에서 사용되어지는 Library 및 Tools 관련 소스코드 │ ├── frameworks │ ├── base : Android Framework Source Code │ ├── cmds : binder 관련된 service manager 소스 코드 및 여러 가지 command │ ├── libs : Android baselibrary(AudioFlinger,SurfaceFlinger, util, binder 등) │ ├── media : media 관련 Client & Service 라이브러리 │ └── policies : Android 시스템을 background에서 제어하는 최상위 application │ KeyGuard 관련, 화면 제어(rotation..), event 관리 등의 작업 처리 ├── hardware : Android에서 사용하는 h/w 관련 소스 코드 포함(HAL, include..) │ ├── libhardware : Board H/W 의존성이 높은 하드웨어 모듈 포함 │ └── libhardware_legacy : 일반적으로 Android에 반드시 있어야 하는 H/W 모듈(audio,wifi..) ├── packages : Android 기본 Application 소스 코드를 포함 ├── pdk ├── prebuilt : 툴체인과 미리 빌드되어 들어가는 바이너리 파일 포함 ├── system : Android의 기본 바이너리 소스 코드(init…) │ ├── core │ │ ├── init : Android init 소스 코드 │ │ └── vold : external storage 제어 모듈 (Éclair) │ └── vold : external storage 제어 모듈 (Froyo/Gingerbread) └── vendor : vendor specific code(HAL, product list 관리…)
소스출처
http://taehyo.egloos.com/4073971
http://dplex.egloos.com/m/4268602
- Android 관련 모든 소스
Android의 관련 모든 Repository를 볼수 있으므로 가능하면 이곳에서 찾아 보자.
- Android Platform 관련 Source
https://android.googlesource.com/platform/
https://android.googlesource.com/device/
- Android Uboot/Kernel Source
https://android.googlesource.com/kernel/
TI의 Beagle
https://android.googlesource.com/device/ti/bootloader/uboot/
https://android.googlesource.com/device/ti/beagle-x15-kernel/
NXP의 IMX
https://android.googlesource.com/platform/hardware/bsp/bootloader/nxp/uboot-imx/
- Android Trace32 CMM Script 관련사항
상위에서 device에서 trace32의 cmm script를 언급하였는데, 이에 관련해서 사용법을 간단히 익혀보자.
https://m.blog.naver.com/PostView.nhn?blogId=yyg1368&logNo=60119956109&proxyReferer=https%3A%2F%2Fwww.google.com%2F
Trace32의 CMM script 파일 관련사항
http://trace32.com/wiki/index.php/%EB%94%94%EB%B2%84%EA%B9%85_%EC%8B%9C_%EC%9C%A0%EC%9A%A9%ED%95%9C_%EB%AA%85%EB%A0%B9
1.1 Build 후 OUT Directory 구조.
out/ |-- host/ # (HOST PC) the directory containing all tools and libraries of build system | -- target/product/generic/ # (TARGET) the root of this product's out directory |-- data # the directory for creating data file system image |-- obj # the root directory of build process | |-- APPS # android application | |-- ETC | |-- EXECUTABLES # the root directory containing all native executable | | build output | |-- include | |-- JAVA_LIBRARIES | |-- lib # the directory containing copies of stripped | | shared libraries, | | # other modules will search this directory | | for libraries to resolve linkage | |-- PACKAGING | |-- SHARED_LIBRARIES # the root directory containing all native | | | shared library build output | | |-- {LOCAL_MODULE_NAME}_intermediates # the direcotry containing | | | all build output for {LOCAL_MODULE_NAME} module. | | | # this naming convention is followed by | | | all subdirectories of module. | | + -- LINKED # the directory containing the linked binary | | file, e.g, .so file | -- STATIC_LIBRARIES # the root directory containing all native | static library build output |-- root # the directory for creating root file system | | ,ramdisk image | |-- data | |-- dev | |-- proc | |-- sbin | |-- sys | -- system |-- symbols # the directory contains all binary images that has | | debugging symbols | |-- data | |-- sbin | -- system -- system # the directory for creating system.img, where most of | appications and libraries reside |-- app |-- bin |-- etc |-- fonts |-- framework |-- lib |-- media |-- tts |-- usr -- xbin
Ref.
http://rxwen.blogspot.kr/2013/01/understanding-android-build-system-out.html
- out/ 구조
- host : Host Computer를 위한 것들
- target : Target Device or Emulator를 위한 것들
- out/target/product/
의 Image 구조
- boot.img
- system.img
- ramdisk.img
- userdata.img
기본으로 /out 으로 생성이 되지만 아래처럼 변경이 가능
export OUT_DIR_COMMON_BASE=
Using a separate output directory 참조
https://source.android.com/setup/build/initializing
https://elinux.org/Android_Build_System
2. Android Version 정보
Android Version 별 정보 및 특징
http://en.wikipedia.org/wiki/Android_version_history
http://ko.wikipedia.org/wiki/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C_%EB%B2%84%EC%A0%84_%EC%97%AD%EC%82%AC