Android System & AOSP Engineering/Debug, ADB & System Tools

안드로이드 ADB 부트 애니메이션 변경 및 시스템 테마 설정 가이드

임베디드 친구 2025. 3. 2. 11:56
반응형

안드로이드 기반 임베디드 기기를 개발하거나 특정 목적을 위해 커스텀 펌웨어를 다룰 때, 가장 먼저 시도하게 되는 작업 중 하나가 부트 애니메이션을 교체하는 일입니다. 브랜드 로고를 변경하거나 시스템의 시각적 테마를 조정하는 과정은 단순해 보이지만, 안드로이드의 시스템 파티션 접근 권한과 파일 시스템 구조에 대한 정확한 이해가 필수적입니다. 안드로이드의 /system 영역은 기본적으로 읽기 전용으로 보호받고 있어, 이를 수정하려면 ADB를 통한 파티션 마운트 권한 획득이 선행되어야 합니다. 이번 포스팅에서는 ADB를 사용하여 시스템 파티션을 쓰기 모드로 전환하고, 부트 애니메이션 파일을 교체하는 정석적인 절차와 시스템 테마 설정 방법을 상세히 다루어 보겠습니다.

Generated by Gemini AI.

핵심 요약

  • /system 파티션을 수정하려면 ADB를 통해 remount 작업을 거쳐 쓰기 권한(RW)을 확보해야 하며, 최신 버전에서는 disable-verity 설정이 선행되어야 합니다.
  • 부트 애니메이션은 /system/media/bootanimation.zip 경로에 위치하며, ADB push와 mv 명령어를 통해 파일 교체 후 권한(chmod)을 부여해야 정상적으로 동작합니다.
  • 시스템 테마 설정은 제조사 정책에 따라 settings 데이터베이스 값을 통해 제어 가능하지만, 모델별로 지원 여부와 파라미터 값이 다르므로 사전 확인이 필요합니다.

1. 시스템 파티션 권한 확보 절차

파티션 수정 전, 쓰기 모드 전환을 위한 환경 구축 단계입니다.

구분 실행 명령어 설명
기본 마운트 adb shell mount -o remount,rw /system 일반적인 권한에서 시스템 파티션을 쓰기 가능 모드로 전환
루트 권한 획득 adb root 시스템 파티션 수정을 위한 관리자 권한 활성화
무결성 해제 adb disable-verity 부팅 시 파티션 무결성 검사를 비활성화 (필요시)
파티션 재마운트 adb remount 파일 시스템을 읽기/쓰기 모드로 즉시 마운트

2. 부트 애니메이션 변경 절차

부트 애니메이션 파일(bootanimation.zip)을 교체하여 기기 부팅 시의 시각적 요소를 커스텀하는 과정입니다.

단계 수행 작업 실행 명령어
1단계 임시 폴더에 파일 업로드 adb push bootanimation.zip /data/local/tmp/
2단계 기존 파일 백업 adb shell mv /system/media/bootanimation.zip /system/media/bootanimation_backup.zip
3단계 파일 이동 adb shell mv /data/local/tmp/bootanimation.zip /system/media/bootanimation.zip
4단계 권한 설정 adb shell chmod 644 /system/media/bootanimation.zip
5단계 재부팅 adb reboot

3. 시스템 테마 설정 명령어

settings 데이터베이스를 통해 UI 테마 상태 값을 변경하는 방법입니다.

구분 실행 명령어 비고
테마 설정 adb shell settings put system theme <코드값> 코드값은 각 기기의 제조사 매뉴얼을 참조해야 함
테마 적용 확인 adb shell settings get system theme 현재 설정된 테마 값을 조회
변경 사항 적용 adb reboot 일부 기기는 재부팅해야 UI에 반영됨

개발을 위한 팁

  • bootanimation.zip 구조: 단순히 확장자만 zip으로 변경하면 안 됩니다. 내부에는 desc.txt 파일과 애니메이션 이미지가 포함된 폴더(part0, part1 등)가 표준 구조에 맞게 구성되어 있어야 합니다. 이 구조가 틀리면 부팅 시 로고가 나타나지 않거나 화면이 먹통이 될 수 있습니다.
  • 권한 확인의 중요성: chmod 644는 시스템 파일에 필수적인 권한 설정입니다. 만약 파일을 이동시키고 권한을 주지 않으면, 부팅 시 서비스가 파일에 접근하지 못해 부팅 애니메이션이 스킵될 수 있습니다.
  • 백업의 생활화: ADB로 시스템 파일을 건드리는 작업은 언제든 예기치 않은 부팅 루프(Bootloop)를 유발할 수 있습니다. 항상 adb pull /system/media/bootanimation.zip 명령으로 원본을 PC에 안전하게 백업해 두는 습관을 가져야 합니다.

흔히 하는 실수

  • 파일 해상도 불일치: 부트 애니메이션 이미지는 기기의 실제 해상도와 정확히 일치해야 합니다. 해상도가 다르면 로고가 화면 중앙에 맺히지 않거나 깨진 형태로 출력됩니다. 반드시 기기 사양에 맞춘 이미지 리소스를 준비하십시오.
  • Verity 해제 누락: 최신 안드로이드 버전에서 adb remount가 정상적으로 동작하지 않는다면 adb disable-verity와 adb disable-verity 명령을 누락했을 가능성이 큽니다. 이 명령 후에는 반드시 기기를 재부팅(adb reboot)하여 설정을 적용해야 합니다.
  • 테마 코드값 오용: settings put system theme 명령어는 표준 API가 아니며, 제조사가 정의한 커스텀 설정값입니다. 삼성, LG, 샤오미 등 제조사마다 테마를 정의하는 정수 값이 완전히 다르므로 무작위로 값을 입력하면 기기 UI가 비정상적으로 변경될 위험이 있습니다.

결론

ADB를 활용한 시스템 커스터마이징은 기기 제어 능력을 한 단계 높여주는 기술입니다. 부트 애니메이션 교체부터 테마 설정까지, 시스템 영역에 직접 접근하는 과정에서 파일 권한과 마운트 상태만 주의한다면 안전하게 원하는 환경을 구축할 수 있습니다. 오늘 공유한 절차를 통해 안정적인 커스텀 안드로이드 환경을 만들어 보시기 바랍니다.

반응형