Computer >> 컴퓨터 >  >> 문제 해결 >> Android

소스 코드 없이 안드로이드용 TWRP 이식하는 방법

TWRP는 안드로이드 기기에서 가장 널리 사용되는 커스텀 리커버리입니다. 하지만 안타깝게도 모든 기기에서 작동이 보장되는 "범용" TWRP는 존재하지 않습니다. 실제로 기기 인기 부족 등의 이유로 TWRP가 제공되지 않는 기기도 많습니다.

만약 이런 기기를 사용 중이라면 직접 포팅하는 것이 생각보다 어렵지 않습니다. 이 가이드에서는 소스 코드 없이 TWRP를 포팅하는 방법을 소개합니다. 필요한 것은 기기의 스톡 리커버리와 Android Image Kitchen뿐입니다. 여기서는 Linux 버전의 Android Image Kitchen을 사용하며, Windows 버전은 절차가 다소 까다롭고 오류가 발생하기 쉽기 때문입니다.

참고로 소스에서 직접 TWRP를 빌드해 포팅하고 싶다면 "안드로이드용 TWRP DIY 포팅 가이드"를 참고하시기 바랍니다.

준비물

  • 기기의 스톡 리커버리(recovery.img)
  • TWRP (기기 화면 해상도에 맞는 버전 다운로드):
    • TWRP 480×850
    • TWRP 720×1280
    • TWRP 1080×1920
  • Android Image Kitchen (Linux 버전)

포팅 절차

  1. Android Image Kitchen 파일을 다운로드한 뒤 별도 폴더에 압축 해제합니다.
  2. 스톡 recovery.img 파일을 압축 해제된 AIK 폴더 안에 넣습니다.
  3. 압축 해제된 폴더 내부에서 마우스 오른쪽 버튼을 클릭하고 "여기서 터미널 열기"를 선택합니다.
  4. Linux 터미널에 다음 명령어를 입력합니다: ./unpackimg.sh
  5. 스톡 리커버리 이미지가 ramdisk와 split_img라는 두 개의 새 폴더로 압축 해제됩니다. 이 시점에서 터미널을 닫지 마세요.
  6. 새로 생성된 ramdisk와 split_img 폴더를 AIK 폴더 밖으로 이동시킵니다.
  7. AIK 폴더 안에 남아 있는 스톡 recovery.img를 삭제합니다.
  8. 준비물 섹션에서 다운로드한 twrp_recovery.img 파일을 AIK 폴더로 복사합니다.
  9. Linux 터미널에 다시 ./unpackimg.sh를 입력합니다.
  10. twrp_recovery.img가 앞서 스톡 recovery.img와 동일한 방식으로 압축 해제됩니다.
  11. split_img 폴더(방금 압축 해제한 TWRP 이미지의 폴더이며, 이전에 옮겨둔 스톡 이미지의 폴더가 아님)로 들어가 그 안의 모든 파일을 삭제합니다.
  12. 스톡 split_img 폴더의 모든 파일을 TWRP split_img 폴더로 복사합니다.
  13. TWRP ramdisk 폴더에서 다음 파일들을 삭제합니다:
    - default.prop
    - fstab.devicename_or_chipsetname
    - ueventd.rc
    - ueventd.devicename.rc 등 기타 유사한 이름의 파일
  14. 스톡 ramdisk 폴더에서 아래 파일들을 TWRP ramdisk 폴더로 복사합니다:
    default.prop
    fstab.devicename
    ueventd.rc
  15. 스톡 ramdisk/etc 폴더로 들어가 recovery.fstab을 복사한 뒤, TWRP ramdisk/etc 폴더에 넣습니다.
  16. 텍스트 편집기로 twrp.fstab과 recovery.fstab 파일을 모두 열고, twrp.fstab의 속성들이 recovery.fstab의 속성과 올바르게 일치하도록 수정합니다.
  17. 이때 "/sdcard"는 "/external_sd"로, "/usb"는 "/usb-otg"로 교체해야 합니다.
  18. fstab 파일에 해당 파티션이 정의되어 있지 않다면 다음 줄을 추가합니다:
    /external_sd          vfat         /dev/block/mmcblk1p1  flags=removable;storage;display="SDCARD"
    /usb-otg              auto         /dev/block/sda1       flags=removable;storage;display="USB-OTG"
  19. default.prop에서 다음 항목들을 아래와 같이 수정합니다:
    ro.secure=0
    ro.adb.secure=0
    security.perf_harden=0
    ro.debuggable=1
    persist.sys.usb.config=adb,mtp
  20. ramdisk 폴더에서 빠져나온 뒤 터미널을 실행하고 다음 명령어를 입력합니다: ./repackimg.sh
  21. TWRP .img가 재패키징되며 기본적으로 "image-new.img"라는 이름으로 저장됩니다. 원하는 경우 파일명을 변경할 수 있습니다.

미디어텍(MediaTek) 기기 지침

참고: 스톡 recovery.img를 압축 해제한 후 얻게 되는 recovery.fstab 파일에는 결함이 있을 수 있으며, 대부분 OEM이 의도적으로 넣어둔 것입니다. 어떤 파티션이 어느 위치와 디바이스에 마운트되는지 확인하려면 Play 스토어에서 DiskInfo 앱과 루트 탐색기 앱을 설치해야 합니다.

DiskInfo 앱을 실행한 뒤 다음 설정이 활성화되어 있는지 확인합니다:

  • 마운트 경로 표시(Show mount path)
  • 파티션 이름 표시(Show partition name)
  • 파일 시스템 표시(Show file system)
  • 전문가 모드(Expert Mode)
  • 마운트되지 않은 파티션 표시(Unmounted partitions)
  • Device Mapper 파티션 표시
  • 임시 파일 시스템 표시(Temporary filesystems)

이후 루트 탐색기 앱을 실행해 각 파티션의 경로를 찾습니다. 일반적으로 /dev 아래에 위치하며, /system이나 /cache 같은 일부 파티션은 더 깊은 경로에 있습니다.

정확한 위치를 추적해야 한다면 /dev 디렉토리 내부로 이동해 "mmcblk0p5" 같은 파티션 이름을 검색하면 됩니다.

recovery.fstab이 존재하지 않는 기기

스톡 recovery.img를 압축 해제했는데도 recovery.fstab 파일이 생성되지 않는 기기가 있습니다. 이 경우 몇 가지 방법을 시도해 볼 수 있습니다.

먼저 ramdisk/etc 폴더를 확인해 보세요. 링크 심볼이 붙은 더미(dummy) recovery.fstab 파일이 숨어 있을 수 있습니다.

더미 파일을 마우스 오른쪽 버튼으로 클릭하고 "대상 표시(Show Target)"를 선택하면 원본 recovery.fstab의 실제 위치가 표시됩니다. 경우에 따라 OEM이 /vendor/etc 폴더처럼 다른 위치에 원본 파일을 배치해 두기도 합니다.