Android 이미지에서 boot.img
파일의 콘텐츠를 보려고합니다.
Google에서 이 기사 를 검색하여 system.img
를 추출했지만 boot.img
. boot.img
에 대해이 작업을 수행하려고하면 다음이 표시됩니다.
Invalid sparse file format at header magi Failed to read sparse file
simg2img
는 system.img
추출에만 사용됩니까?
- 그렇다면 다른 항목이 있습니까?
boot.img
추출 방법? - 그렇지 않다면
boot.img
를 추출하지 않는 문제는 무엇입니까?
댓글
답변
boot.img는 두 개의 주요 부분을 포함하는 작은 (ish) 파일입니다.
* kernel(important for android) * ramdisk( a core set of instruction & binaries)
boot.img 압축 풀기 :
다음 단계를 포함합니다.
-
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz
-
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.img
는 system.img
와 같은 압축 파일 시스템 이미지가 아닙니다. 부트 로더에서 읽으며 커널 이미지와 램 디스크 이미지 만 포함합니다.
일부 바이너리 배포판은 커널과 램 디스크 이미지를 별도로 제공합니다. 이 경우 boot.img
로 아무것도 할 필요가 없습니다. mkbootimg
로 새 항목을 재생성하면됩니다.
boot.img
에서 정보를 추출해야하는 경우 split_bootimg
a를 사용해보세요. > ( 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
댓글
- 이 코드와 프로젝트가 최신 상태이며 유지 관리되므로 이것이 답입니다.
boot.img
의 압축을 풀고 편집하는 방법은 무엇입니까?