728x90
반응형

2025/04 76

Android SELinux 정책 문법과 규칙

Android SELinux 정책 문법과 규칙SELinux(Security-Enhanced Linux)는 리눅스 커널에 추가된 보안 모듈로, Android에서는 필수적인 보안 정책을 적용하는 데 사용됩니다. Android의 SELinux 정책은 MAC(Mandatory Access Control, 강제 접근 제어) 모델을 기반으로 하며, 시스템 내에서 프로세스와 리소스 간의 접근을 제어합니다.이번 포스팅에서는 type, attribute, allow, neverallow 등의 주요 규칙을 중심으로 SELinux 정책 문법을 설명하겠습니다. 또한, 관련된 예제 코드를 함께 제공하여 정책이 어떻게 동작하는지 쉽게 이해할 수 있도록 하겠습니다.1. type (타입)1.1 type의 개념type은 SELinux..

Android/Seploicy 2025.04.30

Buildroot 기반의 시스템 OTA 업데이트 방법

Buildroot 기반의 시스템 OTA 업데이트 방법Buildroot를 이용해 임베디드 시스템을 개발할 때, 원격에서 시스템을 업데이트할 수 있는 기능을 제공하는 것은 매우 중요한 요소입니다. Over-the-Air(OTA) 업데이트를 통해 새로운 기능을 추가하거나 보안 패치를 적용할 수 있으며, 물리적인 접근 없이도 유지보수가 가능합니다. 본 포스팅에서는 Buildroot를 활용하여 시스템의 OTA 업데이트를 구현하는 방법을 설명하겠습니다.1. OTA 업데이트 개요OTA 업데이트는 네트워크를 통해 시스템 소프트웨어를 원격으로 업데이트하는 방식입니다. 주로 다음과 같은 방식으로 구현됩니다.A/B 파티션 업데이트: 두 개의 파티션(A, B)을 운영하며, 한쪽 파티션을 업데이트한 후 부팅을 전환하는 방식패키..

Linux/buildroot 2025.04.30

avc: denied 로그 분석 및 이해하기

avc: denied 로그 분석 및 이해하기Android에서 SELinux(보안 강화 리눅스, Security-Enhanced Linux)는 시스템 보안을 강화하는 중요한 역할을 합니다. SELinux 정책이 적용되면서 종종 avc: denied 로그가 발생하는데, 이 로그는 특정 프로세스가 허용되지 않은 액세스를 시도했음을 의미합니다. 본 포스팅에서는 avc: denied 로그의 의미를 분석하고 이를 해결하는 방법을 살펴보겠습니다.1. avc: denied 로그란?avc: denied는 SELinux가 특정 액세스를 차단했음을 나타내는 커널 로그 메시지입니다. 이 로그는 Android 시스템의 dmesg 또는 logcat을 통해 확인할 수 있습니다.다음은 대표적인 avc: denied 로그 예제입니다...

Android/Seploicy 2025.04.29

디바이스 트리(Device Tree) 설정 및 수정

디바이스 트리(Device Tree) 설정 및 수정1. 디바이스 트리(Device Tree)란?디바이스 트리(Device Tree)는 하드웨어 정보를 정의하는 데이터 구조로, 임베디드 시스템에서 커널이 하드웨어를 인식하고 초기화할 수 있도록 지원합니다. ARM 아키텍처를 포함한 다양한 플랫폼에서 널리 사용되며, 특히 Buildroot와 같은 임베디드 리눅스 환경에서는 중요한 구성 요소 중 하나입니다.디바이스 트리는 일반적으로 Device Tree Source(DTS) 파일로 작성되며, 이를 Device Tree Blob(DTB) 형식으로 변환하여 커널이 사용할 수 있도록 합니다. DTS 파일은 사람이 읽을 수 있는 텍스트 형식이며, DTB는 바이너리 형식입니다.2. Buildroot에서 디바이스 트리의 ..

Linux/buildroot 2025.04.29

Android SELinux 정책의 주요 파일 및 디렉터리 구성

Android SELinux 정책의 주요 파일 및 디렉터리 구성SELinux(보안 강화 리눅스)는 Android에서 중요한 보안 메커니즘으로, sepolicy는 SELinux 정책을 정의하는 핵심 요소입니다. Android의 SELinux 정책 파일은 여러 디렉터리에 걸쳐 존재하며, 다양한 구성 요소를 포함합니다. 본 포스팅에서는 Android sepolicy의 주요 파일 및 디렉터리를 설명하고, 각 파일의 역할을 살펴보겠습니다.1. Android sepolicy 디렉터리 구조Android 소스 코드에서 SELinux 정책은 system/sepolicy 또는 device/명시된_경로/sepolicy에 위치합니다. 기본적으로 sepolicy는 다음과 같은 디렉터리 및 파일로 구성됩니다.sepolicy/├─..

Android/Seploicy 2025.04.28

SD 카드 또는 eMMC에 Buildroot 이미지 굽기

SD 카드 또는 eMMC에 Buildroot 이미지 굽기1. 개요Buildroot를 이용하여 생성한 임베디드 리눅스 이미지를 실제 타겟 보드에서 실행하려면, 해당 이미지를 SD 카드 또는 eMMC에 기록해야 합니다. 이 과정에서는 Buildroot에서 생성한 파일들을 올바르게 배포하는 방법과, SD 카드 또는 eMMC에 이미지를 굽는 절차를 설명합니다.2. Buildroot 이미지 구성Buildroot에서 생성한 출력물은 output/images/ 디렉터리에 위치합니다. 일반적으로 다음과 같은 파일들이 존재합니다:rootfs.ext4: 파일 시스템 이미지zImage 또는 Image: 커널 이미지bootloader (예: u-boot.bin): 부트로더 바이너리sdcard.img: SD 카드에 바로 기록할..

Linux/buildroot 2025.04.28

Android SELinux 정책의 기본 파일 구조

Android SELinux 정책의 기본 파일 구조Android 운영 체제는 보안 강화를 위해 SELinux(Security-Enhanced Linux)를 활용하며, 이를 통해 강력한 액세스 제어를 적용합니다. SELinux 정책은 여러 파일과 디렉터리 구조로 구성되며, AOSP(Android Open Source Project) 내에서 정책 파일이 정의되고 빌드 과정에서 적용됩니다. 이번 포스팅에서는 Android SELinux 정책의 기본 파일 구조와 각 파일의 역할에 대해 설명하겠습니다.1. SELinux 정책 파일이 위치하는 경로Android SELinux 정책 파일은 AOSP 내 여러 디렉터리에 분산되어 있습니다. 주요 디렉터리는 다음과 같습니다.system/sepolicy/ (Android 1..

Android/Seploicy 2025.04.27

Rockchip RK3399 등 특정 보드에 Buildroot 적용 예제

Rockchip RK3399 등 특정 보드에 Buildroot 적용 예제1. 개요Buildroot는 임베디드 시스템을 위한 경량의 루트 파일 시스템을 구성하는 강력한 도구입니다. 본 포스팅에서는 Rockchip RK3399 보드를 대상으로 Buildroot를 적용하는 과정을 다룹니다. RK3399 외에도 유사한 아키텍처를 가진 다른 보드에서도 응용할 수 있도록 설명하겠습니다.2. Buildroot 환경 설정Buildroot를 이용하여 특정 보드에 맞는 이미지 및 루트 파일 시스템을 생성하려면 환경 설정이 필요합니다.2.1 Buildroot 다운로드먼저, 최신 Buildroot를 다운로드합니다.$ git clone https://git.buildroot.net/buildroot$ cd buildroot$ ..

Linux/buildroot 2025.04.27

Android sepolicy 구조 개요

Android sepolicy 구조 개요Android의 보안 모델에서 SELinux(SeLinux, Security-Enhanced Linux)는 핵심적인 역할을 합니다. Android는 SELinux를 기반으로 하는 보안 정책을 구현하며, 이를 sepolicy(Security Policy)라고 부릅니다. 본 글에서는 Android sepolicy의 구조를 개괄적으로 살펴보고, 각 구성 요소가 어떤 역할을 하는지 설명하겠습니다.1. Android sepolicy란?Android sepolicy는 SELinux 정책을 기반으로 동작하는 보안 프레임워크로, Android 시스템의 보안성을 강화하는 역할을 합니다. 이를 통해 애플리케이션과 시스템 프로세스가 불필요한 리소스 접근을 하지 못하도록 제한합니다.An..

Android/Seploicy 2025.04.26

Bootloader 커스터마이징 및 환경설정

Bootloader 커스터마이징 및 환경설정1. 개요Bootloader는 임베디드 시스템에서 운영체제를 로드하고 실행하기 전에 하드웨어를 초기화하고, 시스템을 원하는 상태로 설정하는 중요한 역할을 합니다. Buildroot를 사용하면 Bootloader를 쉽게 빌드하고 커스터마이징할 수 있으며, 이를 통해 특정 하드웨어에 맞게 설정할 수 있습니다. 이번 포스팅에서는 Bootloader 커스터마이징 및 환경설정 방법을 자세히 다루겠습니다.2. Bootloader의 역할과 개요Bootloader는 일반적으로 두 단계로 구성됩니다.1차 부트로더(Primary Bootloader): SoC의 ROM 또는 내부 저장소에서 실행되며, 기본적인 하드웨어 초기화를 수행하고 2차 부트로더를 로드합니다.2차 부트로더(Se..

Linux/buildroot 2025.04.26
728x90
반응형