동적 시스템 업데이트(DSU)

동적 시스템 업데이트(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 기능 플래그 사용 설정

DSU를 사용하기 전에 상응하는 기능 플래그가 사용 설정되어 있는지 확인하세요. 다음 방법 중 하나를 사용하여 플래그를 사용 설정할 수 있습니다.

  • userdebug Android 빌드가 있는 기기에서: 설정 > 시스템 > 개발자 옵션 > 기능 플래그 > settings_dynamic_system에서 기능을 사용 설정할 수 있습니다.
  • 다른 기기에서: 다음 adb 명령어를 사용합니다.

    adb shell setprop persist.sys.fflag.override.settings_dynamic_system true
    

DSU 실행

기능을 사용 설정한 후 adb 도구를 사용하여 DSU를 실행합니다.

  1. GSI 출시 페이지 또는 다른 GSI 이미지 서버에서 GSI를 다운로드합니다.

  2. GSI를 gzip으로 압축합니다.

    gzip -c system_raw.img > system_raw.gz
    
  3. GSI를 기기로 푸시합니다.

    adb push system_raw.gz /storage/emulated/0/Download/
    
  4. 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 설치를 보여주는 알림

GSI로 부팅

그림 1. DSU를 제어하는 데 사용할 수 있는 지속적인 알림

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 이상을 실행하는 기기에서 다음 단계를 따르세요.

  1. 기기에서 개발자 옵션을 사용 설정합니다.
  2. 기기의 설정 앱을 연 후 개발자 옵션 > DSU 로더를 탭합니다.
  3. 기기에 설치하려는 GSI를 선택합니다.

    GSI 선택을 위한 DSU 로더 인터페이스

  4. GSI 이용약관에 동의합니다.

    이용약관에 동의하면 선택한 GSI가 다운로드를 시작합니다. DSU 알림을 통해 다운로드 상태를 확인할 수 있습니다.

  5. 다운로드가 완료되면 다시 시작을 탭하여 GSI를 부팅합니다.

    GSI 관리 옵션이 포함된 DSU 알림

  6. 기기의 원본 시스템 이미지로 다시 전환하려면 DSU 시스템 알림에서 다시 시작을 탭합니다.

    원본 시스템 이미지를 사용하여 기기를 재부팅할 수 있는 옵션이 포함된 DSU 알림

의견 보내기

보내주신 의견은 DSU 및 기타 GSI 기능을 개선하는 데 도움이 됩니다. GSI 버그를 제출하고 Stack Overflow 관련 주제를 논의하고 Reddit의 GSI 페이지에 참여하여 생각을 공유하고 GSI 문제를 보고하세요.