안드로이드 펌웨어 이미지
2025년 1월 13일
ref #
XDA - 삼성 펌웨어 관련 정리 글
XDA - PIT Magic
exynos-9820 tzar 리버싱, 언팩
구글 #
Pixel 2XL (AOS 9) #
이미지 구조를 보면 최상단에 bootloader와 radio가 있고, zip 파일 내부에 boot.img, system.img 등의 파일이 있는 것이 보인다.
스크립트를 보면 일단 bootloader.img 를 bootloader 파티션에 플래시 하는데 이 파일이 BootROM이 SRAM에 올려주는 1차, 2차 부트로더(LK, uboot 등)의 코드이다.
radio는 무선 모뎀 펌웨어이고 부팅과정에서 별로 중요하진 않다.
zip 파일은 AOSP OS의 이미지이며, update 명령으로 각각에 맞는 파티션에 알아서 플래시한다.
- boot.img : 커널(zImage)과 램디스크(initramfs)가 포함된 이미지이고, boot 파티션에 플래시된다.
- system.img, vendor.img 등 : /system, /vendor 등의 파티션에 플래시되며 OS의 라이브러리, 앱 등 대규모 파일들이 들어있다.
1fastboot flash bootloader bootloader-taimen-tmz20r.img
2fastboot reboot-bootloader
3ping -n 5 127.0.0.1 >nul
4fastboot flash radio radio-taimen-g8998-00008-1902121845.img
5fastboot reboot-bootloader
6ping -n 5 127.0.0.1 >nul
7fastboot -w update image-taimen-pq3a.190801.002.zip
삼성 #
펌웨어 관련 추가 정보 #
펌웨어 세부 정보 #
삼성은 부트로더 버전(U6)이 올라가면 부트로더에서 Anti-Downgrade 보호가 되어있기 때문에 취약점을 찾지 않는 이상 내리기 어려워서 주의해야한다.
펌웨어 파일 #
펌웨어 파일을 다운받으면 BL, AP, CP, CSC, HOME_CSC 로 시작하는 압축파일들을 볼 수 있다.
- BL (BootLoader) : 부트로더 관련파일이 포함된 압축파일
- AP (Application Processor) : 가장 큰 파일이며 안드로이드 OS의 시스템 파티션, TEE, 리커버리, 부트이미지(커널+램디스크) 등이 포함된 파일이다.
- CP (Core Processor) : 모뎀 파일이 포함되어 있다.
- CSC (Consumer Software Customisation) : 국가나 통신사별로 달라지는 설정 파일이 포함된다. PIT가 포함되어 이 정보에 맞춰 다시 파티셔닝 하면서 플래시 되기 때문에 플래시 후 기기가 초기화된다.
- PIT (Partition Information Table) : 기기 내부 파티션이 어떻게 나뉘어져 있는지, 오프셋, 사이즈, 읽기쓰기 플래그 등에 대한 정보가 포함된다.
- HOME_CSC : 데이터를 유지하면서 업데이트할 때 사용한다.
펌웨어 플래시 방법 #
전원을 끈 상태에서 볼륨 상하 버튼을 누르고 usb 케이블을 연결하면 다운로드 모드로 진입한다.
TWRP에서 각 모드로 reboot 하면 모드전환이 안되는 경우가 있는데, 이 방법으로 다운로드 모드 진입이 가능하다.
A51 - A516N (AOS 13) #
https://samfw.com/firmware/SM-A516N/KTC/A516NKSU6FWF2
https://namu.wiki/w/%EA%B0%A4%EB%9F%AD%EC%8B%9C%20A51%205G
- SoC : 삼성 엑시노스 900 Series (980)
- TEE : TEEgris
BL #
- tzar.img (tzar) : TEEGRIS의 root filesystem 이다. TEE에서 실행되는 각종 서비스, TA에서도 사용하는 라이브러리가 포함되어 있으며, TA를 검증하고 실행하는 root_task 바이너리도 포함되어 있다.
- tzsw.img (tzsw) :
1PS D:\SAMFW.COM_SM-A516N_KTC_A516NKSU6FWF2_fac> strings .\tzsw.img.lz4 | findstr tee 2teegris
AP #
Docomo A22 - SC-56B (AOS 12) #
https://samfw.com/firmware/SC-56B/DCM/SC56BOMU1BVF1
https://namu.wiki/w/%EA%B0%A4%EB%9F%AD%EC%8B%9C%20%EB%B2%84%EB%94%94
- SoC : 미디어텍 MT6833 Dimenstiy 700 5G
- TEE : TEEgris
BL #
- up_param.bin (up_param) :
- lk-verified.img (lk) : 리틀커널
AP #
- tzar.img (tzar) : TEEGRIS의 root filesystem 이다. TEE에서 실행되는 각종 서비스, TA에서도 사용하는 라이브러리가 포함되어 있으며, TA를 검증하고 실행하는 root_task 바이너리도 포함되어 있다.
- tee-verified.img (tee1) :
A8 2018 - A530N (AOS 9) #
https://samfw.com/firmware/SM-A530N/KTC/A530NKSU9CUI1
https://namu.wiki/w/%EA%B0%A4%EB%9F%AD%EC%8B%9C%20A8(2018)
- SoC : 삼성 엑시노스 7 Series (7885)
- TEE : trustonic
BL #
- sboot.bin :
1PS D:\SAMFW.COM_SM-A530N_KTC_A530NKSU9CUI1_fac> strings .\sboot.bin.lz4 | findstr tee 2tee 3gpd.tee.apiversion 4com.trustonic.tee-config.CfgBlockPointer 5tee_storage/sth2_interaction.c