본문 바로가기

Android

Android partitions

Partition layout in Android 11

 

 

Standard partitions

  • boot: kernal imageramdisk(Android 13 이전)를 포함하고 있어 안드로이드 장치를 부팅하는 데 필요한 핵심 요소들을 담고 있다. 장치의 부팅을 담당하는 가장 중요한 파티션 중 하나이다. 부트 로더는 이 파티션에서 커널을 로드하고 운영체제를 시작한다.
  • init_boot: Android 13에서 도입된 새로운 파티션으로, 기존의 boot 파티션과 관련된 기능을 분리하는 역할을 한다. init_boot는 주로 Device tree(bootloader 관련 데이터)를 처리하는 데 사용된다. 이 변화는 보안 강화와 관련된 목적을 가지고 있으며, A/B partition 구조 및 dynamic partition과 관련된 업데이트 과정에서 유용하게 활용된다.
  • system: 운영체제의 주요 파일(시스템 애플리케이션, 기본 라이브러리 등)을 포함하고 있다. Android framework.
  • recovery:  복구 모드에서 실행되는 독립적인 최소한의 운영체제를 포함한다. 이 파티션에는 OTA process 중에 부팅되는 recovery image가 저장된다.seamless updates를 지원하는 장치는 recovery image를 별도의 이미지가 아닌 boot 또는 init_boot image에 포함된 ramdisk로써 저장할 수 있다.
  • vendor: 특정 하드웨어 제조업체가 제공하는 드라이버 및 하드웨어 지원 파일이 포함되어 있다. 따라서 AOSP에 배포되지 않는다. 경우에 따라서는 이 파티션을 생략할 수 있다.
  • odm: 하드웨어 제조업체가 기기별로 특화된 드라이버하드웨어 종속 코드가 저장된다. vendor partition은 주로 SoC(System on Chip) vendor가 제공하는 driver 및 하드웨어 종속 코드를 포함된다. 반면 odm partition은 해당 기기 제조업체(OEM)에서 추가적으로 필요로 하는 하드웨어 지원 코드 및 driver를 저장한다. 즉, vendor pratition은 SoC vendor에 의해 제공되는 driver를 포함하고 있다면, odm partition은 해당 기기에 맞게 추가로 필요한 코드(예: 센서, 카메라, 특수 장치 지원)를 담고 있다. 안드로이드 시스템 업데이트 시, odm partition에 저장된 파일들은 기기별로 유지되며, 하드웨어와의 호환성을 보장할수 있게 된다. 따라서 안드로이드 OS가 업데이트되더라도 기기의 고유한 하드웨어 기능을 유지할 수 있다. 이는 하드웨어 제조업체가 필요한 파일을 독립적으로 관리하여, 시스템 파일(system partition)과 분리된 상태에서 시스템의 업데이트가 이루어질 수 있게 만든다. optional partition 이다. ODM partitions

안드로이드 버전에 따른 변화

  1. Android 5.0 Lollipop 이전
    1. 초기 안드로이드 버전에서는 기본적인 파티션 구조를 유지했다.
    2. 주요 파티션은 bootsystemdatarecoverycache 등으로 나뉘었으며, 하드웨어 제조업체에 따라 firmware 파티션이 포함되기도 했다.
    3. 사용자 데이터를 포함한 대부분의 파티션은 시스템 업데이트나 공장 초기화 시 손상될 수 있었다.
  2. Android 6.0 Marshmallow
    1. system 파티션은 여전히 주요 시스템 파일을 담고 있었고, data 파티션에 사용자 데이터를 저장하는 방식이 유지되었다.
    2. 앱 권한 관리를 강화하고 보안 패치가 자주 제공되는 구조로 변경되었지만, 파티션 구조 자체에 큰 변화는 없었다.
  3. Android 7.0 Nougat
    1. 새로운 파일 시스템인 ext4가 널리 사용되었으며, 일부 장치에서는 f2fs 파일 시스템이 도입되기도 했다. 이 파일 시스템들은 성능을 개선하는 데 중점을 두었다.
    2. 파티션 구조는 여전히 큰 변화 없이 유지되었다.
  4. Android 8.0 Oreo
    1. Project Treble이 도입되면서 파티션 구조에 중요한 변화가 생겼다.
      1. vendor partition이 별도로 분리되어 하드웨어 관련 파일과 드라이버가 이곳에 저장되었다.
      2. odm partition이 추가되었다.
      3. 시스템과 하드웨어 드라이버를 분리하여 제조업체가 안드로이드 업데이트를 더 쉽게 제공할 수 있도록 함으로써, 안드로이드 업데이트 속도가 크게 개선되었다.
  5. Android 10
    1. A/B partition 구조가 더 널리 채택되었다.
      1. A/B partition은 시스템 업데이트 과정에서 두 개의 파티션을 사용하여 업데이트 중에도 장치가 작동할 수 있도록 한다. 즉, 하나의 파티션에서 시스템이 실행되는 동안 다른 파티션에서 업데이트를 설치하고, 재부팅 후 새로 업데이트된 파티션으로 부팅하는 방식이다. 이를 통해 OTA 업데이트의 안정성과 무중단 업데이트가 가능해졌다.
      2. system, vendor, boot, recovery 등의 주요 파티션 외에도 A/B partition구조에 따라 각각의 파티션이 두 개씩 존재한다.
  6. Android 11
    1. Dynamic Partitions 기능이 도입되었다.
      1. 파티션을 고정된 크기로 나누는 대신, Dynamic partitions을 사용하여 스토리지를 보다 유연하게 관리할 수 있다. 즉, 여러 파티션들이 하나의 큰 파티션 내에서 동적으로 할당되고, 시스템이 필요에 따라 크기를 조정할 수 있다.
      2. 이는 파티션 크기의 제한으로 인한 업데이트 불가 문제를 해결하며, 장치 제조업체가 새로운 파티션을 만들거나 기존 파티션을 재조정할 필요 없이 업데이트할 수 있도록 한다.
  7. Android 12
    1. 안드로이드 11에서 도입된 Dynamic Partitions가 기본적으로 활성화되어 더 많은 장치에서 사용되었다.
    2. 또한, 시스템 업데이트를 개선하여 사용자가 기기 사용 중에도 업데이트를 받을 수 있는 A/B partition 구조가 널리 확산되었다.
  8. Android 13 및 그 이후
    1. Dynamic partitionA/B partition 구조가 더욱 표준화되었다.
    2. init_boot partition 이 추가되었다.
    3. Seamless Update가 기본적으로 활성화되었으며, OTA가 진행되는 동안 사용자가 계속 장치를 사용할 수 있는 환경이 조성되었다.

 

 

 

https://source.android.com/docs/core/architecture/partitions

 

개요  |  Android 오픈소스 프로젝트  |  Android Open Source Project

개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 기기에는 부팅 프로세스에서 다양한 기능을 제공하는 여러 파티션이 있습니다. 표준 파티션참고:

source.android.com

 

'Android' 카테고리의 다른 글

Sparse file header  (0) 2024.11.14
Sparse file  (0) 2024.10.16