728x90
반응형

분류 전체보기 908

Buildroot 빌드 속도 개선 및 캐시 활용

Buildroot 빌드 속도 개선 및 캐시 활용Buildroot는 임베디드 시스템을 위한 루트 파일 시스템과 커널, 부트로더 등을 쉽게 빌드할 수 있도록 도와주는 도구입니다. 그러나 빌드 과정에서 많은 시간이 소요될 수 있으며, 특히 크로스 컴파일 환경에서는 성능이 더욱 중요하게 작용합니다. 이 글에서는 Buildroot의 빌드 속도를 개선하고, 캐시를 활용하여 효율적인 개발 환경을 구성하는 방법을 다룹니다.1. 빌드 속도를 저하시킬 수 있는 요인Buildroot의 빌드 속도를 최적화하기 위해서는 먼저 속도를 저하시킬 수 있는 요인을 파악해야 합니다. 일반적으로 다음과 같은 요인이 빌드 속도에 영향을 미칩니다.CPU 성능: 빌드는 다중 스레드를 활용할 수 있지만, CPU 성능이 낮다면 속도가 저하됩니다...

Linux/buildroot 2025.05.04

Android SELinux 정책에서 서비스, 바이너리, 파일 시스템 정의하기

Android SELinux 정책에서 서비스, 바이너리, 파일 시스템 정의하기1. 개요SELinux(Security-Enhanced Linux)는 Android에서 강력한 보안 정책을 적용하는 핵심 기술입니다. SELinux 정책을 설정하면 서비스, 바이너리, 파일 시스템에 대한 접근 권한을 명확하게 정의할 수 있습니다. 본 글에서는 SELinux 정책에서 서비스, 바이너리, 파일 시스템을 정의하는 방법을 설명하고, 주요 규칙을 예제와 함께 소개하겠습니다.2. 서비스에 대한 SELinux 정책 정의Android의 System Service 또는 HAL 서비스를 SELinux 정책으로 정의할 때는 해당 서비스의 도메인과 그에 대한 적절한 규칙을 추가해야 합니다.2.1 서비스 도메인 생성SELinux 정책에..

Android/Seploicy 2025.05.02

Buildroot에서 업데이트 스크립트 작성 및 배포

Buildroot에서 업데이트 스크립트 작성 및 배포개요Buildroot를 활용한 시스템에서 Over-the-Air(OTA) 업데이트를 구현하기 위해서는 업데이트 스크립트를 작성하고 이를 배포하는 과정이 필요합니다. 본 포스팅에서는 업데이트 스크립트 작성 방법과 이를 Buildroot 환경에서 적용하는 과정을 설명합니다.1. OTA 업데이트 개념OTA 업데이트는 네트워크를 통해 시스템을 원격으로 업데이트하는 방식입니다. 이를 통해 제품을 현장에서 직접 업데이트할 필요 없이 소프트웨어를 유지보수할 수 있습니다. 일반적으로 OTA 업데이트는 다음과 같은 방식으로 이루어집니다.업데이트 파일 다운로드: 원격 서버에서 최신 업데이트 파일을 다운로드합니다.무결성 검증: 다운로드한 파일이 손상되지 않았는지 확인합니다..

Linux/buildroot 2025.05.02

A/B 파티션을 이용한 안전한 업데이트 기법

A/B 파티션을 이용한 안전한 업데이트 기법1. 개요임베디드 시스템에서 Over-the-Air(OTA) 업데이트는 필수적인 기능입니다. 하지만 업데이트 과정에서 전원이 꺼지거나 오류가 발생하면 시스템이 손상될 수 있습니다. 이러한 문제를 방지하기 위해 A/B 파티션 업데이트 기법이 사용됩니다. 이 기법을 활용하면 새로운 펌웨어를 적용하기 전에 기존 펌웨어를 유지할 수 있어 안전한 업데이트가 가능합니다.Buildroot 환경에서 A/B 파티션 업데이트를 구성하는 방법을 설명하며, 예제와 함께 적용하는 방법을 다룹니다.2. A/B 파티션 업데이트 개념A/B 파티션 업데이트는 두 개의 독립적인 파티션(A와 B)을 사용하여 업데이트를 수행하는 방식입니다. 하나의 파티션이 활성 상태(active)로 실행되고 있을..

Linux/buildroot 2025.05.01

Android SELinux 정책 설정: domain, file_contexts, genfs_contexts 설정 방법

Android SELinux 정책 설정: domain, file_contexts, genfs_contexts 설정 방법SELinux는 Android 시스템에서 강제 접근 제어(MAC)를 적용하는 중요한 보안 기능입니다. SELinux 정책은 다양한 규칙과 컨텍스트를 정의하여 프로세스와 리소스 간의 상호 작용을 제어합니다. 이번 포스팅에서는 domain, file_contexts, genfs_contexts 설정 방법에 대해 자세히 설명하겠습니다.1. domain 설정 방법1.1 domain 개념domain은 SELinux에서 실행 중인 프로세스를 관리하는 컨텍스트입니다. 특정 프로세스가 실행될 때, 해당 프로세스는 SELinux 정책에서 정의된 특정 도메인으로 실행됩니다. 도메인은 주로 type 속성을 ..

Android/Seploicy 2025.05.01

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
728x90
반응형