맞춤형 장치 개발

이 페이지에서는 자신의 장치에 대한 빌드를 설정하는 경우 수행해야 할 수 있는 몇 가지 작업을 설명합니다.

사용자 정의 플래시 구성 만들기

Fastboot 지침은 fastboot-info.txt 라는 아티팩트에 정의되어 있습니다. 여러 타겟을 빌드하는 경우 $OUT_DIRfastboot-info.txt 파일이 여러 개 생성됩니다. 그리고 $ANDROID_PRODUCT_OUT 귀하가 구축한 가장 최근의 타겟을 가리킵니다. 이 페이지에는 실행할 fastboot 작업이 나열되어 있으며 m fastboot_info 사용하여 다시 생성할 수 있습니다. fastboot-info.txt 파일을 수정하여 사용자 지정 플래싱 논리를 도입할 수 있습니다.

fastboot-info.txt 파일은 다음 명령을 지원합니다.

  • flash %s : 주어진 파티션을 플래시합니다. 선택적 인수에는 --slot-other, filename_path , and --apply-vbmeta`가 포함됩니다.
  • update-super : super 파티션을 업데이트합니다.
  • if-wipe : 초기화가 지정된 경우 다른 구성 요소를 조건부로 실행합니다.
  • erase %s : 지정된 파티션을 지웁니다( if-wipe -> 예: if-wipe erase cache 와 함께만 사용할 수 있음).

플래시 잠금 상태 확인

장치에 대한 사용자 정의 flashboot 데몬(flashbootd)을 구축하는 경우 부트로더 및 부트로더 잠금 상태를 얻을 수 있어야 합니다. getFlashLockState() @SystemApi 부트로더 상태를 전송하고 PersistentDataBlockManager.getFlashLockState() 시스템 API는 호환 장치에서 부트로더의 잠금 상태를 반환합니다.

반환 값 정황
FLASH_LOCK_UNKNOWN 이전에 플래시 잠금/잠금 해제 기능을 지원하는 경우 플래시 잠금 상태를 가져오는 데 필요한 부트로더 변경을 지원하지 않은 Android 7.x 이상으로 업그레이드하는 기기에서만 반환됩니다.
  • Android 7.x 이상을 실행하는 새 기기는 FLASH_LOCK_LOCKED 또는 FLASH_LOCK_UNLOCKED 상태여야 합니다.
  • 깜박이는 잠금 해제/잠금 기능을 지원하지 않는 Android 7.x 이상으로 업그레이드하는 기기는 FLASH_LOCK_LOCKED 상태를 반환해야 합니다.
FLASH_LOCK_LOCKED 깜박이는 잠금/잠금 해제를 지원하지 않는 장치(즉, 장치가 항상 잠겨 있음) 또는 깜박이는 잠금/잠금 해제를 지원하고 잠금 상태인 모든 장치에서 반환됩니다.
FLASH_LOCK_UNLOCKED 깜박이는 잠금/잠금 해제를 지원하고 잠금 해제 상태인 모든 장치에서 반환됩니다.

제조업체는 부트로더가 잠겨 있거나 잠금 해제된 기기에서 반환되는 값을 테스트해야 합니다. 예를 들어 AOSP에는 ro.boot.flash.locked 부팅 속성을 기반으로 값을 반환하는 참조 구현이 포함되어 있습니다. 예제 코드는 다음 디렉터리에 있습니다.

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java