동적 시스템 업데이트(DSU)는 Android 10에 도입된 시스템 기능으로 다음을 실행합니다.
- 새 GSI(또는 기타 Android 시스템 이미지)를 기기에 다운로드합니다.
- 새 동적 파티션을 만듭니다.
- 다운로드한 GSI를 새 파티션에 로드합니다.
- 기기에서 게스트 OS로 GSI를 부팅합니다.
또한 DSU를 사용하면 현재 시스템 이미지와 GSI 간을 쉽게 전환할 수 있으므로 현재 시스템 이미지를 손상할 위험 없이 GSI를 사용해 볼 수 있습니다.
DSU 요구사항
DSU는 Android 동적 파티션 기능에 종속되며 Google 또는 OEM에서 GSI에 신뢰할 수 있는 시스템 이미지로 서명해야 합니다.
DSU는 기기의 제조업체에서 제공하는 기능입니다. 사용 가능 여부는 기기 제조업체의 지원 페이지를 참조하세요. Google은 Android 10 베타 4 출시부터 Pixel 3 및 최신 기기에서 DSU를 사용 설정했습니다.
DSU 및 명령줄을 사용하여 GSI 설치
이 섹션에서는 DSU 및 명령줄을 사용하여 GSI를 설치하는 방법을 설명합니다.
DSU 실행
adb
도구를 사용하여 DSU를 실행합니다.
GSI 출시 페이지 또는 다른 GSI 이미지 서버에서 GSI를 다운로드합니다.
GSI를 gzip으로 압축합니다.
gzip -c system_raw.img > system_raw.gz
GSI를 기기로 푸시합니다.
adb push system_raw.gz /storage/emulated/0/Download/
adb
를 사용하여 DSU를 실행합니다.adb shell am start-activity \ -n com.android.dynsystem/com.android.dynsystem.VerificationActivity \ -a android.os.image.action.START_INSTALL \ -d file:///storage/emulated/0/Download/system_raw.gz \ --el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \ --el KEY_USERDATA_SIZE 8589934592
이와 같은 알림은 설치 상태를 보여줍니다.
GSI로 부팅
DSU가 GSI를 설치한 후 DSU 메뉴가 시스템 알림 창 내에 지속적인 알림으로 표시됩니다(그림 1 참조).
이때 다음 작업 중 하나를 실행할 수 있습니다.
- 다시 시작을 탭하여 GSI로 부팅합니다.
- 삭제를 탭하여 GSI를 정리합니다.
기기의 원본 시스템 이미지로 다시 전환
GSI를 사용하여 앱 테스트를 완료한 후 콜드 재부팅을 수행할 수 있습니다. 시스템을 원래 시스템 이미지로 다시 부팅합니다.
GSI를 사용하도록 다음 재부팅을 설정한 경우 고정 모드를 사용 설정하여 GSI를 여러 부팅 주기 동안(삭제될 때까지) 설치된 상태로 유지하거나 고정 모드를 사용 중지하여 GSI를 한 부팅 주기 동안에만 사용할 수 있습니다.
다음 명령어는 고정 모드를 사용 설정합니다.
adb shell gsi_tool enable
다음 명령어는 고정 모드를 사용 중지합니다.
adb shell gsi_tool disable
adb shell gsi_tool enable -s
adb shell gsi_tool disable
DSU 및 DSU 로더를 사용하여 GSI 설치
Android 11에서는 기기의 개발자 옵션에서 사용할 수 있는 도구인 DSU 로더가 도입되어, 시스템의 UI를 통해 GSI를 완전히 다운로드, 설치 및 관리할 수 있습니다.
DSU 로더를 사용하여 GSI를 설치하려면 Android 11 이상을 실행하는 기기에서 다음 단계를 따르세요.
- 기기에서 개발자 옵션을 사용 설정합니다.
- 기기의 설정 앱을 연 후 개발자 옵션 > DSU 로더를 탭합니다.
기기에 설치하려는 GSI를 선택합니다.
GSI 이용약관에 동의합니다.
이용약관에 동의하면 선택한 GSI가 다운로드를 시작합니다. DSU 알림을 통해 다운로드 상태를 확인할 수 있습니다.
다운로드가 완료되면 다시 시작을 탭하여 GSI를 부팅합니다.
기기의 원본 시스템 이미지로 다시 전환하려면 DSU 시스템 알림에서 다시 시작을 탭합니다.
의견 보내기
보내주신 의견은 DSU 및 기타 GSI 기능을 개선하는 데 도움이 됩니다. 의견을 공유하세요. GSI를 작성하여 GSI 문제를 신고하세요. 버그 Stack Overflow의 주제에 관해 토론해 보세요.