부트로더 잠금/잠금 해제

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

기본적으로 대부분의 Android 기기는 잠긴 부트로더와 함께 제공되므로 사용자가 부트로더나 기기 파티션을 플래시할 수 없습니다. 필요한 경우 귀하(및 개발자 옵션이 활성화된 장치 사용자)가 부트로더를 잠금 해제하여 새 이미지를 플래시할 수 있습니다.

부트로더 잠금 해제

부트로더의 잠금을 해제하고 파티션을 다시 플래시할 수 있도록 하려면 장치에서 fastboot flashing unlock 명령을 실행하십시오. 설정 후 잠금 해제 모드는 재부팅 후에도 지속됩니다.

get_unlock_ability1 로 설정되어 있지 않으면 장치는 fastboot flashing unlock 명령을 거부해야 합니다. 0 으로 설정하면 사용자는 홈 화면으로 부팅하고 설정 > 시스템 > 개발자 옵션 메뉴를 열고 OEM 잠금 해제 옵션을 활성화해야 합니다( get_unlock_ability1 로 설정). 설정 후 이 모드는 재부팅 및 공장 초기화 후에도 지속됩니다.

fastboot flashing unlock 명령이 전송되면 장치는 사용자에게 비공식 이미지에 문제가 발생할 수 있음을 경고하도록 프롬프트를 표시해야 합니다. 사용자가 경고를 확인한 후 기기는 무단 데이터 액세스를 방지하기 위해 공장 초기화를 수행해야 합니다. 부트로더는 장치를 제대로 다시 포맷할 수 없는 경우에도 장치를 재설정해야 합니다. 재설정 후에만 장치를 다시 플래시할 수 있도록 영구 플래그를 설정할 수 있습니다.

아직 덮어쓰지 않은 모든 RAM은 fastboot flashing unlock 프로세스 중에 재설정되어야 합니다. 이 조치는 이전 부팅에서 남은 RAM 내용을 읽는 공격을 방지합니다. 마찬가지로 잠금 해제된 장치는 부팅할 때마다 RAM을 비워야 하지만(허용할 수 없는 지연이 발생하지 않는 한) 커널의 ramoops 에 사용되는 영역은 그대로 두어야 합니다.

부트로더 잠금

부트로더를 잠그고 장치를 재설정하려면 장치에서 fastboot flashing lock 명령을 실행합니다. 소매용 장치는 공격자가 새 시스템이나 부팅 이미지를 설치하여 장치를 손상시킬 수 없도록 잠긴 상태( get_unlock_ability0 반환)로 배송되어야 합니다.

잠금/잠금 해제 속성 설정

ro.oem_unlock_supported 속성은 장치가 깜박임 잠금 해제를 지원하는지 여부에 따라 빌드 시 설정해야 합니다.

  • 장치가 깜박이는 잠금 해제를 지원하는 경우 ro.oem_unlock_supported1 로 설정합니다.
  • 장치가 깜박이는 잠금 해제를 지원하지 않는 경우 ro.oem_unlock_supported0 으로 설정합니다.

장치가 깜박이는 잠금 해제를 지원하는 경우 부트로더는 커널 명령줄 변수 androidboot.flash.locked 를 잠긴 경우 1 로, 잠금 해제된 경우 0 으로 설정하여 잠금 상태를 표시해야 합니다. 이 변수는 Android 12의 커널 명령줄 대신 bootconfig에서 설정해야 합니다.

dm-verity 를 지원하는 장치의 경우 ro.boot.verifiedbootstate 를 사용하여 ro.boot.flash.locked 값을 0 으로 설정합니다. 확인된 부팅 상태가 주황색이면 부트로더의 잠금을 해제합니다.

중요 섹션 보호

장치는 장치를 부트로더로 부팅하는 데 필요한 것으로 정의된 중요 섹션의 잠금 및 잠금 해제를 지원해야 합니다. 이러한 섹션에는 퓨즈, 센서 허브용 가상 파티션, 1단계 부트로더 등이 포함될 수 있습니다. 중요 섹션을 잠그려면 장치에서 실행 중인 코드(커널, 복구 이미지, OTA 코드 등)가 중요 섹션을 의도적으로 수정하지 못하도록 방지하는 메커니즘을 사용해야 합니다. 장치가 잠금 위험 상태에 있는 경우 OTA는 중요 섹션 업데이트에 실패해야 합니다.

잠금 상태에서 잠금 해제 상태로 전환하려면 장치와의 물리적 상호 작용이 필요합니다. 이 상호 작용은 fastboot flashing unlock 명령을 실행할 때의 효과와 유사하지만 사용자가 장치의 물리적 버튼을 눌러야 합니다. 장치는 물리적 상호 작용 없이 중요 잠금에서 lock critical unlock critical 로 프로그래밍 방식으로 전환하는 것을 허용해서는 안 되며 장치는 unlock critical 상태로 배송되어서는 안 됩니다.