Android 부트로그 수정

Linux 커널 부트 로고 변경

  1. 이미지를 교체하는 방법
    kernel/arch/arm/Makefile에 보면
1
2
3
4
5
LOGO := $(notdir $(wildcard $(srctree)/logo.bmp))
LOGO_KERNEL := $(notdir $(wildcard $(srctree)/logo_kernel.bmp))
%.img: %.dtb kernel.img $(LOGO) $(LOGO_KERNEL)
$(Q)$(srctree)/resource_tool $(objtree)/arch/arm/boot/dts/$*.dtb $(LOGO) $(LOGO_KERNEL)
@echo ' Image: resource.img (with $*.dtb $(LOGO) $(LOGO_KERNEL)) is ready'

여기에 보면 kernel/logo.bmp 또는 kernel/kernel_logo.bmp 를 부트로고로 쓰는 것이 보인다.

이미지 변환 명령어 (canon.png는 입력 파일, canon_out.bmp는 출력 파일)

1
$ convert canon.png -gravity center -background black -extent 500x501 canon_out.bmp

만일 이미지가 500x501보다 작다면 다음과 같이 -resize 옵션을 추가해준다 (500x 비워두면 가로 500으로 비율 유지)

1
$ convert canon.png -gravity center -background black -resize 500x -extent 500x501 canon_out.bmp

Android Boot Logo 변경

1. 이미지 교체 방법

/frameworks/base/cmds/bootanimation/BootAnimation.cpp에 보면

1
2
3
4
5
bool BootAnimation::android()
{
initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png"); // texture_object_mask
initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png");
mBMPWidth = mTexWidth = mBMPHeight = mTexHeight = 1;

frameworks/base/core/res/assets/images/android-logo-mask.png를 배경 사진으로, frameworks/base/core/res/assets/images/android-logo-shine.png를 움직이는 효과로 쓰고 있다. (배경 사진의 투명 부위에 효과가 슬라이드되어, 움직이는 것으로 보임)

2. 애니메이션 수정

(출처: http://dplex.egloos.com/v/4267974)
(참고: http://w51014.tistory.com/5)
FirePrime은 기본형 이미지 방식이기 때문에, 새로 작성하여야 한다. (bootanimation.zip을 제작)

/frameworks/base/cmds/bootanimation/bootanimation.cpp에 보면 아래와 같이 정의 돼 있다.

1
2
3
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"

동일 파일의 함수 readyToRun()를 보면, 부트 애니메이션 파일 확인 순서를 알 수 있다.

bootanimation.zip 파일을 /out/target/product/rk312x/system/media/에 복사

[bootanimation.zip 설명]

(참고: https://forum.xda-developers.com/showthread.php?t=2756198)
desc.txt 파일과 이미지 파일이 들어있는 part0 폴더를 크기 압축 없이(옵션) 압축

[desc.txt 파일 설명]

800 480 23 –> <가로> <세로> <초당 프레임 수>
p 10 10 part0 –>

<재생횟수> <재생 후 딜레이> <재생할 폴더명>

HDPI = 480x800
XHDPI = 720x1280
XXHDPI = 1080x1920

딜레이: 50은 0.5초

[샘플]

(출처: https://forum.xda-developers.com/google-nexus-5/themes-apps/android-l-bootanimation-60fps-t2898727)

bootanimation60fps1080p.zip

bootanimation60fps1080pbig.zip

[샘플2]

(출처: https://forum.xda-developers.com/nexus-6/themes-apps/bootanimation-nexus-6-boot-animation-t3111805)

공유하기