제 휴대폰인 hTC Desire에 유럽에서 먼저 발표된, Sense UI가 탑재된 Android 2.2 Froyo ROM을 찾아 업그레이드 했습니다.

유럽발 hTC공식 OTA판 Android 2.2 Froyo with Sense UI는 아래의 링크에서 찾아서 적용을 하였습니다.

먼저 루팅을 해야 ROM을 마음대로 올릴수 있습니다. 

루팅(Rooting)후 롬을 올리는 작업


위의 화면처럼 유럽에서 나온 Froyo with Sense UI가 적용된 ROM을 적용하려면 루팅을 해야 됩니다.

제 휴대폰인 hTC Desire에 Sense UI가 탑재된 Android 2.2 Froyo 가 설치되어 있습니다.


Android 2.2 Froyo with hTC Sense UI


이후 More Locale 2설치와 Kandroid keyboard를 설치하여 안드로이드폰에 한글이 쉽게 보이고 한글 입력도 수월하게 하였습니다.

Froyo로 올리고 나서 정말 속도가 빨라짐을 체감하고, Flash를 사용가능하게 되었으며, SD카드에 앱 설치도 가능해지고, 태터링 기능이 생겨서 예전엔 어떻게 사용했는지가 궁금할 정도이군요. ㅎㅎ 

Buy me a coffeeBuy me a coffee





아래는 옵티머스Q 루팅법에 적힌 글을 인용한것입니다.


현재 발견된 취약점으로 아마 모든 안드로이드 폰의 루팅이 가능할 것으로 보입니다 'ㅅ'

본 루팅과정은 드로이드X 루팅 과정인 http://alldroid.org/default.aspx?g=posts&t=493를 Optimus Q에 맞춰서 수정한겁니다. 

아무튼! 다음과 같이 차례대로 진행하시면 됩니다.

1. 옵큐를 usb로 컴과 연결하고 설정->응용프로그램->개발->usb디버깅에 체크한다.
2. 첨부파일을 받아서 c:\ 에 압축을 푼다.
3. 시작->실행에 들어가서 cmd 실행
4. cd c:\adb 치고 엔터
5. 이제 다음 내용을 차례대로 붙여넣기하고 엔터치면 됩니다. ㅇㅇ
 
    adb push su /sdcard/su
    adb push exploid /sqlite_stmt_journals/exploid
    adb shell
    cd /sqlite_stmt_journals
    chmod 755 exploid
    ./exploid
    rootshell
    secretlol
    cat /sdcard/su > /system/bin/su
    chmod 4755 /system/bin/su
    rm /system/bin/rootshell
    exit
    exit

6. 루팅완료!

PS. su 바이너리가 달라서인지 superuser.apk가 작동을 안하네요. 그래서 과감히 빼버렸어요. 아무튼 그래서 갤s나 다른 루팅된 기기와 달리 슈퍼유저 권한을 요청할때 allow창 같은게 안뜹니다. (보안상으로 매우 취약하군요ㄷㄷ)

PS2. busybox도 말을 안들어서 빼버렸습니다. 마켓에 검색해서 직접 깔아주세요.


LG에서 나온 옵티무스Q말고도 모토로이, 드로이드x 루팅하는 법과 국내판 갤럭시S [M110S] 루트권한 얻기시리우스 루팅방법...등의 방법이 나와 있습니다.

나온 방법들을 보면 Android OS의 취약점들을 이용하여 Root권한을 획득하는 것입니다.

보통 HTC의 단말기나 NexusOne같은 경우는 부트로더를 건드려 Root권한을 획득하기 때문에 HTC의 단말기같이 일부로 부트로더를 쉽게 루팅할수 있는 기계가 아닌 이상 모토로라사의 안드로이드폰이나 국내 안드로이드폰도 Root권한을 얻기 어려웠습니다.

이번 루팅은 Android OS의 취약점을 사용하여 부트로더를 안 건드리는 방법으로 폰들의 Root권한을 획득하는 식이다 보니, 약간의 Android OS의 보안문제가 있을 수 있겠군요.

위의 사례에서 보인 것 같이 오픈소스(Opensource)로 공개된 안드로이드(Android) OS는 Linux Kernel위에 Dalvik VM(SUN사의 Java VM을 따라하여 Java실행할수 있게 만든 Virtual Machine)이 올라간 형태입니다.

위의 오픈소스 같은 경우 소스가 공개된 상태이기 때문에 소스에 취약점이 있으면 공통적으로 바로 발견이 가능합니다.


오픈소스로 공개된 리눅스의 장점이랄까요? 단점이랄까요? 단점인 취약점이 금방 공개가 되는 듯 합니다.(그 단점으로 인해 빠른 패치가 가능하다는 장점도 있습니다.) 

안드로이드 오픈소스의 취약점이 바로 발견되기 때문에 위의 취약점으로 해킹을 하여 안드로이드폰 자체가 망가질 수 있는 문제점이 보이기 시작할듯 합니다. 

안드로이드폰의 보안 이슈에는 Root권한을 획득한 폰에서 앱을 통하여 해킹당할때의 문제가 있었지만, 이제는 Root권한을 획득하지 않은 일반 폰에서 앱에서 root권한을 취득할수 있게 만든 코드에서 해킹에 속수무책인 사항까지 나아간것 같습니다.

아마 위의 사례처럼 Android 2.2에서도 취약점발견되어 root권한 획득하는 방법이 있을듯 합니다. (Google측에서 취약점을 몰랐을 경우)

위의 취약점 사례는 아마도 Android Gingerbread 버전에서 사라질 가능성이 있습니다.

Buy me a coffeeBuy me a coffee


Gold Card작성을 하지 않았으면 Rooting을 잠시 보류하고 Gold Card부터 작성을 합니다.
2010/05/26 - [Mobile/Android] - HTC Desire Rooting기록 - 1. Gold Card작성하기.

Rooting을 하기 전에 정말 주의 및 경고를 줄 것이 있습니다.

  1. 루팅에 대한 모든 책임은 사용자에게 있습니다.
  2. SKT의 순정롬으로 사용할때 전혀 문제 없이 통화, 문자, MMS등이 보내지지만, Unroot된 상태로 돌아갈수 없습니다.
  3. Rooting을 하기전에 모든 자료들의 백업을 하시기 바랍니다. 내부용량에 있던 자료들이 다 날라갑니다.
  4. 만약 고장등의 문제가 있어도 정상 수리가 될 확률도 낮고, 벽돌되면 못쓰게 되니 명심하시기 바랍니다.


맨 처음에는 hTC Desire를 루팅하여 Desire의 기본 롬을 쓰게 되는 법을 다룹니다.

HTC 디자이어 루팅 #.2 루팅시작 에서 파일을 다운로드 받은 후에 압축을 풉니다.

여기에서는 Ubuntu를 기준으로 설명을 합니다. 위의 링크에선 Windows를 기준으로 설명하였지만 리눅스나 맥에서도 따라할 수 있습니다.

(※ 루팅전에 백업은 필수. 그리고 adb 명령어나 ddms로 desire가 인식되는지 확인해야 합니다.)

  1. 다운받은 파일의 압축을 풉니다.
  2. HTC 디자이어와 PC연결 케이블 연결을 해제 합니다. 이후에 디자이어 전원을 끕니다. 이후엔 앞에서 만든 골드카드를 삽입. 
  3. 디자이어의 취소(뒤로가기) 버튼을 누른채 전원을 켭니다.
  4. 화면 중앙에 빨간 박스 안에 FAST BOOT라고 써진게 나오면 PC와 케이블 연결.
  5. 터미널에서 'step1-linux.sh' (Mac이라면 'step1-mac.sh') 입력 후 엔터.
  6. 작업이 완료되면 다시 부트로더의 화면이 나오고 잠시 대기한다.
  7. 완료후 디자이어의 배터리 분리. 골드카드를 빼고 다른 티플래쉬 카드를 삽입. 또는 골드카드를 포맷후 다시 삽입해야합니다.
  8. 볼륨다운 버튼을 누른채 전원을 켠다.


  9. 메뉴에서 RECOVERY 선택.(볼륨다운 키로 메뉴 이동. 전원버튼으로 선택)
  10. 디자이어에서 경고 화면이 나오면 도스창에 'step2-windows.bat' 입력 후 엔터.
  11. 작업이 정상적으로 진행이 되면 디자이어의 화면이 리커버리 모드로 전환.
  12. 'Wipe' 모드에 들어가서 맨 위에서부터 차례대로 (트랙패드로 이동, 눌러서 선택. 이전 메뉴는 볼륨다운사용)

  13. 'wipe data/factory reset', 'wipe cache', 'wipe Dalvik-cache' 3가지 메뉴를 실행해서 캐시를 삭제.
  14. 'Flash zip from sdcard'를 선택. 다음 화면에서 'rootedupdate.zip'을 선택

  15. 루팅이 끝났습니다.

이후에 hTC Desire가 루팅된 상태에서 SKT 롬으로 돌아가 정상 작동되는 법을 다룹니다.
앞에서는 디자이어 기본롬으로 루팅을 했기 때문에 뭔가 빠진듯한 허전한 느낌이 나올겁니다

그렇기 때문에 HTC 디자이어 루팅 #.3 추가 내용에 있는내용을 보고 SKT롬을 올려야합니다.

  1. 위의 링크에서 다운로드 받은 pre-rooted-skt.zip파일을 티플래쉬 최상위에 복사.
  2. 디자이어의 전원을 끈다.
  3. 볼륨다운을 누른채 휴대폰을 켠다.
  4. 부트로더화면이 나오면 볼륨키를 이용해서 RECOVERY선택.
  5. 터미널에서 recovery-linux.sh (Mac이라면 'recovery-mac.sh')  입력 후 엔터. 
  6. 정상적으로 진행이 되면 디자이어의 화면이 Recovery 모드로 전환
  7. Recovery 모드에서 트랙패드를 이용해서 'wipe' 선택.
  8. 'wipe' 안의 맨 위에서 3개를 차례대로 실행.(캐쉬삭제 작업)
  9. 삭제가 다 되면 볼륨다운을 눌러 이전 메뉴로 이동.
  10. 메뉴중에 update from sd를 선택.
  11. 다음 화면에서 1번에서 복사했던 pre-rooted-skt.zip 선택.


아래는 루팅후, adb로 root권한으로 휴대폰을 shell로 접근하는 모습입니다.

루팅하기전엔 $로 표기되지만 루팅이 되면 #으로 변합니다.

리눅스같은 *NIX류의 OS에선 터미널에서 Root권한이 있으면 #으로 표기하고 Root권한이 없으면 $로 표시하는걸 그대로 똑같이 보여주군요.

(역시 Android OS는 Linux기반의 운영체제 딱지가 보이군요)


Buy me a coffeeBuy me a coffee




저는 위의 관련링크를 보고 우선 골드카드를 생성하기로 하였습니다.

여기서 Ubuntu 10.04를 사용하여 Desire를 Rooting해보기로 하였습니다.

루팅을 하기 위해선 Android SDK를 다운 받고, 앞에서 설명하듯 우분투에 장치를 인식할 수 있게 아래와 같은 링크를 이용하여 작업을 해야 합니다.



※ 주의: 여기서는 Ubuntu와 Android SDK를 사용하여 개발하는 사람들 위주로 글을 작성하였습니다. 리눅스를 익숙하게 쓰는 사람만 따라해주시기 바랍니다.

우분투에서 위와 같이 작업을 하였으면 ddms로 디자이어가 인식이 되는지를 확인해봅니다.


이 후, 터미널창에 아래의 명령어를 치고 나오는 값을 확인해본다.

adb shell cat /sys/class/mmc_host/mmc1/mmc1:*/cid


studioego@studioego-laptop:~$ adb shell cat /sys/class/mmc_host/mmc1/mmc1:*/cid
03534453553038478080d20abc00a392

터미널 창에 위와 같은 명령어를 쳤으면 아래와 같은 값이 출력될것입니다.

03534453553038478080d20abc00a392


값은 장치마다 다르니 신경 쓸 필요가 없습니다.


값을 얻어내었으면 http://hexrev.soaa.me/  를 클릭합니다. 새로뜬 창에 방금 나온 값을 입력하는 필드가 보일겁니다. 입력창에 값을 정확하게 입력합니다.

입력을 하면 아래와 같은 화면이 나올겁니다. (값은 장치의 갑소가 다르니 값이 다르다고 신경 쓸 필요가 없습니다.)


위의 화면이 나왔으면 새로 나온 값을 복사하고 http://psas.revskills.de/?q=goldcard  를 클릭합니다.

여기서는 이메일과 방금 복사한 값을 모두 입력후, 하단에 있는 Generate Goldcard를 누릅니다.

몇 분후, 입력한 이메일 주소로 goldcard.img이라는 파일이 온다. 다운로드 받습니다.

이후에 hex editor를 사용하여 goldcard.img를 엽니다.


다음엔, 디자이어의 컴퓨터 연결 모드를 디스크로 설정합니다.

이동식 디스크로 되었는지 확인을 합니다.

이후엔, hex editor를 실행합니다. 

goldcard.img의 offset의 00000000~00000170을 선택합니다. 이후 이동식디스크 파일에 붙여넣기 합니다.

아래 화면처럼 하면 됩니다.


위와같이 하면 Goldcard가 완성됩니다.

이젠 HTC Desire의 루팅을 할 준비가 다 되었습니다. 다음엔 루팅을 실행해볼까 합니다.


Buy me a coffeeBuy me a coffee

+ Recent posts