Google Pixel 및 Pixel XL용 TWRP가 출시되었습니다.

Google Pixel 및 Pixel XL용 TWRP가 출시되어 마침내 사용자가 맞춤형 모드, 커널 및 ROMS를 플래시할 수 있습니다.

맞춤형 ROM 플래싱을 시작해보세요! 사용자가 우리 포럼에 오는 가장 일반적인 이유 중 하나는 사용자 정의 모드, 커널 또는 플래시를 플래시하는 것입니다. ROM. 개발자들은 다음의 이점을 위해 소프트웨어를 맞춤화하는 데 수많은 시간을 쏟아 붓습니다. 지역 사회. 그러나 이러한 수정 사항을 설치할 수단이 없으면 이 작업 중 어느 것도 실행 가능하지 않습니다.

Android 모딩의 세계로 들어가기 전에 필요한 첫 번째 단계는 부트로더를 잠금 해제하는 것입니다. 사용자의 경우 픽셀 그리고 픽셀 XL, 이 단계는 이미 가능합니다. 모든 변형 두 장치 중. 다음 단계는 사용자 정의 ROM 또는 커널 이미지를 플래시할 수 있을 뿐만 아니라 문제가 발생할 경우를 대비해 전체 시스템 백업을 만들 수 있는 사용자 정의 복구 이미지를 플래시하는 것입니다. 엄청난 인기를 누리고 있는 곳이죠 팀 승리 회복 프로젝트 (TWRP)가 들어옵니다.

거의 모든 OEM의 수많은 장치에서 사용할 수 있는 TWRP는 장치의 소프트웨어를 수정하려는 모든 사람이 선택하는 사용자 지정 복구였습니다. 이제 두 대의 Google Pixel 휴대폰이 곧 그 즐거움에 동참할 수 있게 되었습니다. XDA 수석 인정 개발자 디즈_트로이 방금 첫 번째를 출시했습니다 TWRP알파 구글을 위해 픽셀 그리고 픽셀 XL. 이미 부트로더를 잠금 해제했다면 이제 복구 파일을 장치에 플래시할 수 있습니다. 하지만 TWRP 설치 방식에 주목해야 할 몇 가지 변경 사항이 있습니다.


설치

장치에 TWRP를 수동으로 설치한 적이 있다면 다음 사항에 익숙할 것입니다. 빠른 부팅 TWRP 이미지를 복구 파티션에 플래시하는 데 필요한 명령. Pixel 및 Pixel XL용 Android Nougat에서 작동하기 위한 '원활한 업데이트'를 위한 파티션 변경으로 인해 동일한 명령을 실행하지 않습니다. 알고 있다고 생각하는 모든 것을 잊어버리고 행동하기 전에 다음 지침을 주의 깊게 읽으십시오. 본질적으로 TWRP를 설치하기 위해 실제로 수행할 작업은 다음과 같습니다.

신병 TWRP 이미지를 사용한 다음 자동 설치 스크립트 깜박이는 TWRP를 처리합니다. 둘 다 부팅 파티션.

먼저, 아직 가져오지 않았다면 구글 USB 드라이버 fastboot 바이너리도 포함됩니다(다운로드 및 추출을 권장합니다). 최소 ADB 및 Fastboot 원하는 디렉토리로 이동). 그런 다음 장치에 적합한 TWRP 설치 파일을 다운로드합니다(픽셀 그리고 픽셀 XL). .zip 파일을 장치의 내부 저장소로 이동해야 하지만 .img 파일은 컴퓨터에 그대로 두어야 합니다. 그런 다음 명령 프롬프트를 열고 다음을 실행하여 장치가 인식되는지 확인하십시오. 빠른 부팅 장치 명령 프롬프트에. 장치의 일련번호가 보이면 fastboot 프로토콜이 장치를 감지한 것입니다. 마지막으로 다음 명령을 실행하여 TWRP 이미지를 일시적으로 부팅해야 합니다.

fastboot boot path/to/twrp.img

"path/to/"는 다운로드된 TWRP가 있는 실제 디렉터리를 나타냅니다. 영상 파일이 위치합니다. 발급받고 있는지 확인하세요 빠른 부팅신병 그리고 ~ 아니다 빠른 부팅 플래시, 부팅 중인 파일은 다음과 같습니다. ~ 아니다 zip 파일. 부팅 명령을 실행하면 장치가 컴퓨터에서 TWRP 이미지를 검색하고 일시적으로 TWRP로 부팅됩니다. 이제 거의 완료되었습니다.

지금 해야 할 일은 TWRP를 장치의 부팅 파티션 모두에 플래시하여 재부팅 후에도 유지되도록 하는 것입니다. 다행히도 모든 작업은 이전에 다운로드한 자동 설치 스크립트에 의해 처리됩니다. TWRP 인터페이스를 사용하여 TWRP 설치 zip을 찾아 설치하면 됩니다. 사용자 정의 ROM, 모드 또는 커널 zip을 설치하는 것과 같습니다.. 그 후에는 사용 중인 활성 파티션 슬롯에 관계없이 TWRP에 액세스할 수 있습니다.


TWRP 알파 v1

이것은 알파 출시되면 문제가 생길 수밖에 없습니다. 현재 Dees_Troy는 다음과 같이 설명했습니다. 세 가지 문제 알아야 할 것. 먼저, Nougat에 FBE(파일 기반 암호화)가 도입되면서 데이터 복원에 문제가 발생할 수 있습니다.

파일 기반 암호화(FBE)는 까다로울 수 있습니다. 복원이 제대로 작동하지 않으면 데이터가 자동으로 지워질 수 있습니다. Pixel XL에서 약간 테스트했지만 광범위하게 테스트할 시간이 없었습니다. 때로는 TWRP가 비밀번호를 입력하라는 메시지를 표시하지 않거나 해독을 제대로 설정하지 못하는 경우가 있습니다. 이런 일이 발생하면 TWRP를 재부팅하세요. 일종의 타이밍 문제인 것 같은데 아직 추적할 시간이 없었습니다.

당신에게 그런 일이 일어날 수 있다는 말은 없지만, ~할 수 있었다 당신에게 일어날. 오프라인이나 클라우드에 데이터를 정기적으로 백업하지 않는 경우 문제가 발생하여 전체 데이터가 지워져도 놀라지 마십시오. 나도 전에 그런 일을 겪은 적이 있는데 정말 짜증난다.

업데이트 #2: Dees_Troy는 무엇이 잘못될 수 있는지, 그리고 이를 해결하기 위한 계획에 대해 보다 기술적인 설명을 제공했습니다. 자세한 내용은 기사 끝부분의 두 번째 부록을 참조하세요.

다음으로, 현재 장치에서 다중 사용자 기능(게스트 기능 포함)을 사용하고 있다면 다음을 수행하고 싶을 것입니다. 지금은 TWRP 사용을 피하세요.

파일 기반 암호화는 각 사용자의 폴더가 별도로 암호화됨을 의미합니다. 적절한 백업, 공장 초기화 등을 수행하려면 사용자가 장치의 모든 개별 계정에 대해 암호를 해독하도록 해야 합니다.

현재 TWRP는 장치에 있는 다른 사용자의 암호화 비밀번호를 알고 있는 경우에도 단일 사용자 설정만 지원합니다. Dees_Troy는 명령줄 도구를 사용하여 추가 사용자의 암호를 성공적으로 해독했다고 말했습니다. TWRP에서 이 기능을 구현하는 것은 현재 우선 순위가 높지 않으며 대신 향후 출시될 수 있습니다. 업데이트. 지난 주 XDA Twitter 계정은 Dees_Troy를 대신하여 사용자에게 다중 사용자 기능을 활용하는지 묻는 설문조사를 실시했습니다. 대다수는 다중 사용자를 사용하지 않는다고 밝혔으므로 이 제한이 많은 사용자에게 영향을 미칠 것으로 예상하지는 않습니다. 사람들.

그러나 TWRP를 설치할 대다수의 사용자와 더 관련된 문제가 하나 더 있습니다. 현재, SuperSU는 TWRP와 함께 작동하지 않습니다.

현재 TWRP를 설치하면 현재 루팅된 경우 루트가 제거됩니다. TWRP와 SuperSU가 공존하려면 SuperSU 업데이트가 필요합니다.

업데이트 #1: 현재 SuperSU를 사용하고 있고 TWRP를 플래싱할 계획이라면 기사 끝에 있는 Chainfire의 부록을 참조하세요. Dees_Troy는 XDA-Developers에 대한 이러한 간섭의 이유를 다음과 같이 설명했습니다.

Chainfire는 부팅 이미지의 램디스크를 사용하여 시스템 없는 루트를 수행합니다. 이는 Google이 복구에 사용하려고 했던 것과 동일한 램디스크입니다. 나는 Chainfire가 TWRP와 함께 작동하도록 하는 방법을 찾아낼 수 있을 것이라고 확신하지만 TWRP는 init 바이너리에 약간의 변경이 필요합니다. 해독이 제대로 작동하도록 하려면 Chainfire는 램디스크가 일반 부팅과 부팅 모두에서 작동하도록 하기 위해 초기화 바이너리를 다르게 변경해야 했습니다. 회복.

즉, Chainfire의 시스템리스 루트 방법은 데이터 암호 해독이 작동하도록 하기 위해 TWRP가 수정해야 하는 동일한 바이너리를 수정합니다. 따라서 TWRP를 플래시하면 Chainfire의 시스템리스 루트 방법으로 init 바이너리에 대한 변경 사항을 덮어쓰게 됩니다. 이는 사소한 좌절이지만 Pixel(및 Nougat와 함께 제공되는 향후 장치)의 이중 파티션 특성 덕분에 TWRP에는 몇 가지 멋진 새로운 기능이 있습니다.

Pixel 장치에는 ROM/펌웨어용 '슬롯'이 2개 있습니다. TWRP는 현재 활성화된 슬롯을 감지하고 해당 슬롯을 백업 및 복원에 사용합니다. 재부팅 페이지와 백업 -> 옵션 아래에 슬롯을 변경하는 버튼이 있습니다. 활성 슬롯을 변경하면 TWRP가 TWRP가 백업하거나 복원하는 슬롯을 전환하게 됩니다. 슬롯 A의 백업을 만들고 B로 전환한 다음 A의 백업을 슬롯 B에 복원하는 백업을 복원할 수 있습니다. TWRP에서 슬롯을 변경하면 부트로더가 해당 슬롯을 부팅하도록 지시합니다.

이것이 본질적으로 의미하는 바는 곧 다음과 같은 작업을 수행할 수 있다는 것입니다. 듀얼 부팅 귀하의 장치에서. 불행히도 사용자 정의 복구가 있기 때문에 단지 출시된 후에는 여러분이 좋아하는 맞춤 ROM 개발자가 주방에서 Pixel 휴대폰용 무언가를 요리하는 데 시간이 좀 걸릴 것입니다.


부록 #1 - TWRP가 포함된 SuperSU

Chainfire는 현재 Google Pixel 또는 Pixel XL에서 SuperSU를 사용하는 사람은 누구나 다음과 같은 정보를 받았습니다. 강력히 권고함 TWRP를 설치하기 전에 스톡 부팅 이미지를 두 파티션 모두에 플래시합니다. 이 작업을 수행하려면 다음을 다운로드해야 합니다. 공장 이미지 장치에 대해 아카이브에서 스톡 부팅 이미지를 수동으로 추출합니다. 그런 다음 다음과 같이 fastboot를 사용하여 두 파티션 모두에 부팅 이미지를 플래시해야 합니다.

fastbootflashboot_aboot.img
fastbootflashboot_bboot.img

이 두 명령을 모두 실행하면 공장 이미지의 기본 부팅 이미지가 장치의 두 부팅 파티션으로 플래시됩니다. 그런 다음 TWRP 설치를 진행할 수 있습니다.


부록 #2 - TWRP를 사용한 파일 기반 암호화

Dees_Troy와의 대화에서 그는 복원이 잘못되어 전체 데이터가 삭제될 수 있는 경우에 대해 다음과 같이 설명했습니다.

ext4 파일 기반 암호화에서는 비어 있지 *않은* 폴더에 암호화 정책을 적용하는 것을 허용하지 않습니다. 현재 우리는 선택한 폴더 목록을 삭제하지 않음으로써 이 문제를 해결하고 있습니다(폴더 내부의 항목은 삭제할 수 있지만 폴더 자체는 삭제할 수 없음). 어떤 이유로 암호화해야 하는 폴더가 삭제되면 복원 시 암호화되지 않은 폴더가 생성된 다음 해당 폴더가 일부 항목으로 채워질 수 있습니다. 폴더가 비어 있지 않으면 암호화를 설정할 수 없습니다. 기기가 Android를 다시 부팅하면 init 바이너리는 암호화 정책 설정을 시도하고, 정책 설정 시 오류가 발견되면 강제로 초기화합니다. 이것은 정확하게 그런 종류의 일에 관심이 있다면 오류가 발생하는 위치와 초기화가 시작되는 위치입니다.

덜 기술적으로 말하면, NANDroid 백업을 복원하는 동안 복구는 백업에 저장된 파티션의 필요한 기존 파일을 모두 덮어써야 합니다. 데이터 파티션의 파일에 액세스하려면 복구 시 암호 해독 암호를 사용하여 이 파티션의 암호를 해독해야 합니다. 복구에는 데이터 및 시스템 파티션의 모든 폴더를 삭제하고 덮어쓰는 기능이 있지만 그렇게 하면 암호화 정책에 오류가 발생할 수 있습니다.

암호화할 폴더를 삭제하면 TWRP는 그 자리에 암호화되지 않은 폴더를 생성하고 이 새 디렉터리의 백업에서 모든 파일을 복원합니다. 그러나 파일 기반 암호화는 암호화 키와는 달리 다양한 암호화 키를 사용하여 다양한 파일과 폴더를 암호화하기 때문에 전체 파티션에 대해 이 단일 변경으로 인해 장치의 단일 폴더에 대한 암호화가 중단되면 전체 체인에서 오류. Android의 정책은 전체 데이터 삭제를 시작하여 Android가 삭제되는 것입니다. 모든 것 내부 저장소에 있습니다.

다행히 Dees_Troy는 이미 폴더 목록을 확인했습니다 이 오류가 발생하지 않도록 TWRP의 삭제 프로세스에서 제외해야 합니다. 그는 복원 중에 오류를 유발하지만 장치를 지우지는 않도록 init 바이너리를 교체하여 삭제해서는 안 되는 폴더를 정확하게 기록할 수 있게 했습니다. 전체 폴더 목록이 제공되었지만 길이 때문에 해당 목록을 여기에 재현하지는 않습니다.


Google Pixel용 TWRP 다운로드

Google Pixel XL용 TWRP 다운로드

장치에서 맞춤형 ROM이나 커널을 실행할 계획입니까, 아니면 재고 펌웨어를 계속 사용할 예정입니까? 아래 댓글로 알려주세요!