A/B 파티션 및 원활한 업데이트가 XDA의 맞춤형 개발에 미치는 영향

click fraud protection

이전에 원활한 업데이트에 대해 들어보셨을 것입니다. 여기에는 "A/B 파티션"이라는 것이 포함됩니다. 그것은 무엇이며 XDA의 사용자 정의 개발에 어떤 영향을 줍니까?

Android Nougat가 출시되었을 때 우리는 다음과 같이 이야기했습니다. 모든 종류의 새로운 기능. 오랫동안 기다려온 다중 창 기능 및 Vulkan 그래픽 API 지원과 함께 초보자를 위한 새로 업데이트된 사용자 인터페이스가 제공됩니다. 그러나 한 가지 추가 기능이 대부분의 사용자의 머리 위로 날아갔습니다. Android Nougat에서는 A/B 파티션을 지원하는 기기에 '원활한 업데이트'를 도입했습니다. 대다수의 기존 Android 기기(새로운 Google Pixel 및 Google Pixel XL 제외)에는 당시 A/B 파티션이 없었기 때문에 원활한 업데이트를 활용할 수 없었습니다. 이 기능의 기본 전제는 장치에 시스템, 부팅, 공급업체 및 기타 중요한 파티션의 두 번째 세트가 있고 OTA를 얻을 때 업데이트는 두 번째 파티션 세트가 패치되는 동안 백그라운드에서 발생하므로 업데이트된 소프트웨어 빌드로 원활하게 재부팅할 수 있습니다. 업데이트가 실패하면 작동 중인 빌드로 돌아가게 됩니다. 즉, 기업이 처리해야 할 골칫거리가 줄어들고 소비자가 더 잘 보호된다는 의미입니다.

Project Treble과 달리 원활한 업데이트 지원은 새로운 Android 장치에 대한 요구 사항이 아닙니다. 따라서 대다수의 새로운 Android 기기는 이 기능을 지원하지 않습니다. 우리는 지금까지 지원되는 모든 장치 목록을 보관해 왔습니다., 이 기능은 널리 지원되지 않는 것이 분명합니다. A/B 파티션은 일반 사용자와 고급 사용자 모두에게 많은 이점을 제공하기 때문에 이는 안타까운 일입니다. 그러나 이 기능은 Android 개발 및 플래시 사용자 정의 수정을 더 어렵게 만드는 것으로 인식되기 때문에 매니아 커뮤니티에서는 약간 나쁜 평판을 가지고 있습니다. 실제로는 그렇지 않기 때문에 원활한 업데이트를 이해하고 A/B 파티션이 XDA의 사용자 정의 개발에 어떤 영향을 미치는지 설명하고 싶었습니다.

XDA 선임 회원에게 많은 감사를 드립니다. np존슨, ㅏ 기여자 리니지OS와 유지관리자 이 기사의 사실 확인에 도움을 주신 Motorola Moto Z2 Force.


Android 기기의 파티션

파티션은 단순히 데이터가 보관되는 휴대폰 내부 저장소의 개별 섹션입니다. 각 파티션에 보관되는 데이터 종류는 하드웨어, 운영 체제 및 기타 여러 요인에 따라 달라집니다. 부트로더에는 하나, 시스템(Android OS)에는 하나, 사용자 데이터에는 하나가 있습니다. 등등. 사람들이 "/system" 및 "/cache"에 대해 이야기하는 것을 보면 해당 파티션에 지정된 이름을 언급하는 것입니다. 예를 들어 OnePlus 6에는 파티션 72개. 많은 것처럼 들리지만 OnePlus 6은 원활한 업데이트를 지원하는 장치 중 하나입니다. 즉, 이러한 파티션 중 상당수가 단순히 서로 중복된다는 의미입니다.

OnePlus 6의 파티션 출력 중 일부입니다. 일부 A/B 파티션에는 데모용으로 밑줄이 그어져 있습니다.

장치에는 사용자로서 걱정할 필요가 없는 많은 파티션이 있습니다. 이러한 파티션 중 다수는 사용자 정의 ROM, 커널, 복구 또는 Magisk 또는 Xposed와 같은 수정을 플래시할 때 수정되지 않습니다. 이러한 파티션 중 상당수는 우리의 목적을 위해 사용되지 않거나 현재 수행 중인 작업을 알지 않는 한 만지기에는 너무 위험합니다(Huawei/Honor의 XLOADER 및 OEMINFO). 장치가 떠오릅니다.) 대다수의 Android 사용자의 경우 우리가 주로 다루는 파티션은 시스템, 부팅, 복구, 사용자 데이터이며 최근에는 공급 업체 및 vbmeta.vbmeta. 다음은 각 파티션의 목적에 대한 간략한 설명입니다.

  • 시스템 - Android OS, 시스템 라이브러리, 시스템 앱 및 부팅 애니메이션, 스톡 배경화면, 벨소리 등과 같은 기타 시스템 미디어를 보유합니다.
  • 부팅 - 커널, 램디스크 및 A/B 장치의 복구 기능도 보유합니다.
  • 복구 - TWRP가 A 전용 장치에서 가장 일반적으로 플래시되는 복구를 보유합니다(A/B 장치에는 전용 복구 파티션이 없음).
  • userdata - 모든 앱, 시스템 및 내부 저장소 데이터를 보유합니다.
  • 공급업체 - Android OS가 기본 하드웨어와 통신하는 데 필요한 파일인 플랫폼 및 기기별 HAL을 보유합니다.
  • vbmeta - 부팅 프로세스의 무결성을 확인하는 Android 자체 검사 부팅 2.0용 파티션

장치 OEM은 원하는 레이아웃을 사용하도록 파티션 구성표를 변경할 수 있습니다. 예를 들어 Huawei는 부팅 파티션을 ramdisk_recovery와 커널로 분할합니다. cust, product, oem과 같은 다른 시스템 앱을 포함할 수 있는 추가 파티션도 많이 있습니다. 이는 수정해도 안전하므로 재고로 쉽게 반품하려는 경우 일반적으로 권장되지 않습니다. 그렇다면 A/B 파티션은 어떤 역할을 할까요?


A/B 파티션 구성표

원활한 업데이트가 가능한 장치에서 업데이트가 작동하는 방식

아래에 만든 매우 간단한 이미지는 A/B 파티션을 지원하는 장치에서 업데이트가 처리되는 방법을 보여줍니다. 설명된 파티션은 시스템 파티션이지만 부팅 및 공급업체와 같은 다른 파티션도 OEM의 특정 OTA 업데이트로 업데이트될 수 있습니다. 이 업데이트 프로세스는 주요 Android 버전 업데이트뿐만 아니라 보안 패치 업데이트에서도 발생합니다.

  1. 동일한 Android 버전에 있는 두 개의 시스템 파티션 system_a 및 system_b로 시작합니다.
  2. system_a가 활성 상태라고 가정하면 OTA 업데이트는 백그라운드에서 비활성 파티션인 system_b를 패치합니다.
  3. system_a는 비활성으로 설정되고 system_b는 사용자가 재부팅하면 활성화됩니다.
  4. 현재 비활성 파티션인 system_a는 다음 OTA 업데이트가 출시되면 업데이트됩니다.

이 업데이트 프로세스의 이점은 무엇입니까?

  1. 업데이트가 실패하면 장치는 다른 슬롯에서 작동하는 빌드로 롤백됩니다.
  2. 데이터를 저장하는 파티션(사용자 데이터)이 하나뿐이므로 업데이트가 중단되더라도 데이터는 완벽하게 그대로 유지됩니다.
  3. 업데이트 스트리밍: 데이터 파티션이 가득 찬 경우 업데이트를 다운로드하여 비활성 슬롯에 스트리밍할 수 있습니다. 이는 매우 깔끔한 기능이며 업데이트에 임시 저장 공간을 낭비할 필요가 없음을 의미합니다. 그렇기 때문에 A/B 장치에는 더 이상 필요하지 않으므로 캐시 파티션이 없습니다.

A/B 파티셔닝 체계는 기기 ​​스토리지에 어떤 영향을 미치나요?

원활한 업데이트로 인해 여러 개의 파티션이 중복된다는 사실이 많은 저장 공간을 잃고 있음을 의미합니까? 별말씀을요. Google은 원활한 업데이트를 지원하는 기기가 /cache 및 /recovery 파티션을 제거한 덕분에 약 수백 메가바이트만 다운될 것이라고 말합니다. 두 가지를 모두 제거하면 두 번째 파티션 세트를 추가하는 비용의 균형이 맞춰집니다. Google에 따르면 Pixel의 A/B 시스템 이미지는 A 전용 시스템 이미지 크기의 절반입니다. 추가 스토리지 사용량의 대부분은 실제로 두 번째 공급업체 파티션을 추가함으로써 발생합니다. 공급업체 파티션에는 OEM이 사용하는 모든 독점 바이너리(Project Treble의 일부)가 포함되어 있으므로 상당한 공간을 차지할 것으로 예상되므로 이는 의미가 있습니다. Google에서는 4GB의 저장 공간(사용 가능한 전체 저장 공간의 거의 10%)이 있는 기기에서는 A/B 파티셔닝을 권장하지 않지만 8GB 이상의 기기에서는 권장합니다.

다음은 A/B 파티션이 있거나 없는 Google Pixel에서 사용되는 저장 공간에 대한 분석입니다.

파티션 크기

A/B

A-전용

부트로더

50MB*2

50MB

신병

32MB*2

32MB

회복

32MB

은닉처

100MB

라디오

70MB*2

70MB

공급업체

300MB*2

300MB

체계

2048MB*2

4096MB

5000MB

4680MB

복구 파티션은 어떻게 되었나요?

Android 기기의 기본 Linux 커널은 Android가 스마트폰에서 하드웨어를 올바르게 인식하고 사용할 수 있도록 해줍니다. A 전용 Android 기기에는 일반적으로 두 가지 버전의 커널이 있습니다. 하나는 복구 파티션 내부에 있고 다른 하나는 부팅 파티션에 있습니다. 원활한 업데이트를 지원하는 A/B 장치에서 복구는 이제 커널과 함께 부팅 이미지 내부에 있습니다. 복구의 주요 기능은 업데이트를 설치하는 것이었지만 이는 시스템 자체에서 처리되므로(업데이트_엔진) Android가 부팅되는 동안 전용 복구 파티션은 더 이상 필요하지 않습니다.

A/B 장치에 사용자 정의 복구를 설치하려면 부팅 파티션을 수정하고 재고 복구를 자체 파티션으로 교체해야 합니다. 이것이 TWRP를 설치하려면 먼저 사용자 정의 부팅 이미지를 부팅하기 위해 fastboot 명령을 사용해야 하는 이유입니다. 그 다음에 fastboot는 파티션을 패치할 수 없으며 전체 파티션만 플래시할 수 있으므로 TWRP 설치 스크립트를 플래시합니다. 기술적으로 기존 부팅 이미지를 TWRP로 사전 패치한 다음 fastboot를 통해 플래시할 수 있지만 이는 가치 있는 것보다 더 많은 문제입니다. TWRP 설치 프로그램 스크립트는 boot_a 및 boot_b 파티션을 모두 패치하여 TWRP를 설치합니다.

재미있는 사실: 원활한 업데이트를 처리하는 Android update_engine은 기본적으로 Chrome OS에서 직접 가져온 것입니다. 최근에야 logcat을 확인하는 사람의 혼란을 피하기 위해 update_engine의 로그에서 "Chrome OS"가 포함된 문자열이 제거되었습니다.

내 Android 스마트폰은 원활한 업데이트를 위해 A/B 파티션을 지원합니까?

우리가 ~하는 동안 모든 장치 목록 유지 그것을 지원하는 것, 당신도 쉽게 확인할 수 있어요.


원활한 업데이트가 맞춤형 개발에 어떤 영향을 미치나요?

A/B 파티션에 대한 사용자 인식

많은 사용자가 맞춤형 소프트웨어 개발을 방해한다고 생각하는 원활한 업데이트는 실제로 개발자에게 도움이 됩니다. A/B 장치가 개발 지원이 열악하다고 인식되는 이유는 첫 번째 A/B 장치의 가격 때문입니다. 결국 Google Pixel 기기는 원활한 업데이트를 지원하는 최초의 기기 중 하나였으며 과거의 Nexus 스마트폰과 비교하면 상대적으로 비쌌습니다. 또한 Google이 맞춤형 ROM을 만들고 Android OS에 적용한 수많은 개선 덕분에 Google 기기에서 덜 인기 있는 수정으로 인해 Google Pixel 스마트폰은 Nexus만큼 우리 포럼에서 인기를 얻지 못했습니다. 스마트폰. 외부 요인의 조합으로 인해 Google Pixel 스마트폰의 맞춤 개발이 감소했지만 대부분의 사용자는 대신 A/B 파티션 지원을 비난했습니다. Google Pixel과 같은 장치에서 Xiaomi Mi A1과 같은 장치의 맞춤형 개발 가용성을 비교해보세요. 우리 포럼에서.

또한 A/B 파티션이 사용자 정의 ROM, 커널, 복구 및 수정을 설치하는 데 필요한 방식을 어떻게 변경했는지에 대한 이해가 부족하여 A/B 파티션 지원이 인기가 없게 되었습니다. 이제 복구가 부팅 이미지 내부에 있으므로 Magisk 또는 Xposed와 같이 잘못된 순서로 수정 사항이 깜박이면 충돌이 발생하고 부팅 루프가 발생할 수 있습니다. 이러한 모드를 어떤 순서로 플래시하는지가 중요할 수 있지만, 맞춤 ROM의 경우 어떤 슬롯에 플래시할지 걱정할 필요가 없습니다. 일반적인 믿음과는 달리 대부분의 맞춤형 ROM에 대한 설치 스크립트는 두 슬롯 모두에 플래시되지 않습니다. 슬롯을 수동으로 교체할 필요가 없으므로 걱정할 필요가 없습니다.

개발자가 A/B 파티션을 보는 방법

ROM을 빌드할 때 개발자는 두 파티션을 모두 사용하여 별도의 빌드를 테스트할 수 있습니다. 작동하지 않으면 작업 파티션으로 돌아가서 ROM을 다시 빌드하면 됩니다. 개발자는 업데이트를 설치하고, 활성 파티션을 전환하고, 데이터를 지우지 않고도 두 파티션을 비교함으로써 회귀를 테스트할 수도 있습니다. LineageOS 팀이 A/B 파티션 지원을 보는 방식은 다음과 같습니다.

"안드로이드 커뮤니티의 많은 사람들이 A/B를 '지원하기 어렵고' '개발자 친화적이지 않다'고 비난했지만 실제로는 제대로 구현되었습니다. 지원하기가 더 쉽다 개발자 친화적입니다." - jrizzoli, LineageOS 변경 로그 19

개발자를 위한 A/B 지원의 초기 어려움은 이러한 장치를 지원하기 위해 기존 도구를 수정하는 것에서 비롯되었습니다. Magisk의 개발자인 topjohnwu는 Google Pixel이 출시된 지 1년 후에 공식 지원을 추가했습니다. 어려워서가 아니라 실제로 장치를 구하는 데 1년이 걸렸기 때문입니다. 그 일을 수행하다. TWRP 지원 꽤 빨리 왔어 수석 개발자인 Dees_Troy가 이를 시도한 후 A/B 기기에서 리니지OS 15.1 이제 지원합니다 자원봉사자들이 addon.d 스크립트를 수정할 시간을 찾은 후 A/B 장치.

맞춤 복구, 커널 또는 기타 모드가 있는 A/B 장치를 업데이트하는 방법

맞춤형 ROM

맞춤 ROM이 있는 장치에서 업데이트를 플래싱한다는 것은 어느 슬롯을 플래싱하고 있는지에도 주의해야 한다는 의미입니다. 그렇죠? 좀 빠지는. TWRP는 실제로 많은 작업을 처리하며 기본적으로 사용자 정의 ROM을 플래싱하기 위한 비활성 슬롯으로 설정됩니다. 활성 슬롯이 A이고 사용자 정의 ROM을 플래시하는 경우 실제로는 슬롯 B로 플래시하는 것입니다. 재부팅하면 활성 슬롯은 이제 B입니다. 개발자는 설치 스크립트를 수정하고 두 슬롯 모두에 플래시하여 최종 사용자가 더 쉽게 사용할 수 있도록 할 수 있지만 대부분의 사용자 정의 ROM 설치 스크립트는 현재 단일 슬롯에만 플래시됩니다. 마지막으로, 맞춤형 ROM은 ROM에 A/B 업데이트 프로그램을 구현할 수 있으므로 사용자는 혼란을 겪을 필요조차 없습니다. 수동으로 업데이트 업데이트 - 최신 LineageOS 15.1에는 Lineage Updater 도구와 XDA Senior Member가 포함되어 있습니다. USA-RedDragon 만들었습니다 일반 A/B 업데이터 다른 개발자가 사용할 수 있는 것입니다.

재고 ROM

하지만 장치가 다양한 수정이 포함된 기본 ROM을 실행하고 있고 이러한 모드를 모두 잃지 않고 업데이트를 설치하려는 경우 문제가 되지 않습니까? 업데이트를 설치하는 올바른 단계를 모르는 경우일 수 있습니다. 예를 들어 OnePlus 6에서는 증분 OTA가 수정된 부팅 이미지를 패치하려고 시도하므로 수정된 장치에서 증분 OTA를 플래시할 수 없습니다. 따라서 부팅 루프가 발생할 가능성이 높으며, 이것이 수정된 부팅 이미지를 완전히 덮어쓰려면 전체 ROM 업데이트를 플래시해야 하는 이유입니다. TWRP, Magisk 및 선택적으로 사용자 정의 커널을 유지하면서 OnePlus 6에 OxygenOS 업데이트를 설치하기 위해 수행해야 하는 일반적인 단계는 다음과 같습니다.

  1. 최신을 다운로드했습니다. 전체 ROM 지퍼
  2. 복구 시 전체 ROM zip을 플래시하세요.
  3. (선택사항) 플래시 맞춤 커널
  4. 플래시 TWRP 설치 프로그램
  5. 바로 재부팅하여 복구 모드로 돌아갑니다.
  6. 플래시 매직스크

Google Pixel 기기에서는 다음을 수행할 수 있습니다. 데이터를 지우지 않고 공장 이미지를 플래시합니다., 그런 다음 TWRP를 부팅하고 설치 스크립트를 통해 TWRP를 설치한 다음 Magisk를 설치하십시오.

개별 파티션 이미지를 플래시하기 위한 업데이트 추출

많은 A/B 장치의 업데이트 파일은 A 전용 장치에 비해 약간 다릅니다. 더 이상 많은 이미지(Google 및 Razer의 공장 이미지 제외)가 포함된 zip 파일이 아니라 payload.bin 파일 형식입니다. 이 파일을 추출하고 각 부분을 수동으로 플래시할 수 있지만 그렇게 하려면 특별한 도구가 필요합니다. OnePlus 6, Xiaomi Mi A1 및 기타 여러 A/B 장치에서 이를 수행하는 방법을 배우고 싶다면 계속 읽어보세요.

payload.bin을 추출하기 위한 설정

  1. Python 3.6이 설치되어 있는지 확인하세요. 설치됨.
  2. payload_dumper.py 및 update_metadata_pb2.py 다운로드 여기.
  3. OTA zip을 추출하고 payload.bin을 이 파일과 동일한 폴더에 넣습니다.
  4. OS에 따라 PowerShell, 명령 프롬프트 또는 터미널을 엽니다.
  5. 다음 명령을 입력하십시오. python -m pip install protobuf
  6. 완료되면 다음 명령을 입력합니다. python payload_dumper.py payload.bin
  7. 그러면 payload.bin 파일 내의 이미지가 현재 폴더에 추출되기 시작합니다.

원하는 경우 이제 fastboot를 통해 각 이미지를 개별적으로 플래시할 수 있습니다. 다음 섹션에서는 그 방법을 보여줍니다.

원활한 업데이트를 지원하는 장치에서 fastboot를 사용하여 이미지를 플래시합니다.

A/B 파티션 시스템 장치에만 적용되는 명령이 많이 있습니다. 활성 슬롯을 변경하고 특정 슬롯으로 플래시할 수 있습니다. 프로젝트 트레블(Project Treble)이 있는 경우호환 장치 그리고 방법을 배우고 싶습니다. 플래시 일반 시스템 이미지, 이러한 명령을 잘 알고 있어야 합니다. 아래 표를 살펴보세요.

빠른 부팅 명령

명령

현재 활성 슬롯 가져오기

fastboot getvar 모두 | grep "current-slot" Windows PC를 사용하는 경우 "grep" 명령이 작동하지 않습니다.

다른 슬롯을 활성으로 설정

fastboot set_active 기타

지정된 슬롯을 활성으로 설정

fastboot set_active $ORfastboot --set-active=_$slot여기서 $는 a 또는 b입니다.

현재 슬롯의 지정된 파티션에 이미지를 플래시합니다.

fastboot 플래시 파티션 partition.img

지정된 슬롯의 지정된 파티션에 이미지를 플래시합니다.

fastboot 플래시 파티션_a 파티션.imgfastboot 플래시 파티션_b 파티션.img

(참고: A/B 장치에서는 플래시할 특정 슬롯의 파티션을 지정하거나 슬롯 접미사를 생략하고 현재 활성 슬롯으로 플래시할 수 있습니다. 예를 들어 flash 명령의 "partition"을 "system", "system_a" 또는 "system_b"로 바꿀 수 있습니다.)

Windows PC에서는 grep을 사용할 수 없으므로 해당 부분을 제거하고 "현재 슬롯"을 찾으십시오.

Project Treble 및 원활한 업데이트에 대한 한마디

일반적인 오해는 Project Treble 지원과 A/B 파티션 지원이 서로 관련되어 있다는 것입니다. 그러나 실제로는 그렇지 않습니다. 하나를 갖는다고 해서 다른 하나가 의미되는 것은 아닙니다. Motorola Moto Z2 Force는 A/B 파티션 구성표를 사용하지만 Treble을 지원하지 않습니다. 반면 Honor 9 Lite는 Project Treble을 지원하지만 A 전용 장치입니다.

Honor 9 Lite는 Project Treble을 지원하지만 원활한 업데이트는 지원하지 않습니다.

자주 묻는 질문/요약

  • A/B 분할의 이점은 무엇입니까?
    • A/B 파티셔닝을 사용하면 Android 스마트폰을 사용하는 동안 업데이트할 수 있으며 새 버전으로 부팅할 준비가 되면 재부팅하기만 하면 됩니다. 또한 벽돌에 대한 보호 역할도 합니다. 업데이트가 잘못되면 작업 설치로 돌아가게 됩니다.
  • A/B 분할이 개발을 방해합니까?
    • 개발자가 적응하는 데 약간의 시간이 걸렸지만 대답은 '아니오'입니다. 실제로 개발자가 이전 버전과 새 테스트 버전으로 사용자 정의 ROM을 이중 부팅하여 회귀를 확인할 수 있으므로 개발자에게 도움이 될 수 있습니다.
  • A/B 파티션은 사용자 정의 커널, Magisk 또는 Xposed와 같은 모드에 어떤 영향을 줍니까?
    • 설치 시 주의가 필요하지만 현재는 문제가 없습니다. Magisk는 공식적으로 원활한 업데이트를 통해 장치를 지원하며 올바른 순서로 플래시하는 한 문제가 없습니다. 다른 모드를 플래싱하기 전에 반드시 커스텀 커널을 플래싱하세요. 그러면 잘 될 것입니다.
  • 각 파티션에 두 개의 서로 다른 ROM을 플래시하고 이중 부팅할 수 있습니까?
    • 이론적으로는 그렇습니다. 하지만 공유 데이터 파티션으로 인해 문제가 발생하므로 권장되지 않습니다.
  • A/B 파티션 구성표를 사용하면 저장 공간이 줄어든다는 뜻입니까?
    • 아니요! Google은 원활한 업데이트를 지원하는 기기가 이를 지원하기 위해 수백 메가바이트의 저장 공간만 희생한다고 말합니다. 그 비용보다 이점이 더 큽니다.
  • 내 장치는 A/B 파티션을 지원합니다. 이는 Project Treble 일반 시스템 이미지를 사용할 수 있다는 의미입니까?
    • 반드시 그런 것은 아닙니다. 프로젝트 트레블과 A/B 지원은 서로 관련이 없습니다. Motorola Moto Z2 Force는 Project Treble을 지원하지 않지만 A/B 파티션 구성표를 지원합니다.
  • 내 장치는 Project Treble을 지원합니다. 이는 A/B 파티션 구성표가 있다는 의미입니까?
    • 항상 그런 것은 아닙니다. Honor 9 Lite는 Project Treble을 지원하지만 A/B 파티션 구성표가 없기 때문에 대표적인 예입니다.
  • 먼저 fastboot로 TWRP를 부팅한 다음 플래시해야 하는 이유는 무엇입니까?
    • 이는 fastboot의 작동 방식과 복구 파티션이 더 이상 존재하지 않기 때문입니다. 복구는 부팅 파티션 내부에 위치하므로 boot_a와 boot_b를 모두 수정해야 합니다. fastboot에서는 파티션을 패치할 수 없으며, 플래시오버만 할 수 있습니다. 이론적으로는 미리 패치된 부팅 이미지를 만든 다음 이를 플래시할 수 있습니다.
  • A/B 파티션에 위험이 있나요? 롤백 보호는 어떤 영향을 미치나요?
    • Google은 이것이 문제가 되지 않도록 최선을 다했지만 Motorola Moto Z2의 경우 강제로, 안드로이드로 업그레이드한 후 기기가 이전 슬롯을 다시 활성화하는 사례가 알려진 바 있습니다. 오레오. 이는 롤백 보호가 시작되고 장치 소유자가 EDL 복구를 통해서만 스마트폰을 복구할 수 있음을 의미합니다. Google에서는 롤백 보호가 처음 부팅한 후에만 시작되므로 업데이트 후에 슬롯이 완전히 작동해야 더 이상 다운그레이드할 수 없다고 말합니다.