1. 자유게시판
  2. 스마트폰 질문과 답
  3. 사용자 팁/사용기
  4. 아무거나 질문답
  5. 토론의 장
  6. 방명록

  1. 자유게시판
  2. 스마트폰 질문과 답
  3. 사용자 팁/사용기
  4. 아무거나 질문답
  5. 토론의 장
  6. 방명록
    오늘: 1   어제: 1   전체: 11671955  

생일 축하해요

  • 04월20일
    AquaBeat
  • 04월20일
    김성배
  • 04월20일
    장경덕
  • 04월20일
    신동준
  • 04월20일
    정세정
  • 04월20일
    주용재
  • 04월20일
    서종득
  • 04월20일
    Chonds
  • 04월20일
    언발란스
  • 04월20일
    빔402

  로그인한 사람


id: Gomdolius
조회 수 20992 추천 수 0 댓글 9
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

1. 배경


옵티머스 LTE2는 훌륭한 하드웨어 스펙에 자부심을 가질 만한 디스플레이를 선보이고 있지만, 헬지LG의 삽질스러운 정책으로 부트로더가 막혀있고(=언락이 불가능하고), 리커버리도 그럴싸한 기능이 전혀 없이 공장초기화하는 기능뿐입니다. 아마도 adb reboot recovery 명령 한줄이면 닥치고 초기화되는 폰은 적어도 우리나라에서는 옵티머스 시리즈가 유일할 것입니다.

게다가 CWM이 리커버리 파티션에 설치되는 것도 아니고, 앱 기반인데다 그나마 있는 기능도 불완전하다고 알려져 있습니다. 즉 커스텀 롬이 나오기에는 그 여건이 사실상 총체적 난국에 가깝습니다.


그렇다고 절망하기엔 이릅니다. 어쨌든 훌륭한 루팅 툴이 나와있고, 웬만한 벽돌상황에서도 장치를 복구해낼 수 있는 KDZ 플래싱 유틸리티가 있습니다. 즉 초보자들도 비교적 쉽게 루팅을 할 수 있고, 쉽게 복구할 수 있습니다.



2. 루팅의 목적?


그 전에 왜 루팅을 하는지 잠시 생각해 봅시다. 옵티머스 LTE2 정도면 상당한 하이엔드 디바이스입니다. 과거에는 주로 성능 향상을 위해 루팅을 하는 경향이 있었습니다만(특히 갤럭시 S) 이제는 거의 모든 디바이스들이 듀얼코어 AP를 기본으로 탑재하고 있는 것이 보통이고, 소프트웨어적인 측면에서도 제조사들의 실력이 점점 향상되면서 더 이상 심각한 발적화로 불편을 겪는 일은 많이 줄어들었습니다. 특히 헬지LG전자가 이 점에서는 괄목할 정도의 성장을 보였다고 생각합니다...역시 경쟁에 기반한 시장경제의 힘은 위대합니다 -_-;


따라서, 현재 루팅이나 커스텀 롬의 목적은 성능 향상보다 사용자의 편의 확보에 있다고 봐도 크게 틀리지 않을 것입니다. 저도 지금까지 상당히 많은 커스텀 롬을 CE라는 브랜딩으로 릴리스한 바 있지만, HD2와 같이 스펙이 절망적인 디바이스가 아닌 이상 (사실 예전에는 저걸 능가하는 하이엔드 디바이스도 없었던 것이 사실입니다만), 초점은 자연히 '기기의 성능을 얼마만큼 끌어낼 수 있을까'보다도 '사용자가 어떻게 하면 쉽고 편하게 자신이 원하는 작업을 할 수 있도록 만들까'에 맞추어졌습니다. HD2에서 성능향상:사용자편의 사이의 비율을 약 90:10으로 설정하였다면, Raider나 Evo 4G+에서는 40:60 정도였다고 생각합니다. 기기의 성능도 종국적으로는 사용자경험(user experience, 이하 UX)의 향상을 목표로 두지만, 그 방법이 간접적입니다. 따라서 간접적인 UX 향상 수단인 '성능향상'에 투자하는 노력을 줄이고, 직접적인 UX 향상에 노력을 집중하면(즉 사용자 편의성과 직결되는 부분을 개선하면) 그만큼 우수한 UX를 달성할 수 있다는 결론이 자연스럽게 도출됩니다. 옵티머스 LTE2 정도의 디바이스라면 아까의 비율은 약 5:95로 설정해도 족할 것입니다.

그렇다면 하이엔드 디바이스에서 UX를 빠르게 향상할 수 있는 방법이 무엇일까요. 여기서는 OOBE, 즉 초기 사용자 경험을 향상시키는 것도 그 방법의 하나일 것입니다. 물론 사전적 의미 그대로 포장 박스에서 개봉한 직후에는 순정롬이 깔려있을 것이고, 루팅툴의 원활한 작동을 위해 /data/local/tmp에 파일들을 밀어넣으려면 USB 디버깅 옵션을 활성화해야 하므로 첫 부팅을 순정롬으로 해야 하는 것은 어쩔 수 없겠지요. 따라서 여기서의 OOBE는 롬을 설치하고 바로 다음 부팅에서 사용자에게 제시되는 UX를 의미합니다.



3. 사용할 수 있는 도구


다시 눈을 돌려 옵티머스 LTE2의 상황으로 돌아가면, OOBE 향상을 위하여 우리가 사용할 수 있는 재료가 대충 몇 가지 있습니다. 영원한 승리의 AKM, 알라의 요술지팡이 RPG-7, 일제답지 않은 내구성의 도요타 픽업트럭으로 구성된 테러리스트 3종 세ㅌ...아 이게 아니고, 루팅 스크립트 + 루팅용 KDZ + KDZ 플래싱 툴로 구성된 '루팅툴'과, 옵티머스 LTE2에 기본 내장된 '앱 관리자', 마지막으로 /system/etc/install-recovery.sh가 그것이죠. 차근차근 하나씩 살펴봅시다.


3.1. 루팅툴


먼저, 옵티머스 LTE2의 루팅툴이 어떻게 동작하는지 잠시 살펴보겠습니다. 루팅툴은 먼저 통칭 "루팅 KDZ"가 설치되어 있다는 것을 전제로 합니다. 루팅 KDZ는 KDZ 플래싱 툴(아마도 LG의 센터용 공정툴)로 플래싱합니다. 플래싱 과정에서 /data 파티션이나 /sdcard (내장 메모리) 파티션은 포맷되지 않습니다. 정확히는 /data 파티션과 /sdcard 파티션은 같고, 그 아래에서 마운트가 달리 되어 있을 뿐이죠. 대신에 /system 파티션은 KDZ의 내용, 즉 순정 펌웨어의 내용으로 완전히 덮어씌워집니다.

루팅 KDZ는 순정 펌웨어와 그 내용은 거의 동일하지만 한 가지 차이점이 있습니다. 바로 부팅시에 /data/local/tmp에 위치한 rooting.sh 스크립트를 root 권한으로 실행하도록 되어 있다는 것이에요.

그래서 루팅 KDZ를 설치하기 전이나 후에 ADB 등으로 Superuser APK와 su 바이너리, 위 rooting.sh 스크립트 파일을 /data/local/tmp에 밀어넣고, 스크립트가 실행되면서 이 APK를 /system/app, su 바이너리를 /system/xbin에 복사하도록 구성해 둔 다음 장치를 다시 부팅하면 깔끔하게 루팅이 되겠죠. 이 과정은 한번만 하면 되니(즉 매 부팅시마다 루팅을 반복할 필요는 없으니) 마지막 단계에서 이 스크립트를 스스로 지우도록 하는 것도 필요하겠습니다.

이게 바로 루팅툴의 원리입니다.


그렇다면 이와 같이 생각할 수도 있을 것입니다. "저 스크립트를 사용해서 부팅 시점의 /system 파티션에 Superuser APK와 su 바이너리, busybox 등을 밀어넣을 수 있다면, 그 외에 내가 시스템에 넣고 싶은 다른 파일들을 마찬가지 방법으로 넣지 못할 이유가 없지 않은가?" 어차피 순정 펌웨어 기반의 커스텀 롬 중 절대 다수는 순정 펌웨어에서 기능이 개선된 몇 가지 파일들을 교체 및 추가하는 방식으로 만들어집니다. 이걸 CWM같은 데에서 설치하거나, 일부 롬의 경우 이걸 아예 시스템 이미지로 만들어서 통째로 플래싱하는 것입니다. 모로 가도 서울만 가면 장땡이라고, 어차피 순정 시스템에 몇 가지 변경만 가하면 훌륭한 롬이 되는데 굳이 CWM flashable zip 형식을 고집할 필요가 없습니다. 결론적으로 저 rooting.sh를 잘 구성하여 배포하면 그것이 훌륭한 롬이 될 수 있는 것입니다.

복잡한 작업을 위해서는 busybox가 필수적인데(안드로이드 기본 명령어에 cp가 포함되어 있지 않다는 사실을 기억합시다!), 루팅툴에 포함되어 있으므로 큰 걱정이 없습니다. busybox 바이너리는 그냥 복사만 해넣어도 명령어 앞에 busybox만 붙여 주면 작동하므로(busybox cp) 굳이 install할 필요는 없을 것입니다. 최근 여러 은행/금융 관련 어플리케이션들이 su 말고도 busybox의 존부까지 체크하는 것 같은데, init.d 스크립트에 롬의 운용을 의지하지 않는 이상 busybox를 시스템에 영구적으로 설치할 실익은 크지 않아 보입니다.


3.2. 앱 관리자


사실 앱 관리자는 대다수의 순정 유저들에게 웬수 같은 존재, 짐덩어리입니다. 초기 설정이 끝나자마자 딱 봐도 아무짝에 쓸모 없어 보이는 프로그램을 강제로 깔아대기 때문입니다. 하지만 두 가지의 특성 때문에 앱 관리자는 매우 유용합니다.


첫째로, 앱 관리자는 /system/apps/bootup에 있는 APK들을 첫 부팅에 모두 유저스페이스, 즉 /data 파티션에 설치하도록 되어 있습니다. 즉 앱 관리자가 설치한 APK는 나중에 사용자가 지울 수 있습니다. 게다가 앱 관리자는 무슨 APK를 설치하는지, 설치 진행 상황을 매우 친근한 인터페이스로 사용자에게 알려줍니다. 문제는 그 초기 구성이 심히 쓰레기라는 것 뿐이죠. 즉 앱 관리자가 나쁜 게 아니라, 그 앱 관리자가 쓰레기를 깔아놓는다는 게 문제입니다.


둘째로, 앱 관리자는 APK를 가리지 않습니다. (1) 처음 실행하는 시점에서, (2) APK가 /system/apps/bootup에 위치하고 있고, (3) 해당 APK들에 대하여 적어도 644 이상의 퍼미션이 부여되어 있다면 굳이 헬지LG에서 배포하는 쓰레기APK가 아니더라도 그대로 인식하여 모두 설치합니다. 즉, 기존의 APK들을 지우고, 정말로 유용한 APK들로 채워 넣는다면 이것이야말로 진정한 유저 프렌들리가 아닐 수 없습니다.


3.3. install-recovery.sh


옵티머스 LTE2에 내려진 축복 중 하나가 바로 이 install-recovery.sh입니다. 이 파일은 /system/etc에 위치하여야 하며, 다른 위치에서는 동작하지 않습니다. 이 파일의 굉장한 점은 매 부팅시에 root 권한으로 실행되는 스크립트라는 것입니다. 즉 init.d와 그 역할이 사실상 같습니다. 심지어 busybox의 run-parts와 조합하면 init.d 스크립트 지원도 가능합니다. 하지만 위에 강조한 것처럼 루팅을 싫어하는 유저를 배려하려면 busybox의 사용을 줄이는 것이 바람직합니다. 소유자는 root.root일 것(chown root.root /system/etc/install-recovery.sh)을 요하고, 퍼미션은 적어도 755 이상이어야 합니다.

이 파일에 대해서는 설명을 생략하도록 하겠습니다. 이 글을 여기까지 읽을 정도가 된다면 매 부팅시에 자신이 원하는 스크립트를 루트 권한으로 자동 실행한다는 것이 어떤 의미인지는 이미 스스로 잘 알고 있을 것입니다.



4. 마침


옵티머스 LTE2는 비록 일부 부분에서 커스터마이제이션 가능성이 다소 미진한 바 있지만, 전체적으로 보았을 때 의외로 강력한 도구가 꽤 있는 편입니다. 이들을 통해 만들 수 있는 커스텀 롬의 범위는 비록 순정 펌웨어 기반으로 한정된다는 단점이 있지만, 그 세부를 들여다보면 생각보다 좁지 않습니다.

아마도 옵티머스 G와 같은 폰들도 이러한 방법의 커스텀 롬 제작이 가능하리라고 생각합니다. LG의 개발 능력이 갈수록 향상되며 사용자에게 매우 우수한 UX를 선사하고 있는 것을 보면, 앞으로 옵티머스 시리즈의 커스텀 롬 분야도 유망하다고 봅니다.

?
  • ?
    FC서울맨 2012.12.22 01:20

    opte2에서 따라 왔습니다. 상세한 설명 감사하며, 앞으로도 좋은 글 많이 부탁드립니다.

  • profile
    id: #반면의형상 2012.12.25 02:31

    정확하신 설명이십니다.


    뱀다리: 전공이 어떤 것인지 의심될 정도로 말입니다. 쿨럭.

  • profile
    id: Celes 2012.12.29 18:03

    저는 뼛속까지 법학 전공입니다. 네 그렇지요.

  • profile
    id: #반면의형상 2012.12.30 18:50

    가만히 기억을 되살려보니 왜 롬의 형태로 배포되고 있는가 잘 모르겠던 것들이 꽤 있었습죠.


    다른 것들도 마찬가지로, 루팅이 되어 있는 상태라면 USB 디버깅 붙여서 한탐에 끝낼 수 있거든요..

    루팅툴과 일체화시켜도 되겠고..


    순정상태에서 진행할 경우 모두 동일하게 동작하게 만들 수 있을텐데.


    하지만 다들 롬이 제각각이니 안정적인 동작을 위해서 flashable zip 형태로 만들었으려나요.


    그래도 변경되는 기능에 비해 용량이 너무 크다는 점이 함정이니..


    뱀다리: 드로이드 4 에서 tstore 구동시키려 하니 에러가 나서 왜그런지 조금 찾아봤더니 /system 에 추가 되어야 할 것이 있더군요.

    루팅과 티스토어 심기 위한 시스템 변경, 티스토어 인스톨까지 그냥 패키지로 묶어버렸습니다.


    adb 와 sh 의 결합으로 동작하는 녀석이라 조금 재미있죠.

    dos 커맨드의 bat 파일에서 adb 로 sh 를 심어주고 동작시킵니다.

    sh 는 자기 할 일을 하죠. 루팅과 관련된. 익스플로잇은 아닙니다.

    sh 는 마운트 포인트를 변경한 뒤 파티션 내용에 직접 su 를 박아버리죠.

    이후 bat 에서는 폰을 재부팅시킵니다. 마운트 포인트를 원복하죠.


    상기한 bat 부분에다 adb push 로 밀어넣을 파일을 밀어넣고 sh 부분에서 수정하는 작업을 한다면

    말씀하시는 /data/local/tmp/rooting.sh 동작시키는 것과 완전히 동일한 방식으로 진행됩니다.




  • profile
    id: Celes 2012.12.30 19:01
    cwm flashable zip의 가장 큰 장점은 웬만해서는 동일한 동작이 보장된다는 겁니다... 뼈저리게 느끼고 있습니다.
    지금 옵LTE2 곰돌라이트 롬이 딱 위에 설명한 방식으로 동작을 하는데, 대다수의 분들은 동작 및 설치가 원할하지만 그렇지 않은 분들도 무시 못 할 정도입니다.
    분명히 로직상으로는 문제가 없는데... 예외상황이 너무 다양하게 나옵니다-_-
  • profile
    id: #반면의형상 2013.01.01 18:08

    예외상황에서 예상가능한 거라고는 하나 밖에 떠오르지 않는군요.


    기존에 루팅을 해서 뭔가 작업을 해둔 분들의 경우 예외가 발생할 수 있을 거라 생각합니다.


    다만 순정상태에서 해당 롬을 적용했을 때 예외가 발생한다면.. 정말 '예외' 로 치부해버려야 하지 않을까유 ㅡㅗㅡ

  • profile
    id: Celes 2013.01.01 19:39

    그러니까 제 말이 바로 그 말입니다 엉엉 ㅠㅠ 근데 그 정말 '예외'가 빈발하니 짜증이...

  • profile
    id: Celes 2012.12.30 19:03
    그리고 용량이야 음... 다들 요즘 인터넷도 빠른데요 뭐.
    또 한가지 이유는 디오덱스죠. 패키지들 디오덱스해서 밀어넣다보면 순정에서 패치하나 통째로 밀고 얹으나 용량은 비슷하거든요...;;
  • ?
    lte2 2013.07.09 22:54

    옵티머스 lte2를 kdz툴로 루팅하다가 kdz파일을 잘못 선택했는지 완전히 나가버리더군요.

    복구모드는 커녕 어떤방법을 써 봐도 화면이 뜨지를 않습니다.

    찾아보니 부트로더?가 고장났다는것 같은데 어떻게 고칠방법이 없나요?


팁 / 사용기

나누고 싶은 정보

  1. Firefox에서 법학 공부를 위한 검색엔진 추가

  2. uTorrent 포터블 세팅파일

  3. 갤럭시 S4 시스템 컴포넌트의 컴파일 오류의 해결

  4. 안드로이드 폰 이전 시 카톡 내용 이전하기

  5. Opera@USB 12.16 GomdoLight Edition(?)

  6. OneNote를 공부하는 용도로 사용하는 분께 추천하는 커스텀 리본 바

  7. Protector Suite 2012, 5.9.8.7279 full version 64-bit (free)

  8. Windows에서 desktop.ini 파일이 효력을 발휘하지 못할 때의 해결 방법

  9. Copy.com 클라우드 스토리지를 사용하여 온라인으로 자신의 파일을 자동 백업하기

  10. PDF로 고전 문학을 읽고 싶으신 분들께 유용한 사이트

  11. 화면밀도 변경후 MultiDPI Play스토어 설치방법

  12. 드로이드 2 글로벌 CM9 올리기(숙련자용입니다.)

  13. [리뷰] 중국의 짝퉁 아이폰(iDroid Phone)

  14. 베가 넘버6 네비게이션으로 길 찾아가기!? 쓸만한 듯 싶음ㅋㅋㅋ

  15. 한눈에 보는 안드로이드 uid/gid

  16. build.prop의 허와 실

  17. 플래시 플레이어 버전별 APK 공식 다운로드

  18. 옵티머스 LTE2의 OOBE(Out-of-Box Experience) 향상에 대하여

  19. busybox가 없는 상태에서 터미널이나 스크립트를 통한 파일 복사

  20. NFC TAG 본격 활용기~~ 자동차모드,수면모드

Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 82 Next ›
/ 82

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5