화웨이 기기를 사용하는 고급 안드로이드 사용자라면 OTA 업데이트 패키지에서 특정 파일만 골라서 플래시하고 싶은 상황이 종종 발생합니다. 예를 들어 기기가 실수로 벽돌(brick) 상태가 되었는데, 전체 ROM 대신 업데이트 패키지의 특정 파일만 플래시하면 복구할 수 있다는 것을 이미 알고 있는 경우가 대표적입니다.
이 가이드에서는 화웨이 펌웨어 업데이트 패키지에서 필요한 파일만 추출하고 플래시하는 방법을 단계별로 자세히 소개합니다. 총 3가지 방법을 다룹니다. Windows용 Huawei Update Extractor, Linux/Mac용 SplitUpdate 스크립트, 그리고 마운트 기능 등 추가 옵션이 포함된 대체 스크립트입니다.
준비물
- 펌웨어 Update.zip 파일
- Huawei Update Extractor (Windows 전용)
- SplitUpdate Perl 스크립트 (Linux / Mac / Windows)
- 대체 스크립트 ('output/' 폴더 대신 'splitupdate' 폴더에 바로 추출되며, Linux 전용 마운트 스크립트 포함)
1단계: 현재 펌웨어 버전 확인하기
가장 먼저 현재 사용 중인 화웨이 펌웨어 버전을 확인해야 합니다. 설정 > 시스템 > 휴대전화 정보로 이동하여 빌드 번호(Build Number)를 적어두세요.
예를 들어 다음과 같은 형식으로 표시됩니다.
BLA-L29 8.0.0.132(C636)
이 번호는 BLA-L29C636B132로 변환됩니다. 규칙은 간단합니다. "8.0.0." 부분을 C636으로 바꾸고, 132 앞에 B를 붙이면 됩니다.
누가(Nougat) vs 오레오(Oreo): 파티션 구조 차이
오레오에서는 파티션 구조가 일부 변경되었습니다. 부팅 파티션은 'ramdisk'와 'kernel'로 분할되었으며, 리커버리 파티션은 recovery_ramdisk, recovery_vendor, recovery_vbmeta로 나뉘었습니다(recovery_ramdisk는 ramdisk와 kernel 파티션을 공유).
따라서 오레오 기기라면 ramdisk와 recovery_ramdisk를 플래시하는 경우가 많습니다. ramdisk에는 Magisk/SuperSU가 설치되고, recovery_ramdisk에는 TWRP가 설치되기 때문입니다.
2단계: 전체 OTA 펌웨어 다운로드
예를 들어 BLA-L29C636B132 펌웨어가 필요하다고 가정해 보겠습니다.
- Pro-Teammt 펌웨어 데이터베이스에 접속합니다.
- 검색창에 전체 펌웨어 번호를 입력하고 해당 모델을 검색합니다.
- "FullOTA-MF"로 표시된 행을 찾아 그 행의 "Update" 버튼을 클릭합니다.

그러면 전체 OTA update.zip 파일이 다운로드됩니다. 이 파일을 압축 관리자(아카이브 매니저)로 열어 컴퓨터에 "Update.app" 파일을 추출해 둡니다.
방법 1: Huawei Update Extractor (Windows 전용)
Huawei Update Extractor를 다운로드하여 컴퓨터에 압축을 해제한 뒤, 메인 폴더 안의 HuaweiUpdateExtractor.exe를 실행합니다.

- Settings(설정) 탭으로 이동하여 'Verify header checksum' 옵션의 체크를 해제합니다.
- Extract(추출) 탭으로 돌아가 ... 버튼을 클릭하여 앞서 추출해 둔 update.app 파일을 선택합니다.
- 화면에 update.app 내부의 모든 파일 목록이 표시됩니다.
- 원하는 파일을 마우스 오른쪽 버튼으로 클릭하고 'Extract Selected'를 선택하면 저장 위치를 지정하는 대화상자가 나타납니다.
fastboot로 추출 파일 플래시하기
추출한 파일은 fastboot를 통해 플래시할 수 있습니다.
- 플래시할 파일을 ADB 메인 경로(폴더)에 넣고 ADB 터미널을 실행합니다.
- 다음 명령으로 기기를 fastboot 모드로 진입시킵니다.
adb reboot bootloader
- fastboot 명령으로 파일을 플래시합니다. 예를 들어 ramdisk에 플래시하려면:
fastboot flash ramdisk xxxxx.img
단, 누가(Nougat) 기기라면 update.app에서 'BOOT' 파일을 추출한 뒤 다음 명령으로 플래시합니다.
fastboot flash boot boot.img
방법 2: Perl 스크립트 (Linux 및 Mac)
먼저 splitupdate.zip을 다운로드하여 압축을 해제합니다. 압축 해제된 'split' 폴더로 이동한 후 터미널을 열고 다음 명령을 입력해 실행 권한을 부여합니다.
chmod +x splitupdate chmod +x crc
이어서 이 가이드의 Windows 섹션에서 설명한 방법대로 전체 OTA 업데이트 .zip을 받아 update.app을 'Split' 폴더에 추출합니다. 그런 다음 새 터미널을 열고 아래 명령을 실행합니다.
./splitupdate UPDATE.APP file_to_extract
- 'file_to_extract' 자리에 UPDATE.APP에 실제로 있는지 여부와 관계없이 임의의 문자열을 입력하면, 패키지에 포함된 모든 이미지 목록이 출력됩니다.
- '
./splitupdate UPDATE.APP'만 실행하면 update.app의 모든 파일이 추출되며, 새로 생성되는 'output' 폴더에 저장됩니다. 필터링 기능은 완벽하지 않습니다. - '
./splitupdate UPDATE.APP RAMDISK'를 실행하면 이름에 RAMDISK가 포함된 모든 이미지가 추출되므로 RAMDISK.img와 RECOVERY_RAMDISK.img를 얻게 됩니다.
방법 3: 대체 스크립트 (마운트 기능 포함)
대체 스크립트 폴더 안의 다음 파일들에 대해 터미널로 실행 권한을 부여합니다.
chmod +x simg2img chmod +x mount.sh
mount.sh를 사용하려면 스크립트를 편집하여 YOUR_SUDO_PASSWORD_HERE 부분을 실제 sudo 비밀번호로 교체해야 합니다. 보안을 원한다면 'echo YOUR_SUDO_PASSWORD_HERE | ' 구문을 삭제한 후, 스크립트 실행 시 비밀번호를 직접 입력하는 방법도 가능합니다.
이후 system.img 또는 원하는 다른 파일을 추출한 뒤 다음 명령을 실행합니다.
./mount.sh SYSTEM
이 명령을 실행하면 다음 작업이 자동으로 수행됩니다.
- SYSTEM.img가 SYSTEM.raw로 변환됩니다.
- 변환된 이미지가 루프 디바이스(loop device)로 'split_folder/SYSTEM/' 경로에 마운트됩니다.
- SYSTEM/ 폴더 내부의 모든 파일에 chmod 777 권한이 부여됩니다.
이렇게 마운트된 시스템 이미지는 일반 폴더처럼 탐색하고 수정할 수 있어, 시스템 파일 분석이나 커스텀 작업에 매우 유용합니다.