Android OS 33

[AOSP 시작-소스 다운로드] (선택사항) 코드 적법성 확인

출처가 Google인지 등 소스 코드의 적법성이 우려된다면 브랜치의 git 태그를 확인하면 됩니다. Git 태그를 확인하려면 다음을 실행하세요. 1. 다음 키 블록을 복사하여 텍스트 파일(예: keyfile.asc)에 붙여넣습니다. -----BEGIN PGP PUBLIC KEY BLOCK-----Version: GnuPG v1.4.2.2 (GNU/Linux)mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSVlFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw78tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMDu4PVg..

Android OS/: : AOSP 2025.02.26

[AOSP 시작-소스 다운로드] 독점 바이너리 다운로드

AOSP는 Cuttlefish 에뮬레이터에서 직접 실행할 수 있지만 기기별 독점 라이브러리가 추가로 없으면 하드웨어에서 사용할 수 없습니다. 다음은 이러한 기기 바이너리를 획득하는 방법입니다.main 브랜치를 다운로드하고 Nexus나 Pixel 기기용으로 빌드한다면 바이너리 미리보기 사이트에서 최신 바이너리를 다운로드합니다.main 브랜치를 다운로드 및 빌드하고 자체 기기용으로 빌드한다면 기기별 바이너리를 제공해야 합니다.태그가 지정된 main이 아닌 브랜치를 다운로드 및 빌드하고 Nexus나 Pixel 기기용으로 빌드한다면 Nexus 및 Pixel 기기용 바이너리에서 기기별 바이너리를 다운로드합니다.독점 바이너리 추출각 바이너리 모음은 압축된 아카이브에서 자동 압축 해제 스크립트로 제공됩니다. 이러한 ..

Android OS/: : AOSP 2025.02.26

[AOSP 시작-소스 다운로드] Android 소스 다운로드

다음 명령어를 실행하여 Android 소스 트리를 작업 디렉터리로 다운로드하세요.$ repo sync -c -j8   -c 인수는 현재 매니페스트 브랜치를 서버에서 가져오도록 Repo에 지시합니다. -j8 명령어는 신속한 완료를 위해 스레드 간에 동기화를 분할합니다.  이 작업은 1시간 조금 넘게 걸립니다.  다운로드 중에 문제가 발생하면 동기화 문제 해결을 참고하세요.

Android OS/: : AOSP 2025.02.26

[AOSP 시작-소스 다운로드] Repo 클라이언트 초기화

Android 소스는 Google에서 호스팅한 Git 저장소 모음에 있습니다. Git 저장소에는 소스 변경사항과 변경이 이루어진 시기 등 Android 소스의 전반적인 기록이 포함되어 있습니다. 이 페이지에서는 소스를 다운로드하는 방법을 설명합니다. 참고: 이 페이지의 모든 명령어는 앞에 달러 기호($)를 붙여 파일 내의 출력이나 항목과 구별합니다. 명령어를 복사할 때 달러 기호를 생략하려면 각 명령어 상자 오른쪽 상단의 코드 샘플 복사 아이콘을 클릭하세요.Repo 클라이언트 초기화클라이언트를 설정하여 Android 소스 저장소에 액세스하려면 다음을 실행하세요. 1. 작업 디렉터리를 만들어 이동합니다.$ mkdir WORKING_DIRECTORY$ cd WORKING_DIRECTORY 참고: 서로 다른 ..

Android OS/: : AOSP 2025.02.26

AIDL HAL 인터페이스

AIDL HAL 인터페이스 system.img의 경우와 같은 프레임워크 구성요소 및 vendor.img의 경우와 같은 하드웨어 구성요소 간의 커뮤니케이션하는 HAL은 안정적으로 AIDL을 사용해야한다.​하지만 ! 특정 HAL에서 다른 HAL로 커뮤니케이션하는 것과 같이 파티션 내에서 커뮤니케이션 할 때는 사용되는 IPC 매커니즘의 제한 사항이 없다. ​​  AIDL HAL 인터페이스 찾기​HAL용 AOSP 안정적 AIDL인터페이스는 HIDL인터페이스와 동일한 AIDL 폴더에 있다. hardware/interfacesframeworks/hardware/interfacessystem/hardware/interfaces ​ 확장 인터페이스는 vendor 또는 hardware의 다른 hardware/interf..

Android OS 2024.11.12

안드로이드 포팅 : AOSP 빌드 시스템

1.  안드로이드 포팅: AOSP 빌드 시스템 안드로이드 빌드 시스템의 설정방식은 안드로이드 셸 환경에서 envsetup.sh와 lunch로 동적으로 생성하거나, Buildspec.mk 파일로 미리 정의해둔 변수들을 활용할 수 있다. 또한 빌드 시스템은 소스파일과 같은위치에 객체파일 등의 중간 출력을 생성하지 않고, 모든 생성물은 out/ 디렉터리에 저장한다.   1.1  Android Build System​Envsetup.sh와 lunch는 명령을 실행한 셀에서 빌드할 땐 두 명령을 수행해야한다. 위 그림에서 묘사한대로 빌드 시스템 입장에서 타당한 진입점을 /build/core/ 디렉터리의 main.mk 파일이다. 이 파일은 최상의 Makefile을 호출한다.      1.2  Build Target..

Android OS 2024.11.07

Ubuntu에서 NDK 설치, 설정, 실행해보기

1.  Ubuntu에서 NDK 설치, 설정, 실행해보기   1.1  NDK  install1) NDK 를 다운로드 받는다. 2) .bashrc 에서 ndk 경로를 설정한다. 3) rc재실행 후 확인​​​  1.2  NDK  Build 1) ndk디렉터리 밑에 jni 디렉터리 생성  2) jni 디렉터리 안에 컴파일 할 c 파일과 Android.mk 파일 생성 - ​안드로이드 mk 파일 내용 추가 LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_CFLAGS += -fPIE -pieLOCAL_MODULE := user_processLOCAL_SRC_FILES := user_process.cinclude $(BUILD_EXECUTABLE) 3) Ndk 빌드  ..

Android OS 2024.11.07

Android Boot & Init

Android Boot & init   Android Boot는 커널에서 시작한다. init는 커널의 맨 처음 동작을 말한다.​  1.  android init는 /system/bin/init 에 있다.   2.  Log system 초기화   3.  /init.rc와 /init.%hardware%.rc를 파싱   4.  3번에서 파싱된 사항 중 early_init 부분 수행   5.  디바이스 노드 생성 및 펌웨어 다운로드   6.  우선순위 시스템 및 소유권 초기화   7.  3번에서 파싱된 사항 중 init 수행   8.  우선 순위 시스템 및 소유권 정책 작용   9.  앞 단계에서 파싱된 사항 중 Early-Boot 와 boot 부분 수행 및 나머지 작업 수행  ※ 펌웨어 HDD혹은 Flush ..

Android OS 2024.11.01

Android Binder

1.  Binder    1.1  Binder란?​  안드로이드에서 바인더는 각각 독립된 프로세서들을 연결해주는 역할을 한다.    리눅스에서 시스템의 기능을 이용하기 위해서 시스템 콜(system call)을 사용하여 시스템에서 제공하는 프로세서, 파일 시스템 기능을 이용하도록 제공하고 있다. ​  하지만 안드로이드에서는 각 독립적으로 운영되는 프로세스, 특히 서비스의 기능을 이용할 수 있도록 제공하는 것이 바인더의 핵심이다. ​  안드로이드 시스템을 개발하는 시스템 개발자의 입장에서 기존 서비스의 변경이나 기능 추가 또는 새로운 서비스를 구성하기위해 어떠한 표준 인터페이스를 통해 서비스를 구현해야 하는지 알아야하기 때문에 바인더에 대해 이해하고 있어야한다. ​​운영체제 혹은 시스템에서 제공해 주는 기..

Android OS 2024.11.01

Android.mk

1.  Intro  Android.mk 파일은 프로젝트의 jni/ 디렉터리에 속한 하위 디렉터리에 있으며, 빌드 시스템에 대한 소스 및 공유 라이브러리를 설명한다. 이 파일은 실제로는 빌드 시스템이 한 번 또는 그 이상 파싱하는 작은 GNU Makefile 프레그먼트이다. Android.mk파일은 Application.mk, 빌드 시스템, 환경 변수가 정의 되어있지 않은 상태로 남겨두는 프로젝트의 전반의 설정을 정의하는데 유용하다.​  1.1  Android.mk의 구문을 사용해 소스를 모듈로 그룹화할 수 있다. ​  모듈은 정적 라이브러리, 공유 라이브러리, 독립형 실행 파일이다. 각각의 Android.mk 파일에서 하나 이상의 모듈을 정의할 수 있고 여러 모듈에서 같은 소스 파일을 사용할 수 있다. ..

Android OS 2024.10.31