2013년 8월 25일 수정 사항 : 권한 문제로 인하여 바이너리가 없고 설치할 수 없다고 뜨는 문제를 해결하였습니다. su의 권한을 6755가 아닌 4755로 변경하여 권한을 부여해주시기 바랍니다. 6755로 문제없으신 분들은 6755로 사용하시면 됩니다.


갤럭시 시리즈는 루팅펌웨어를 제작해서 오딘을 해용하여 펌웨어를 올리면 루팅카운트(커스텀 바이너리 카운트)를 올리지않고 루팅이 가능합니다.


루팅펌웨어를 쉽게 구할 수 있으면 다행이지만 그렇지 못한 경우도 있습니다. 그래서 이번에는 루팅펌웨어를 제작하는 법을 포스팅하겠습니다.




추천은 블로거를 힘나게 합니다.

손가락 콕 찍고 시작하겠습니다!


루팅펌웨어는 리눅스 상에서 만들어야 합니다. 가상머신을 통하여 리눅스를 구동하던가 멀티부팅을 이용하여 리눅스를 사용하여야 합니다.


리눅스 운영체제가 없는 분은 다음 링크를 통하여 우분투를 설치하세요.


우분투 13.04 64비트 설치법 : http://crampstory.tistory.com/29


1. 파일 준비


먼저 필요한 파일을 준비하겠습니다. 리눅스 상에서 준비하는 것을 추천드립니다. 복사해오는 수고를 덜 수 있으니까요.


1. ext4fs util : 압축된이미지를 풀고 수정후에 다시 압축해주는 툴입니다. 파일은 첨부해 놓겠습니다. 첨부된 파일은 우분투 13.04 64비트에서 컴파일된 파일입니다. 


ext4fs_util.tar


혹시 직접 컴파일 하실분은 이곳 에서 직접 받아서 컴파일후에 사용하시기 바랍니다. 첨부된 두파일 모두 받아서 각각 압축을 푸신후에 터미널로 각 폴더 진입후에 각각에서 make를 해주세요. 그런후 New버전에서 ext2simg 와 make_ext4fs를 꺼내쓰시고 구버전에서 simg2img를 꺼내서 사용하시면 됩니다.


2. 순정펌웨어 : 본인이 소유한 기기의 순정펌웨어 파일이 필요합니다. 이 파일을 수정하여 루팅펌웨어를 제작합니다. 노트2의 순정팜은 이 블로그에 있지만 다른기기를 소유하신 분들은 직접 구하시기 바랍니다.


3. SuperSu 어플 파일과 su바이너리 : 이 두파일을 순정펌안에 넣을 것입니다. 첨부된 파일은 SuperSu 1.51버전의 파일입니다.


supersu.tar


역시 마찬가지로 직접 구하실 분은 이곳 에서 직접 받으신후에 system/app/Superuser.apk 파일과 system/xbin/su 파일을 따로 빼두세요. CWM / TWRP / MobileODIN installable ZIP 이라고 써있는 부분에서 다운 받으시면 됩니다.


다음 스크린샷 처럼 받으신 파일은 펌웨어를 제외하고는 적당한 곳에 압축을 풀어주세요.



저는 내폴더안에 firmware폴더와 working폴더를 만들었습니다. 그리고 working 폴더안에 system폴더도 하나 만들어주세요.


순정펌웨어 : 내폴더/firmware/                    (펌웨어 이름은 외우기 쉽도록 간단하게 바꿔주세요)

Superuser.apk , su : 내폴더/working/

ext4fs util : 내폴더/working/util


이렇게 폴더를 정해서 넣었습니다. 터미널에서 폴더사이를 이동할 것이기 때문에 각 경로를 기억해주세요. 여기서는 펌웨어이름을 E250SMF6.tar 로 설정하였습니다.


2. 권한 획득 및 util 설치


앞으로의 작업은 root권한이 필요한 작업입니다. 리눅스의 root권한을 얻어 보도록 하겠습니다.


먼저 윈도우 키를 눌러서 검색창을 띄어주세요. 그리고 terminal을 검색하시기 바랍니다. ter만 쳐도 맨 앞에 나타납니다.


터미널을 눌러서 실행하셔도 되고 옆에 가젯바에 넣으셔도 됩니다.


터미널을 실행하시고 다음 명령어를 쳐주세요. 앞으로 나올 명령어는 대문자 소문자 확실하게 구분해주셔야 합니다.


  sudo passwd


그러면 처음에 사용자 패스워드를 묻습니다. 로그인할때 혹은 설치시에 설정한 암호를 넣어주세요.


그런후에 UNIX 패스워드를 묻습니다. 원하는 패스워드를 입력하세요. 화면상에는 나타나지 않지만 입력이 되고 있는 것입니다.


재확인 패스워드도 똑같이 입력해주세요. 그런 후에 다음 명형어를 쳐주세요.


  su 


그러면 패스워드를 입력하라고 합니다. 위에서 설정한 패스워드를 입력하시면 루트 권한을 얻습니다. 다음 스크린샷처럼 커서앞에 #이 나타나야합니다.



루트권한을 획득했으니 util파일을 bin폴더로 옮겨서 어디서나 실행이 가능하도록 하겠습니다. 다음 명령어를 입력해주세요.


  cd working/util

  cp * /bin

  cd ..

  cd ..


3가지 유틸이 있는 폴더에 들어가서 3개의 파일을 /bin 폴더로 복사해넣는 명령어입니다. 폴더명이 다르다면 설정한 폴더를 입력하세요. 복사한후에 내폴더로 다시 돌아오는 명령어까지 있습니다. 특별한 결과는 나타나지 않습니다.


3. 루팅펌 제작


이제 펌웨어파일의 압축을 풀고 우리가 필요한 system.img 파일을 작업 공간으로 옮겨보겠습니다.


지금까지의 과정을 그대로 따라오셨다면 터미널창에 root@~~~~~:/home/(사용자)# 이런식으로 나타나 있을 것입니다.이 상태에서 다음 명령어를 입력하여 주세요.


  cd firmware

  tar xvf E250SMF6.tar

  cd ..


그러면 펌웨어 폴더에 내용물의 압축이 풀어져서 나타납니다. 압축이 다 풀어지면 탐색기를 통하여 확인하실 수 있습니다. 그중에서 system.img파일을 working폴더로 옮겨주세요.



위 스크린샷은 압축을 풀어서 나온 system.img를 working폴더로 옮겨놓은 모습입니다.


이제 본격적으로 파일 수정을 해보겠습니다. 일단 sparse 이미지를 non-sparse이미지로 바꿀것입니다. 마운트가능한 이미지로 바꾸는 작업입니다.


  cd working

  simg2img system.img system.ext4


명령어 실행 후에 성공했다는 멘트가 출력되고 탐색기를 통해서 보시면 working폴더에 system.ext4파일이 하나 생성됩니다. 그러면 이제 system.img는 지워 주세요. 나중에 다시 이미지를 만들때 겹치게 되므로 헷갈리지 않도록 하기 위함입니다.



이제 non-sparse이미지의 크기를 확인해야 합니다. 나중에 리팩할때 이 이미지의 크기를 입력해야 합니다. 탐색기에서 system.ext4파이을 오른쪽 클릭하여 속성을 눌러주세요. 그러면 파일크기가 포함된 정보를 담고 있는 창이 나타납니다. 그리고 계산기를 준비해주세요. 그런후에 다음과 같은 계산을 합니다.



바이트 단위로 나타난 크기를 입력하신후에 1024로 두번을 나누어 주시면 됩니다. 노트2의 경우는 딱 2400이 나옵니다. 이숫자를 기억하세요.


자 이제 다시 터미널로 돌아와서 많은 명령어를 입력하겠습니다.


  mount -o loop -t ext4 system.ext4 system

  cp -va Superuser.apk system/app/Superuser.apk

  cp -va su system/xbin/su

  chmod 644 system/app/Superuser.apk

  chmod 6755 system/xbin/su

  chown root.root system/app/Superuser.apk

  chown root.root system/xbin/su

  make_ext4fs -s -l 2400M -a system system.img system/

  umount system

  cd ..


수정가능하도록 이미지를 마운트한 후에 필요한 파일들을 복사하고 제기능을 하도록 권한 및 소유권을 바꾸어 준 것입니다.


혹시 루팅펌 완성후에 su 바이너리 문제를 격으시는 분은 chmod 6755 system/xbin/su 대신에 chmod 4755 system/xbin/su 로 바꾸어서 권한을 주시기 바랍니다.


make_ext4fs는 마운트되어있는 내용을 이미지화하는 명령입니다.


-s : sparse 이미지로 변경

-l 2400M : 이미지 사이즈 지정

-a system : 안드로이드 상에서 이 이미지가 마운트되는 곳

system.img : 변환될 이미지 이름

system/ : 리눅스에 마운트 되어있는 이미지화할 폴더


노트2가 아니라면 2400M이 아닐 수도 있습니다. 위에서 system.ext4 이미지의 크기를 계산 하였을때 나온 숫자에 M만 붙이시면 됩니다.



이제 system.ext4는 없어도 되는 파일이므로 지우셔도 무방합니다. 새로 생성된 system.img파일을 firmware폴더로 옮겨주세요.


그러면 이렇게 펌웨어 파일을 구성하고 있는 파일들이 다시 한군데에 모이게 됩니다.



이제 마지막으로 파일들을 하나로 압축하여 오딘에서 플래싱이 가능한 파일로 만들겠습니다.


  cd firmware

  tar cvf Rooted-E250SMF6.tar boot.img cache.img hidden.img modem.bin recovery.img sboot.bin system.img



이제 펌웨어 폴더에 새로운 펌웨어 파일이 생긴것을 확인하실 수 있습니다. 이제 이파일을 윈도우가 있는 하드로 복사해서 넣기만하면 제작 완료 입니다.



리눅스에서 밖으로 나와있는 파일은 지우셔도 상관없습니다. 작업한 폴더들 보시면서 필요없는 파일 지우고 옮기고 하신후에 재부팅해서 윈도우로 진입하시고 오딘으로 루팅펌을 입히시면 되겠습니다.


긴글 읽어 주셔서 감사합니다!


'안드로이드 > 강좌' 카테고리의 다른 글

리눅스에 안드로이드 개발 환경 구축  (0) 2013.08.27
갤럭시 루팅펌웨어 제작  (48) 2013.08.18
리커버리를 이용하여 루팅하는법  (1) 2013.08.10
오딘 사용 방법  (25) 2012.12.28
  1. 이전 댓글 더보기
  2. 아데놈 2014.01.20 17:21 신고

    안녕하세요
    루팅펌이 꼭 좀 필요해서 제작해보려고 합니다
    skt e330s 갤럭시S4 LTE-A 입니다
    최신버젼이 ML2(안드로이드4.3)까지 나와있고 이걸로 제작하고 싶은데요
    우분투까지는 설치해놓았습니다
    위의 방법대로 따라하면 되는건지 아니면 4.3은 좀 다른방법인지 가르침을 부탁드립니다.
    녹스워런티를 우회하고자 하여 부트로더를 삭제하고 올리고 싶습니다.
    방법 좀 부탁드립니다.

    • 크램프 2014.01.20 22:08 신고

      4.3의 경우 약간 다릅니다. 녹스 삭제도 하셔야하구요,
      최신 버전의 supersu의 경우 데몬을 통한 권한을 확득하기때문에 넣어줘야 할 파일이 몇개 더 있습니다.
      자세한 것은 supersu 리커버리 설치용 스크립트를 열어보시면 알수 있습니다.
      조만간 4.3용 가이드를 제작할 예정이니 하다가 잘 안되시면 질문 남겨주시거나 가이드를 기다려주세요.

  3. ㅡ수ㅡ 2014.01.29 11:23 신고

    국내 발매된 갤럭시 액티브(4.2.2)로 강좌를 따라하고있는데 su를 6755, 4755 둘다 테스트 해도 바이너리가 없고 설치할 수 없다고 뜨네요. 우분투 12.04로 제작중입니다. supersu최신버전(1.91)을 구해서 해보려니 윗 대댓글에 말씀하신 것 처럼 몇개를 더 넣으셔야한대서 어떤걸 넣어야 모르겠네요;
    스크립트를 열어봐도 당최 이해를 하기 어려워서 어떤 파일들을 어떻게 넣어야하는지 설명해주실 수 있나요?

    • 크램프 2014.01.29 19:57 신고

      파일의 위치는 다음과 같습니다.

      /system/xbin/daemonsu
      /system/xbin/su
      /system/bin/.ext/.su

      위 세파일은 arm 폴더의 su를 이용하시기 바랍니다.

      /system/app/Superuser.apk
      /system/etc/install-recovery.sh

      퍼미션은 다음과 같습니다.

      0777 /system/bin/.ext
      06755 /system/bin/.ext/.su
      06755 /system/xbin/su
      0755 /system/xbin/daemonsu
      0755 /system/etc/install-recovery.sh
      0644 /system/app/Superuser.apk

      권한은 들어갈 폴더에 있는 다른 파일들과 같은 권한을 주시면 됩니다.

    • ㅡ수ㅡ 2014.01.30 02:38 신고

      감사합니다!! ㅠㅠ
      설 연휴 잘 보내세요!!

  4. wooty9 2014.02.08 00:54 신고

    갤럭시S4 의 system.img 가지고 위에 나온데로 하는 중인데 변환 과정에서 막혔습니다.
    허가 거부 라고 나오는데 어떻게 해야 할까요??

    root@wooty9-virtual-machine:/home/wooty9/working/util# cp * /bin
    root@wooty9-virtual-machine:/home/wooty9/working/util# cd ..
    root@wooty9-virtual-machine:/home/wooty9/working# simg2img system.img system.ext4
    bash: /bin/simg2img: 허가 거부

    • 크램프 2014.02.08 03:23 신고

      simg2img 파일의 소유자 및 실행 권한 설정이 안된걸로 보입니다. chown명령어로 소유자를 로그인 계정명으로 변경하시고 su권한이 없는 터미널에서 실행해보시거나 root로 소유자를 바꾸시고 실행권한을 주고 다시 한번 해보시기 바랍니다.

      chown id:id *

      id는 로그인 계정명

      chnod +x *

      이 두 명령어를 실행하시고서 cp * /bin을 실행해보세요

  5. 안녕하세요 2014.02.08 03:02 신고

    4.4.2 노트3 킷캣 루팅펌을 만들고싶어서 여기저기 돌아다니는데요.. 이 루팅펌을 만들때 통신사 앱이라던지 추노마크 삭제라던지 아이콘 교체라던지 이런것도 가능할까요??

    아 그리고 한가지더궁금한게있는데.. 그 갤럭시들 상단바 번인방지한답시고 삼성이 상단바 아이콘들 일정시간 되면 잠금해제 할때마다 자꾸 왔다갔다 거리는게 있는데 이거 어디서 고쳐야 하는지 알고계신가요??ㅠ

    • 크램프 2014.02.08 03:25 신고

      기본앱 삭제는 루트 권한으로 마운트된 폴더에서 삭제하시면 됩니다.

      추노삭제나 아이콘 교체는 파일을 뽑아서 디컴파일 하셔서 하나하나 수정하셔서 다시 추가하시면 됩니다. 별도의 과정이 필요합니다.

      상단아이콘 이동 현상에 대해서는 정확히 아는 바가 없습니다.

  6. Souleater 2014.02.11 18:55 신고

    저 갤3 3G의 경우 4.3이라도 그냥 4.2.2식으로 루팅펌웨어를 제작해도 될까요? KNOX가 없으니 그대로 해보고 싶은데 안될까요?

  7. 음.. 2014.06.01 17:17 신고

    make_ext4fs, simg2img 할 때 계속 exec 구문오류라고 뜨네요.
    왜 이럴까요? ㅜㅜ;

  8. snow 2014.06.04 18:41 신고

    root@Snow:/home/snow/working# make_ext4fs -s -l 1800M -a system system.img system/
    can't set android permissions - built without android support
    make_ext4fs [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]
    [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]
    [ -L <label> ] [ -f ] [ -a <android mountpoint> ]
    [ -S file_contexts ]
    [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -v ]
    이렇게 나와서 안되는데 어떻게 해야 할까요

  9. 도움좀!! 2014.06.06 06:19 신고

    먼저 감사합니다.

    JB 4.3까지는 이 방법으로 필요없는 앱 삭제된 펌 만들어서
    잘쓰고 있었는데
    킷켓 4.4는 왜 안될까요?

    하얀여우님이 올려주신 deodex로 하고 있는데
    T 로고만 무한돌고 있습니다
    앱 설치된 폴더도
    app 랑 priv-app 로 나눠져 있던뎅...

    노트2 사용하고 있습니다

    도와주세요 ㅠㅠ

  10. 박성수 2014.06.07 23:09 신고

    해외판 노트 8.0 (GT-N5110) 을 사용하고 있습니다.
    지난 5월에 펌웨어가 4.4.2로 업그레이드 되어 Odin을 통해 플래슁할 수 있는 롬을 만들고 싶은데요, 업그레이드된 펌웨어에 KNOX가 추가되었다고 합니다.

    사실 그동안의 롬 업그레이드 후 루팅한 이유는, 쓸데없이 설치되어 있는 기본 어플을 삭제하기 위해서였는데, KNOX 탑재 이후에는 루팅할 경우에 녹스카운트가 증가하는 것으로 알려지고 있습니다.

    그래서 새로운 펌웨어 업그레이드 전에 필요없는 어플과 (가능하다면) KNOX를 제거한 펌웨어를 만들어 Odin으로 플래슁하려고 합니다. 다만, 님의 강좌를 따라서 하되, 루팅어플은 설치하지 않고 단순히 기본어플과 KNOX를 제거하고자 하였습니다.

    주분투 Xubuntu 14.04에서 system.ext4 마운트까지는 잘 되었는데, 마운트된 폴더에서 기본 어플을 삭제하던 중에, 파일관리자에서 삭제가 안되네요. 아마도 권한 문제인 듯 싶은데, 이를 해결하는 방법이나 기타 참고가 될만한 강좌가 있을까요?
    또한 기본어플 폴더에 보니 녹스관련 어플이 있던데, 이 어플들을 삭제하는 것으로 KNOX의 탑재를 방지할 수 있나요?
    잘 찾아보면 있을까도 싶은데, 아무리 검색해 봐도 "공식 펌웨어에서 기본어플과 KNOX를 제거하는 방법"은 찾을 수가 없네요.

    번거로우시겠지만, 해결책을 알려 주시면 고맙겠습니다. 수고하세요.

  11. 루팅초보자 2014.06.08 09:38 신고

    저거 주실수잇나요 제겐 너무어럽네요ㅠ

    qweqwe411@naver.com
    로 보내주시면 정말감사하겠습니다.

  12. paper3875 2014.08.10 17:35 신고

    아.. cp *bin을 하니 cp *bin 이 누락되었습니다. 라고뜨네요 제데로 다했는데 왜이럴까요

  13. 크램프 2014.08.12 15:32 신고

    cp * /bin 입니다

  14. mkco5162 2014.08.17 19:15 신고

    /system/xbin/daemonsu
    /system/xbin/su
    /system/bin/.ext/.su

    위 세파일은 arm 폴더의 su를 이용하시기 바랍니다.

    /system/app/Superuser.apk
    /system/etc/install-recovery.sh

    퍼미션은 다음과 같습니다.

    0777 /system/bin/.ext
    06755 /system/bin/.ext/.su
    06755 /system/xbin/su
    0755 /system/xbin/daemonsu
    0755 /system/etc/install-recovery.sh
    0644 /system/app/Superuser.apk

    권한은 들어갈 폴더에 있는 다른 파일들과 같은 권한을 주시면 됩니다.
    ============================================
    올리신것중에 install-recovery.sh 이 파일은 어느걸 써야하나요??
    혹시 있으시다면 mkco5162@naver.com 으로 부탁드립니다 ㅠㅠ

  15. 닝겐 2014.09.05 22:15 신고

    오...simg2img 하나면 다 해결되는군요.......
    나머지는 각자 알아서 하시면 될거고ㅋ
    저런 툴이 안드로이드 SDK에 있었다니 ㄷ

  16. 닝겐 2014.09.05 23:57 신고

    그리고 윈도로 재부팅하실 필요 없습니다.
    그냥

    root@localhost:~/firmware# apt-get install heimdall-flash
    (....)
    root@localhost:~/firmware# heimdall flash --RADIO-VIA VIA_modem.bin --CACHE cache.img --RADIO modem.bin --BOOTLOADER sboot.bin --SYSTEM system.img --BOOT boot.img --HIDDEN hidden.img --RECOVERY recovery.img

    이렇게 보이게 쳐주시면 됩니다.

    • 닝겐 2014.09.05 23:57 신고

      heimdall은 리눅스 자체 펌웨어 플래시 프로그램인데, Odin과 동격으로 사용하실 수 있습니다.

  17. 닝겐 2014.09.06 00:02 신고

    su 명령어 치실 필요 없습니다.
    그냥 sudo -s 치시고 들어가시면 됩니다.
    USB 자체로 부팅한 상태로도 플래시가 가능하니 (단, System Settings(또는 Preferences)->Software & updates->Community-maintained free and open-source software(universe) 활성화를 해야 합니다) 참고하세요.

  18. 명무 2014.09.09 17:46 신고

    근데 mount -o ~~하는거 쳐봤는데 'mount:wrong fs type, ~~~' 이렇게 뜨더라고요. 도대체 어떤 문제가 있는걸까요? 빠른 답변 부탁드려요.

  19. naninore 2015.11.23 09:08 신고

    와... 진짜 대단하시네요...ㅠㅠㅠ

    그런데 삼성제품인 갤럭시 시리즈가 아닌 lg의 옵티머스 gx인데 똑같이 적용이 될까요?

  20. na 2016.04.13 21:50 신고

    cp * /bin을치니까
    cp : 일반 파일 '/bin/su 을(를) 생성할 수 없음: 실행 파일 사용 중
    이라고 뜨네요
    어떡해야하나요?

  21. 준형 2018.06.03 00:16 신고

    supersu.tar 파일이 막혔네요
    직접 찾아봐도 통 모르겠어요
    링크 걸어주시면 감사하겠습니다