본문 바로가기

Android

(3)
Sparse file header 이전 포스팅에서 본 sparse file 의 헤더를 읽어보았습니다. https://seanlog.tistory.com/1 Sparse file파일 시스템에서 공간을 절약하는 방법Sparse file는 파일 시스템에서 데이터를 효율적으로 저장하기 위한 방법 중 하나이다.파일의 데이터 중에서 연속된 의미없는 값(empty data)는 실제로 디스크seanlog.tistory.com 헤더는 아래와 같이 정의되어 있습니다.typedef struct sparse_header { __le32 magic; /* 0xed26ff3a */ __le16 major_version; /* (0x1) - reject images with higher major versions */..
Android partitions Standard partitionsboot: kernal image 및 ramdisk(Android 13 이전)를 포함하고 있어 안드로이드 장치를 부팅하는 데 필요한 핵심 요소들을 담고 있다. 장치의 부팅을 담당하는 가장 중요한 파티션 중 하나이다. 부트 로더는 이 파티션에서 커널을 로드하고 운영체제를 시작한다.init_boot: Android 13에서 도입된 새로운 파티션으로, 기존의 boot 파티션과 관련된 기능을 분리하는 역할을 한다. init_boot는 주로 Device tree(bootloader 관련 데이터)를 처리하는 데 사용된다. 이 변화는 보안 강화와 관련된 목적을 가지고 있으며, A/B partition 구조 및 dynamic partition과 관련된 업데이트 과정에서 유용하게 활용된..
Sparse file 파일 시스템에서 공간을 절약하는 방법Sparse file는 파일 시스템에서 데이터를 효율적으로 저장하기 위한 방법 중 하나이다.파일의 데이터 중에서 연속된 의미없는 값(empty data)는 실제로 디스크에 저장하지 않고, 그 영역에 대한 정보(metadata)만 저장한다.의미있는 데이터 영역만 저장되게 하고, 나중에 접근할 때는 마치 빈 값들이 저장되어 있는 것처럼 처리하는 기술이다.동작 원리Sparse File의 핵심은 "데이터가 없는 부분(0으로 채워진 부분)을 실제로 저장하지 않는다"는 것이다.예를 들어, 1GB 크기의 파일을 만들었는데 그중 100MB만 데이터로 채워져 있고 나머지 900MB는 0이라면, 일반 파일 시스템에서는 1GB 전체를 디스크에 할당한다.하지만 Sparse File은 이 9..