1. 무슨 일이 벌어지고 있나?

- 샤오신패드 12.7“, 2024 등에서 봤었던 반글화 방지책이 Y700같은 다른 모델로 수평 전개가 되고 있다

- Y700 2세대 모델이 최근 가장 높은 버전으로 업데이트되어 ZUI 글로벌, NEC 펌웨어를 설치하는 게 다운그레이드가 된 상태다

2. 다운그레이드 하면 왜 안 되는가?

- 부트로더가 잠겨 있는 경우 부트로더의 vbmeta 이미지에 롤백 인덱스라는 값이 단방향으로 기록된다
이 롤백 인덱스는 부트로더가 부팅 시에 참고하는 값인데, 시스템 이미지(OS; 안드로이드 시스템)가 가지고 있는 값과 vbmeta 이미지가 가지고 있는 값을 비교해서 현재 깔려 있는 이미지(롬)가 버전이 더 낮을 경우 부팅을 중단시키게 된다. 더 높을 경우 vbmeta 이미지의 버전 정보를 갱신한다.

- 부트로더가 언락된 경우 vbmeta 이미지를 갱신하지 않고, 참조도 하지 않는다
다운그레이드를 하더라도 부팅이 가능하다.

3. 레노버 Rescue 프로그램은 무엇을 하고 있나?

- 펌웨어 EDL 다운로드 모드로 펌웨어를 설치하는 놈이다
부트로더 언락을 하지 않았는데 설치가 되는 이유는 그냥 진입한 세션의 종류가 달라서 그렇다. 이 프로그램을 사용하면 부트로더 언락을 안 해도 된다고 하는 놈이 있는데 (2)번 내용을 보면 반은 틀리다는 걸 알아야 한다. 다운그레이드가 된다면 부팅이 되지 않는다. 이건 개발자가 직접 확인하고 막을 수가 있긴 한데 니네가 인식도 안 되는 걸 깡으로 올려서 벌어진 사고다.

4. 부트로더 언락을 하면 Widevine이 L3으로 강등된다는데

- 틀린 말이다
부트로더 언락을 할 경우 Google Play Integrity API 호출에서 낮은 보안 레벨이 나오게 된다. 넷플릭스같은 OTT는 이 반환값을 보고 SD로 해상도를 낮추는 거다. Widevine L1 인증값은 벤더 영역에 읽기 전용으로 저장돼 있고 일부러 일을 저지르지 않는 이상 부트로더 언락만으로 날아가진 않는다.
이 고유 키 값이 살아있다는걸 전제로 부트로더를 언락했을 때도 Widevine L1을 써먹는 방법이 있다. Play Integrity의 반환값을 변조되지 않은 시스템이라고 속이는 방법이다.
https://github.com/chiteroman/PlayIntegrityFix




5. 해야 할 게 뭐가 있는가?

- 롤백 인덱스가 글로벌 펌웨어보다 낮을 경우
레스큐로 지금 설치하고 국가 코드까지 바꿔 둬라.

- 문제의 최신 패치를 설치했을 경우
부트로더를 언락한 후에 레스큐로 설치하고 역시 국가 코드를 바꿔 둬라. OTA 업데이트를 통해 롤백 인덱스 문제가 해결됐다 싶으면 그때 부트로더를 잠구면 된다.

- 나중에 막혀서 벽돌되는 경우가 있다는데
읽기 전용 영역에 기기의 정보가 담겨 있으므로 부트 과정에서 가드 구문으로 부팅을 멈출 가능성을 100% 부정할 수는 없다. 이 경우 부트로더를 잠구지 않고 Play Integrity fix를 깔아서 쓰면 된다. 내 예상으로는 이 기기들의 사용자가 많기 때문에 기기정보를 조작할 방법을 찾는 사람이 나올 거라 본다.