boot.img를 추출하는 방법?

Android 이미지에서 boot.img 파일의 콘텐츠를 보려고합니다.

Google에서 이 기사 를 검색하여 system.img를 추출했지만 boot.img. boot.img에 대해이 작업을 수행하려고하면 다음이 표시됩니다.

Invalid sparse file format at header magi Failed to read sparse file 

simg2imgsystem.img 추출에만 사용됩니까?

  1. 그렇다면 다른 항목이 있습니까? boot.img 추출 방법?
  2. 그렇지 않다면 boot.img를 추출하지 않는 문제는 무엇입니까?

댓글

답변

boot.img는 두 개의 주요 부분을 포함하는 작은 (ish) 파일입니다.

 * kernel(important for android) * ramdisk( a core set of instruction & binaries) 

boot.img 압축 풀기 :

다음 단계를 포함합니다.

  1. wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz

  2. tar xvzf android_bootimg_tools.tar.gz를 사용하여 파일을 추출합니다.

    여기에는 two 바이너리가 포함되어 있습니다.

     * unpackbootimg * mkbootimg 

3. 그런 다음 ./unpackbootimg -i <filename.img> -o <output_path>

It will contain, * boot.img-zImage ----> kernel * boot.img-ramdisk.gz ----> ramdisk 

를 실행합니다.

다음 명령을 사용하여 ramdisk를 추출 할 수도 있습니다.

gunzip -c boot.img-ramdisk.gz | cpio -i 

파일을 변경 한 후

즐기세요!

댓글

  • 세 번째 단계에서 오류가 발생합니다. 제발 도와주세요 … 터미널에 unpackbootimg 명령을 찾을 수 없다는 메시지가 표시됩니다.
  • 여기 Mint 17의 3 단계에서 동일한 오류가 발생합니다. sudo로 실행하고 chmod 755 후에 아무 소용이 없습니다.
  • 3 단계에서 output_path가 이미 있는지 확인하고 그렇지 않으면 unpackbootimg가 세그 폴트됩니다.
  • 도구의 링크가 작동하지 않습니다.
  • 해결 대상 : " unpackbootimg 명령을 찾을 수 없음 ", 32 비트 종속성없이 64 비트 시스템에서 32 비트 바이너리를 실행하고 있습니다. " apt-get install gcc-multilib "

Answer로 설치

boot.imgsystem.img와 같은 압축 파일 시스템 이미지가 아닙니다. 부트 로더에서 읽으며 커널 이미지와 램 디스크 이미지 만 포함합니다.

일부 바이너리 배포판은 커널과 램 디스크 이미지를 별도로 제공합니다. 이 경우 boot.img로 아무것도 할 필요가 없습니다. mkbootimg로 새 항목을 재생성하면됩니다.

boot.img에서 정보를 추출해야하는 경우 split_bootimg ( William Enck , Android Wiki 를 통해)

댓글

  • split_bootimg에 대한 링크가 더 이상 유효하지 않습니다.
  • @NathanOsman 링크로 대체 됨 William Enck ' 페이지의 사본에 추가합니다.

답변

opensuse를 사용합니다. abootimg를 설치했습니다. (boot | recovery) .img를 추출하려면 다음을 실행하십시오.

abootimg -x (boot|recovery).img 

다음 파일을 가져옵니다. : bootimg.cgf, zImage 및 initrd.img 이미지를 압축하려면

abootimg --create (boot|recovery).img -f bootimg.cfg -k zImage -r initrd.img 

그러면 (boot | recovery) .img가 표시됩니다.

즐기세요

답변

다음 도구를 사용하여 Android 부팅 이미지를 추출하고 다시 압축 할 수 있습니다.

$ git clone https://github.com/cfig/Android_boot_image_editor.git 

boot.img를 복제 된 자식 저장소. 실행 :

$ ./gradlew unpack 

처음 실행하려면 인터넷에서 필요한 라이브러리를 다운로드해야합니다. 잠시 기다려주세요. 다음과 같이 “build / unzip_boot /”에서 내용을 얻을 수 있습니다.

build/unzip_boot/ ├── bootimg.json (boot image info) ├── kernel ├── second (2nd bootloader, if exists) ├── boot.img.avb.json (AVB only) └── root 

댓글

  • 이 코드와 프로젝트가 최신 상태이며 유지 관리되므로 이것이 답입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다