이 페이지에서는 특정 기기에서의 빌드 실행에 관한 세부정보를 제공합니다. 이러한 세부정보는 Android 빌드의 내용을 보완합니다.
빠른 부팅 및 adb 빌드
아직 fastboot
및 adb
가 없는 경우 일반 빌드 시스템으로 빌드하면 됩니다. Android 빌드의 안내에 따라 기본 make
명령어를 이 명령어로 대체합니다.
make fastboot adb
Android 디버그 브리지(adb)에 관한 자세한 내용은 Android 디버그 브리지(adb)를 참고하세요.
빠른 부팅 모드(Fastboot mode)로 부팅
기기가 fastboot
부트로더 모드에 있을 때 기기를 플래시할 수 있습니다. 기기가 콜드 부팅 중일 때 fastboot
모드로 전환하려면 빠른 부팅 키 조합에 나열된 키 조합을 사용하세요.
adb reboot bootloader
명령어를 사용하여 부트로더로 직접 재부팅할 수도 있습니다. 자세한 내용은
플래시 안내를 참고하세요.
부트로더 잠금 해제
부트로더가 허용하는 경우에만 맞춤 시스템을 플래시할 수 있습니다. 하지만 부트로더는 기본적으로 잠겨 있습니다. 부트로더를 잠금 해제할 수 있지만 그렇게 하면 개인 정보 보호를 위해 사용자 데이터가 삭제됩니다. 잠금 해제하면 기기의 전체 데이터가 삭제됩니다. 즉, USB를 통해 액세스할 수 있는 비공개 앱 데이터와 공유 데이터가 모두(사진 및 영화 포함) 삭제됩니다. 따라서 부트로더 잠금 해제를 시도하기 전에 기기에 있는 중요한 파일을 백업합니다.
부트로더는 한 번만 잠금 해제해야 하며 필요한 경우 다시 잠글 수 있습니다.
최근 기기 잠금 해제
2014년 이후 출시된 모든 Nexus 및 Pixel 기기(Nexus 6 및 Nexus 9 이후)는 초기화 보호가 설정되어 있어 부트로더 잠금을 해제하려면 여러 단계의 절차가 필요합니다.
- 기기에서 OEM 잠금 해제를 사용 설정하려면 다음 단계를 따르세요.
- 설정에서 휴대전화 정보를 탭한 후 빌드 번호를 7번 탭합니다.
- 개발자가 되셨습니다.라는 메시지가 표시되면 뒤로 버튼을 탭합니다.
- 설정에서 시스템, 개발자 옵션을 차례로 탭하고 OEM 잠금 해제 및 USB 디버깅을 사용 설정합니다. (OEM 잠금 해제가 사용 중지되었다면 기기가 한 번 이상 체크인할 수 있도록 기기를 인터넷에 연결합니다. 여전히 잠금 해제가 사용 중지되어 있다면 이동통신사에서 기기의 SIM을 잠갔을 수 있으며 부트로더를 잠금 해제할 수 없습니다.)
- 부트로더로 재부팅하고
fastboot
를 사용하여 잠금 해제합니다.- 최신 기기(2015년 출시 버전 이상):
fastboot flashing unlock
- 이전 기기(2014년 출시 버전 이하):
fastboot oem unlock
- 최신 기기(2015년 출시 버전 이상):
- 화면에서 잠금 해제를 확인합니다.
부트로더 다시 잠금
부트로더를 다시 잠그려면 다음 단계를 따르세요.
- 최신 기기(2015년 출시 버전 이상):
fastboot flashing lock
- 이전 기기(2014년 출시 버전 이하):
fastboot oem lock
플래시 잠금 상태 사용
getFlashLockState()
시스템 API는 부트로더 상태를 전송하고 PersistentDataBlockManager.getFlashLockState()
시스템 API는 호환되는 기기에서 부트로더의 잠금 상태를 반환합니다.
반환 값 | 조건 |
---|---|
FLASH_LOCK_UNKNOWN |
이전에 플래시 잠금/잠금 해제 기능을 지원한 경우 플래시 잠금 상태를 얻는 데 필요한 부트로더 변경을 지원하지 않은 Android 7.x 이상으로 업그레이드한 기기에서만 반환함
|
FLASH_LOCK_LOCKED |
플래시 잠금/잠금 해제를 지원하지 않는 기기(항상 잠겨 있는 기기) 또는 플래시 잠금/잠금 해제를 지원하고 잠금 상태인 기기에서 반환함 |
FLASH_LOCK_UNLOCKED |
플래시 잠금 또는 잠금 해제를 지원하고 잠금 해제 상태인 모든 기기에서 반환함 |
제조업체는 잠금 및 잠금 해제된 부트로더가 있는 기기에서 반환된 값을 테스트해야 합니다. 예를 들어 Android 오픈소스 프로젝트(AOSP)에는 ro.boot.flash.locked
부팅 속성에 기반한 값을 반환하는 참조 구현이 포함되어 있습니다. 예제 코드는 다음 디렉터리에 있습니다.
frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java
기기 빌드 선택
추천 기기 빌드는 인수 없이 lunch
명령어를 실행할 때 lunch
메뉴에서 이용할 수 있습니다.
lunch
명령어에 관한 자세한 내용은 타겟 선택을 참고하세요.
빌드 타겟 목록은 빌드 타겟을 참고하세요.
developers.google.com에서 Pixel 및 Nexus 기기의 공장 출고 시 이미지 및 바이너리를 다운로드할 수 있습니다. 다운로드에 관해서는 기기 바이너리를 참고하세요. 자세한 내용 및 추가 리소스는 독점 바이너리 가져오기를 참고하세요.
기기 | 코드명 | 빌드 구성 |
---|---|---|
Pixel 7 Pro | cheetah | aosp_cheetah-userdebug |
Pixel 7 | panther | aosp_panther-userdebug |
Pixel 6 Pro | raven | aosp_raven-userdebug |
Pixel 6 | oriole | aosp_oriole-userdebug |
Pixel 5 | redfin | aosp_redfin-userdebug |
Pixel 4a 5G | bramble | aosp_bramble-userdebug |
Pixel 4a | sunfish | aosp_sunfish-userdebug |
Pixel 4 XL | coral | aosp_coral-userdebug |
Pixel 4 | flame | aosp_flame-userdebug |
Pixel 3a XL | bonito | aosp_bonito-userdebug |
Pixel 3a | sargo | aosp_sargo-userdebug |
Pixel 3 XL | crosshatch | aosp_crosshatch-userdebug |
Pixel 3 | blueline | aosp_blueline-userdebug |
Pixel 2 XL | taimen | aosp_taimen-userdebug |
Pixel 2 | walleye | aosp_walleye-userdebug |
Pixel XL | marlin | aosp_marlin-userdebug |
Pixel | sailfish | aosp_sailfish-userdebug |
HiKey | hikey | hikey-userdebug |
Nexus 6P | angler | aosp_angler-userdebug |
Nexus 5X | bullhead | aosp_bullhead-userdebug |
Nexus 6 | shamu | aosp_shamu-userdebug |
Nexus Player | fugu | aosp_fugu-userdebug |
Nexus 9 | volantis(flounder) | aosp_flounder-userdebug |
Nexus 5(GSM/LTE) | hammerhead | aosp_hammerhead-userdebug |
Nexus 7(Wi-Fi) | razor(flo) | aosp_flo-userdebug |
Nexus 7(Mobile) | razorg(deb) | aosp_deb-userdebug |
Nexus 10 | mantaray(manta) | full_manta-userdebug |
Nexus 4 | occam(mako) | full_mako-userdebug |
Nexus 7(Wi-Fi) | nakasi(grouper) | full_grouper-userdebug |
Nexus 7(Mobile) | nakasig(tilapia) | full_tilapia-userdebug |
Galaxy Nexus(GSM/HSPA+) | yakju(maguro) | full_maguro-userdebug |
Galaxy Nexus(Verizon) | mysid(toro) | √aosp_toro-userdebug |
Galaxy Nexus(Experimental) | mysidspr(toroplus) | aosp_toroplus-userdebug |
Motorola Xoom(미국 Wi-Fi) | wingray | full_wingray-userdebug |
Nexus S | soju(crespo) | full_crespo-userdebug |
Nexus S 4G | sojus(crespo4g) | full_crespo4g-userdebug |
기기 플래싱
한 번의 명령으로 전체 Android 시스템을 플래시할 수 있습니다. 이렇게 하면 플래시 중인 시스템이 설치된 부트로더 및 라디오와 호환되는지 확인하고 부팅 파티션, 복구 파티션, 시스템 파티션을 모두 쓴 다음 시스템을 재부팅합니다. 또한 fastboot oem
unlock
과 유사하게 플래싱하면 모든 사용자 데이터가 지워집니다.
기기를 플래싱하려면 다음 단계를 따르세요.
- 이미지 파일을 이 파일이 속한 디렉터리에서 압축 해제합니다.
ANDROID_PRODUCT_OUT
환경 변수를 설정하여 1단계에서 사용한 것과 동일한 디렉터리를 가리킵니다.- 부팅 시에 적절한 키 조합을 누르거나 다음 명령어를 사용하여 기기를
fastboot
모드로 전환합니다.adb reboot bootloader
- 기기가 빠른 부팅 모드(Fastboot mode)에 들어간 후 다음 명령어를 실행합니다.
fastboot flashall -w
-w
옵션을 사용하면 기기의/data
파티션을 완전 삭제합니다. 이 옵션은 특정 기기를 처음으로 플래시할 때 유용하지만 다른 경우에는 불필요합니다.
구성 플래싱
빠른 부팅 안내는 $ANDROID_PRODUCT_OUT/*
에 있는 fastboot-info.txt라는 아티팩트에 설명되어 있습니다. 빠른 부팅에서 실행할 작업의 이 .txt 문서 목록은 m fastboot_info
를 통해 재생성할 수 있습니다. 맞춤 플래싱 로직은 이 파일을 수정하여 도입할 수 있습니다.
지원되는 명령어
- flash %s: 주어진 파티션을 플래시합니다. 선택적 인수에는
--slot-other, {filename_path}, --apply-vbmeta
가 포함됩니다. - update-super: super 파티션을 업데이트합니다.
- if-wipe: wipe가 지정된 경우 조건부로 다른 기능을 실행합니다.
- erase %s: if-wife(예:
if-wipe erase cache
)를 사용하여 주어진 파티션(함께만 사용할 수 있음)을 삭제합니다.
기기를 초기화 상태로 복원
Nexus 및 Pixel 기기의 공장 출고 시 이미지에서 Google 기기의 공장 출고 시 이미지를 사용할 수 있습니다. Motorola Xoom의 공장 출고 시 이미지는 Motorola에서 직접 배포합니다.
권한 거부 오류 문제 해결
대부분의 Linux 시스템에서는 기본적으로 권한이 없는 사용자가 USB 포트에 액세스할 수 없습니다. 권한 거부 오류가 표시되면 Android 스튜디오의 개발용 기기 설정 안내를 참고하세요.
ADB가 이미 실행 중이고 기기에 연결할 수 없다면 adb kill-server
를 사용하여 ADB를 중지할 수 있습니다. 이 명령어를 실행하면 ADB가 새 구성으로 다시 시작됩니다.