전체 글 260

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

Boot Sequence in Android

1.  Intro.   부팅 시퀀스에 대한 충분한 지식이 있으면 벽돌이 된 안드로이드를 문제 해결하거나, 커스텀 ROM을 플래싱하거나, 루팅하는 등의 작업에 유용합니다. 이 주제에 대해 놀라운 글을 쓴 기기별 포럼이 많으므로, 저는 이에 대해 이야기하지 않겠지만, 안드로이드의 부팅 시퀀스, 안드로이드의 다양한 부팅 모드, 부트로더가 잠금 해제된 폰에서 루팅이 어떻게 작동하는지에 대한 기본 사항을 살펴보겠습니다. 이 주제에 대해 조사하는 동안, 잠긴 부트로더 기기에서 루팅 기술에 대한 몇 가지 흥미로운 글을 우연히 발견했습니다. 가까운 미래에 이에 대해 이야기해 보겠습니다.:)   2.  Boot Sequence in Android Summary 1) ROMCPU에 전원이 인가되면, 지정 번지의 ROM c..

Android Binder

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

Android OS 2024.11.01

디바이스 트리의 구조와 장치 표현

1.  디바이스 트리 전체 구조 소개    1.1  확장자 .dtsi, .dts​  확장자가 dtsi인 파일은 SoC(System-on-Chip : 단일 칩에 모든 기능이 직접된 직접회로)를 표현하며 dts인 경우는 하위 보드를 표현한다.​   1.2  상속 및 include​  계층구조를 유지하기 위해 하위보드는 상위보드 혹은 SoC의 dts를 상속 받을 수 있으며, include문 (혹은 C의 #include 도 가능)을 사용하여 상위보드 혹은 SoC를 위한 dts 파일을 포함 시킬 수 있다.​   1.3  중복 시​  하위보드에서 정의한 내용 중, 상위보드의 내용과 중복되는 내용은 하위보드에서 정의한 내용이 최종적으로 반영되며, 중복되지 않은 내용은 새로 추가(역시 반영) 된다.​   1.4  So..

Embedded : : Linux 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

확장자 별 파일 역할 (.mk .xml .prop .rc .dts .dtsi)

확장자 명 역할 .mkmake에게 어떤 프로그램을 컴파일하고 링크하는 방법을 설명한 파일.xml데이터들을 쉽게 구조화 해서 전달하기 위해 만들어진 문서 형식 cs) 엑셀 , .prop Android 장치에서 사용하는 빌드 속성 파일 모델, 브랜드 및 버전, 휴대전화의 작동 방식과 같은 정보 포함 ​ 파일을 편집하여 인터넷 속도, LCD 밀도, 배터리 사용량 및 성능을 비롯하여 장치 동작을 변경.rc 리소스 파일.dts HW 장치에 대한 정보를 기술한 파일 .dtsidts에서 include하는 파일​ ※  DTS 파일과 DTSI 파일을 이용하여 컴파일  →  DTB 파일 생성

Embedded : : Linux 2024.10.31

[Linux Kernel] configuration file

1.  configuration file    1.1  introLinux kernel에 관계된 directory들에는 Kconfig와 makefile이 함께 존재한다. ※  Makefile : 파일을 생성하는 스크립트.obj-변수(CONFIG_XX_*) 의 값이 y라면 해당 *.o 파일을 오브젝트 파일로 만들겠다.변수 위치 : 최상위 디렉터리 안 (Kconfig를 참고해 .config 파일은 자동으로 생성됨)obj-$(CONFIG_FOO) += foo.o # CONFIG_FOO의 값이 y라면 해당 *.o 파일을 오브젝트 파일로 만들겠다는 뜻임​​   1.2  Kconfig​Kconfig: kernel에 대한 설정에 대해 정의되어있는 파일을 의미 make menuconfig를 했을 때, 보이는 화면은 K..

Android Platform 구조

l/d/-/x이름역할ㅣAndroid.dpbuild~ㅣbootstrap.bashbuild~dart컴파일러dbionicBDS기반 Androids 라이브러리 (libc ... )dbootable부트로더 시스템 및 시스템 부팅 관련 정보 dbuildcore, tool, 타켓 및 보드 관련 정보dcompatibility dcts데이터 통신, LOW이면 데이터를 보낸다ddalvik컴파일러ddevelopment NDK, PDF, Amulator, Simulator, ADB, testrunner 등 개발 관련 정보 ddevicexml, pem, board-infodenternal APP 저장소, QEMU, SQLite 등 존재dframeworks  dhardwareOverlay 등 H/W 라이브러리, WIFI, GPS..

Android OS 2024.10.31