툴에 아까 반영한 내용이지만 따로 써봄


안드로이드 12부터는 일반적으로 init_boot.img를 매니저로 패치하고 Fastboot에서 플래싱하는데


이걸 레노버 취약점 가진 기기에 적용하려 vbmeta에 포함하면 용량이 원본(8192바이트)보다 커져서 플래싱은 되지만 부팅이 안됨


그래서 vbmeta에 다시 포함할 필요가 없는 GKI 커널 사용하는 boot.img로 루팅을 해야하는데


=


1. 패치할 boot.img를 언팩한다


magiskboot unpack boot.img


=


2. 아래에서 기기에 맞는 버전의 커널 Anykernel3 zip 파일을 다운로드하고 (기기 설정에서 확인하거나 언팩한 kernel 열어서 Linux version 검색)


https://github.com/WildKernels/GKI_KernelSU_SUSFS/releases


예시로 Y703/요가/GT는 전부 6.1.112를 사용하니까 WKSU-13971-SymbolFix-android14-6.1.112-2024-11-AnyKernel3.zip


=


3. 다운받은 압축 파일 내의 Image를 빼서 kernel로 이름바꾸고 아까 언팩한 경로에 덮어씌움


magiskboot repack boot.img


리팩된 이미지는 new-boot.img로 생성된다.


=


4. avbtool로 add_hash_footer는 vendor_boot에 할 때와 마찬가지로 원본 이미지에 맞게 파라미터 잘 지정해서 하면된다


make_vbmeta_image 는 따로 할 필요만 없음 (기존 vbmeta.img 와 vendor_boot.img로 만든거 그대로 쓰면됨)


이렇게 하면 어제인가 그제 누가 공유해준 GT 루팅용 boot.img 와 완전히 info_image가 동일하게 뜸


차이점은 램디스크 유무인데 init_boot로 루팅할때만 필요한거라 kernel 교체만 하고 리팩해도 잘되기 때문에 필요없음