2024/11/01 4

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