[컴][안드로이드] .img 압축 풀기 / .img 에서 내용 추출하기

img 추출/ img unpack


sdk/system-images/android-18/armeabi-v7a/
안에 들어있는 .img 를 추출(extract) 해 봤다.
  • system.img
  • ramdisk.img
  • userdata.img

userdata.img / system.img

simg2img

system.img 는 simg2img 로 extract 할 수 있다고 해서 시도 해 봤다. 하지만 Bad magic number 만 보여주고 풀리지 않았다.

ref. 1 에 따르면 simg2img 는 compressed ext4 img 에 쓰인다고 한다. Bad magic 이라고 뜨는 이유는 simg2img 를 이용해서 yaffs2 를 읽으려고 해서 발생한다고 한다.

하지만 아래 두 글에서 추출한 system.img 를 simg2img 를 이용해서 raw 포맷으로 변환했다.


추출한 system.img 와 sdk 의 img 가 다를 가능성이 충분히 있다.
build simg2img
  • 4.1.1_r1 이전버전
  • 이후버전
simg2img 를 만들고 나서 img 를 다음과 같이 풀 수 있다.
  • simg2img system.img system.raw.img


여하튼, 여기서는 sdk 에 존재하는 .img 를 extract 하기로 한다.

참고로, sdk .img 는 다음 경로에 존재한다.

  • android-sdk-linux/system-images/android-15/armeabi-v7a/



unyaffs2

그래서 userdata.img 와 system.img 는 yaffs file system 을 사용하기 때문에 unyaffs2 를 사용하면 된다.(unyaffs2(yaffs2utils) 홈페이지)

unyaffs2 --yaffs-ecclayout ./userdata.img ./out_directory
참고로 linux 용이다. linux 에서 samba 로 fat32 filesystem 을 mount 하고, 그곳에 out_directory 를 설정했는데, symbolic link 때문에 정상적으로 압축이 풀리지 않았다. 그래서 local 에 풀었다.

windows 용은
https://code.google.com/p/yaffey/
에서 찾을 수 있다.

ramdisk.img

rmadisk.img 를 unpack 하는 방법은 ref.2 , ref. 3 에 나와있는 설명을 정리한다. gzip 으로 되어 있어서 압축을 풀고, cpio 를 사용해서 다시 한번 unpack 하면 된다. 방법은 아래와 같다.
  1. gunzip ramdisk.img
  2. cpio -i -F ramdisk.img

See Also

  1. http://blog.naver.com/xodlftm/140180258121 : 폰에서 system.img 추출하기, adb 이용


References

  1. Mount Android emulator images
  2. http://wongfei.blog.me/10102676556
  3. ANDROID’S PARTITION IMAGES, Lindus Embedded, Embedding Open Source
  4. Mount Android emulator images - Stack Overflow



댓글 4개:

  1. 윈도우7에서 img파일을 추출할려고 합니다
    yaffey 윈도우용까지 다운받아놔서 사용할려고하니 어떻게 써야되는지 막막하네요ㅠㅠ

    답글삭제
    답글
    1. 일단 android sdk 를 받으셨다면, 그 path 에 가셔서 .img 를 찾으시면 system-image 를 찾으실 수 있을 듯 합니다. 위에 path 를 추가하긴 했는데, ref. 4 을 참고한 내용이라 확실하진 않습니다만, system-images 라는 폴더에 있는 듯 합니다.(제가 요새 android sdk 를 지워서요 )

      그곳에 .img 를 다른 곳에 copy 하시고 그 .img 를 unyaff 하시면 될 듯 합니다.(본문내용 참고.)

      삭제
    2. 만약 어떤 폰에서 추출하시려면, 이글보다는 루팅펌웨어 제작등에 나와있는 내용을 보시는 것이 나을 듯 합니다.(본문있는 링크, http://tody.egloos.com/5734050 , 도 도움이 될 듯 합니다.)

      삭제
    3. 감사해용ㅎㅎ

      삭제