boot.img를 추출하는 방법은 무엇입니까?

boot.img를 추출하는 방법은 무엇입니까?

boot.imgAndroid 이미지에서 파일 내용을 보려고 합니다.

구글링해서 찾았어요이 기사추출하려고 시도 system.img했지만 작동하지 않습니다 . 다음이 표시됩니다.boot.imgboot.img

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

그냥 simg2img추출 용인가요 system.img?

  1. 그렇다면 그것을 추출하는 다른 방법이 있습니까 boot.img?
  2. 그렇지 않은 경우 추출하지 않으면 어떤 문제가 있습니까 boot.img?

답변1

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

  • 커널(안드로이드에 중요)
  • 램디스크(핵심 명령어 및 바이너리 세트)

포장 풀기 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
    

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

    • unpackbootimg
    • mkbootimg
  3. 그런 다음 실행

    ./unpackbootimg -i <filename.img> -o <output_directory>
    

    내용은 다음 output_directory과 같습니다.

    • boot.img-zImage(핵심)
    • boot.img-ramdisk.gz(가상 디스크)

다음 명령을 사용하여 램디스크를 추출할 수도 있습니다.

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

파일을 변경한 후 다음을 boot.img사용하여 이러한 파일을 다시 패키징할 수 있습니다.mkbootimg

답변2

설치하다 abootimg(패키지로 이용 가능합니다.데비안/우분투그리고SUSE 열기).

발췌 (boot|recovery).img:

$ abootimg -x (boot|recovery).img
$ ls
boot.img  bootimg.cfg  initrd.img  zImage

수정 (boot|recovery).img후 다시 포장 하려면 다음을 수행하십시오.bootimg.cfgzImageinitrd.img

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

답변3

boot.img그런 압축 파일 시스템 이미지는 아닙니다 system.img. 부트로더가 읽으며 커널 이미지와 램디스크 이미지만 포함합니다.

일부 바이너리 배포판은 커널 및 램디스크 이미지를 별도로 제공합니다. 이 경우에는 아무 작업도 수행할 필요가 없으며 boot.imgRebuild를 사용하여 새 것을 생성하면 됩니다 mkbootimg.

에서 정보를 추출해야 하는 경우 boot.img다음을 시도하십시오.split_bootimg(통과윌리엄 엔크, 통과하다안드로이드 위키).

답변4

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

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

boot.img를 복제된 git 저장소에 복사하세요. 달리기:

$ ./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

관련 정보