티스토리 뷰

이 강좌에서 boot.img를 분해하고 조립(?)하는 방법을 배워보겠습니다

일단 첨부파일을 모두 받아주세요

 

또한 이 강좌를 위해선 우분투가 있어야 하며 또한 각종 사용법은 아셔야 진행하실수 있습니다

그리고 원본 boot.img를 준비해 주세요

 

 

모든 파일을 한폴더에 모와주세요

그리고 터미널로 그 폴더로 이동해 줍니다

 

이 강의에선 이해하기 쉽게 boot라는 폴더를 사용하겠습니다

 

다음 명령어로 폴더에 들어갑니다

cd ~/바탕화면/boot

 

그뒤 권한을 부여해줘야 합니다

chmod 777 unpackbootimg

chmod 777 split_bootimg.pl

chmod 777 mkbootimg

 

권한을 모두 주셨으면 본격적으로 작업에 들어갈까요?ㅎ

./split_bootimg.pl boot.img

를 입력하시게 되면 Page size, Command line이 나타나게 됩니다

꼭 기억해 두세요!

 

그다음

./unpackbootimg -i boot.img

을 입력하시게 되면 BOARD_KERNEL_BASE이 나타납니다 이것도 중요합니다!

 

이제 램디스크 압축을 풀어봅시다

gzip -d boot.img-ramdisk.gz

위 명령어를 입력하게 되면 cpio가 나타나게 됩니다

이 파일을 ramdisk라는 폴더를 만들어 그 폴더안에 넣어 주세요

 

cpio -i -F boot.img-ramdisk

이제 위 명령어를 입력하시면 cpio의 내용물이 풀려지게 됩니다

 

이제 boot.img-ramdisk파일은 삭제하셔도 됩니다

 

 

마음것 램디스크를 수정하세요!!


램디스크를 모두 수정하셨다면 합쳐야 합니다

램디스크 파일이 들어있는 폴더속에서

find . | cpio -o -H newc -O ../ramdisk

cd ..

gzip ramdisk

를 입력하시면 램디스크 파일이 나타나게 됩니다

 

이제 커널과 램디스크 파일을 합쳐야 합니다

./mkbootimg --cmdline "(아까 얻은 Command line값)" --base 0x(아까 얻은 base값) --pagesize (아까 얻은 pagesize 값) --kernel boot.img-kernel --ramdisk ramdisk.gz -o make-boot.img

 

(위 mkbootimg명령어는 길어보이지만 한줄로 한번에 입력하셔야 합니다)

 

아래는 M31님의 게시글안 사진 일부입니다

이 두 사진을 참고하셔서 입력하시면 됩니다

 

이제 완료되었습니다!

make-boot파일이 완성되었습니다!

이것을 이제 기기에 적용하면 끝나게 됩니다


위 명령어는 txt파일로 올려두었습니다

 

boot.img 분해 조립.txt



mkbootimg



unpackbootimg



split_bootimg.pl



요즘 나온 스마트폰들은 대부분 ramdiskaddr을 지정해 주어야 부팅이 됩니다

만약 부트 이미지 분해시 ramdiskaddr이 나올경우 아래 mkbootimg링크를 따라 들어가 업데이트된 파일을 받은다음 ./mkbootimg 명령어 마지막 부분(-o)전쪽에 "--ramdiskaddr 0x값" 을 넣어 주시면 됩니다


2013/03/24 - [강좌/팁/Ubuntu 강좌] - mkbootimg


2013/01/27 - [강좌/팁/Ubuntu 강좌] - 우분투 64Bit unpackbootimg 오류 해결법



신고
댓글
  • 이승훈 안됩니다....
    find . | cpio -o -H newc -O ../ramdisk
    부분에서 막히네요 /ramdisk 디렉토리를 찾을수 없다면서
    2013.08.10 09:31 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 1. 대소문자가 잘못됬거나 띄어쓰기등의 문제
    2. 말씀하신 명령어는 램디스크 폴더 안에서 실향하는 명령어 입니다
    3. 오류를 구체적으로 말씀해 주세요 어떻게 오류가 뜨는지
    2013.08.10 09:35 신고
  • 이승훈 그리고 cd.. 도 안먹힙니다..
    우분투 버전은 12.10 이고요..
    2013.08.10 09:36 신고
  • 이승훈 leeseunghun@leeseunghun-300E5EV-300E4EV-270E5EV-270E4EV:~/바탕화면/boot/ramdisk$
    cd boot
    bash: cd: boot: 그런 파일이나 디렉터리가 없습니다
    leeseunghun@leeseunghun-300E5EV-300E4EV-270E5EV-270E4EV:~/바탕화면/boot/ramdisk$
    cd /boot
    leeseunghun@leeseunghun-300E5EV-300E4EV-270E5EV-270E4EV:/boot$ cd /바탕화면/bootbash: cd: /바탕화면/boot: 그런 파일이나 디렉터리가 없습니다
    leeseunghun@leeseunghun-300E5EV-300E4EV-270E5EV-270E4EV:/boot$ cd ~/바탕화면/boot
    leeseunghun@leeseunghun-300E5EV-300E4EV-270E5EV-270E4EV:~/바탕화면/boot$ find . | cpio -o -H newc -O ../ramdisk
    22835 blocks
    leeseunghun@leeseunghun-300E5EV-300E4EV-270E5EV-270E4EV:~/바탕화면/boot$ cd..
    cd..: command not found
    leeseunghun@leeseunghun-300E5EV-300E4EV-270E5EV-270E4EV:~/바탕화면/boot$ find . | cpio -o -H newc -O ../ramdisk
    22835 blocks
    이런식으로 오류가 뜹니다..
    2013.08.10 09:38 신고
  • 이승훈 ramdisk 폴더 안에서 할시 디렉토리를 찾을수 없습니다 라고 뜹니다 2013.08.10 09:39 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) cd뛰고..입니다
    cd같은 기본 명령어도 안먹힌다면 PATH를 잘못 설정하신듯 한대
    sudo gedit ~/.bashrc의 맨마지막 export PATH부분 알려주세요
    2013.08.10 09:39 신고
  • 이승훈 cpio: Cannot open ../ramdisk: 디렉터리입니다
    2013.08.10 09:40 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) ramdisk 22835 blocks

    램디스크는 만들어 졌내요

    그리고 쭉 보니 cd명령어를 모르시는듯합니다
    네이버에서 cd에 대해 조금 살펴보시는갓을 추천드립니다

    cd (어쩌구)
    어쩌구라는 폴더로 이동한다 이때 그 폴더는 타미널이 위치한 경로에 있어야 한다

    cd ..
    상위 폴더로 이동한다

    cd /절대경로
    절대경로로 이동한다
    2013.08.10 09:42 신고
  • 이승훈 그런 구문을 찾을 수 없군요.. 2013.08.10 09:43 신고
  • 이승훈 넵 감사합니다!!! 2013.08.10 09:44 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) ramdisk 22835 blocks

    램디스크는 만들어 졌내요

    그리고 쭉 보니 cd명령어를 모르시는듯합니다
    네이버에서 cd에 대해 조금 살펴보시는갓을 추천드립니다

    cd (어쩌구)
    어쩌구라는 폴더로 이동한다 이때 그 폴더는 타미널이 위치한 경로에 있어야 한다

    cd ..
    상위 폴더로 이동한다

    cd /절대경로
    절대경로로 이동한다
    2013.08.10 09:48 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) cd뛰고..입니다
    cd같은 기본 명령어도 안먹힌다면 PATH를 잘못 설정하신듯 한대
    sudo gedit ~/.bashrc의 맨마지막 export PATH부분 알려주세요
    2013.08.10 09:48 신고
  • NeD 미르님 블로그 항상 잘 보고 있습니다.

    그런데 저 위의 ramdiskaddr 지원 mkbootimg 파일 링크가 열리지 않네요.. 확인해주시면 감사드리겠습니다.
    2014.02.19 19:45 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) http://whdghks913.tistory.com/m/181

    입니다~
    2014.02.19 20:20 신고
  • 갤5 갤럭시 S5 순정 펌웨어 받아서 boot.img 파일을 분해 후 다시 합치는 방식으로 진행을 해보았는데,
    파일용량도 다르게 나오고
    올리면 부팅이 안되게 되네요..
    이유를 알 수 있을까요?
    2014.08.10 13:44 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 최신 스마트폰의 boot.img 분해/조립시 dt.img가 필요하다?! http://itmir.tistory.com/502

    최신 기기부터 boot.img가 조금 달라진듯 합니다
    직접 확인해서 원인을 알고싶은대 제가 최신 기기가 없어서 방법을 알고있지 않습니다..
    방법을 찾은후 새로 글을 작성할 예정입니다
    2014.08.10 13:53 신고
  • tail 미르님 boot-img-kernel 과 boot-img-zImage는 같은파일인가요?? 2014.12.24 13:31 신고
  • 돌핀이 미르님 cpio를 ramdisk폴더로 복사하라는 이야기가 어떤 의미인지요???
    cpio라는 파일이 만들어 지는 건지요???
    2017.03.15 10:02 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 네. 우분투 상에서 cpio라는게 보이실겁니다. 그걸 ramdisk 폴더로 복사해주세요. 2017.03.15 15:21 신고
댓글쓰기 폼