모바일 자바스크립트 프레임워크의 주요 의제
- 모바일 UI 부품(widget? component? 이걸 뭐라 해야 해???) 제공
- 모바일 터치 이벤트 처리 기능 제공
=> 즉, 스크린 크기에 구애받지 않는 UI 구현터치 이벤트 처리에 관한 부품 및 API 제공
 
모바일 자바스크립트 프레임워크 평가 기준
- 자유롭게 가져다 쓸 수 있는가? (라이선스 모델?)
- 얼마나 많은 단말을 지원하는가? (지원하는 단말 및 OS?)
- 얼마나 빨리 로드되고 실행될 수 있는가? (얼마나 크기가 작은가?)
- 얼마나 많은 지지를 얻고 있는가?
- 얼마나 활발하게 개발이 진행되고 있는가?

모바일 자바스크립트 프레임워크의 종류 및 특징 요약
(http://www.markus-falk.com/mobile-frameworks-comparison-chart/ 에서 발췌)
=> (한줄요약) 모바일 자바스크립트 프레임워크는 모바일에 최적화된 UI 기능 제공을 목표로 하고 있다.
 
모바일 자바스크립트 프레임워크 인기도 설문
(https://spreadsheets.google.com/spreadsheet/viewanalytics?formkey=dEdOZVZRVUszSU8wVG4tZmtYNUdZdWc6MQ 에서 발췌)
=> (한줄요약) jQuery Mobile이 가장 인기 높다.

주요 모바일 자바스크립트 프레임워크 비교
 프레임워크  라이선스 모델  지원 단말 및 OS  footprint  버전 현황  기타
 jQuery Mobile  dual license (GPL or MIT)  iOS, Android, WinMobile 등의 모바일 브라우저 A급 지원  19 KB  현재 1.0RC2, 2011년내 1.0 정식 릴리즈 예상  jQuery 원저자가 참여하는 프로젝트; 개발자들의 기대가 높다
 Sencha Touch  dual license (GPL or proprietary)  WebKit 기반 브라우저 A급 지원 (iOS, Android); WebKit 이외의 브라우저는 다소 지원 미흡  370 KB  2011.3월 1.1.0 릴리즈  WebApp 개발을 위한 용도로는 free; SDK 개발을 위한 용도로는 paid
 zepto.js  MIT license  WebKit 기반 브라우저만 지원 (프레임워크 사이즈를 줄이자는 철학에 따른 선택)  ~ 2 KB (목표)  2011년 11월 현재 0.8 릴리즈  jQuery 호환 문법
 NS Basic/ App Studio  Proprietary license  WebKit 기반 브라우저 지원 (iOS, Android)    2011년 10월 1.3.1 릴리즈  Visual Basic으로 모바일 Web App을 만들자는 개념의 상용 상품


요약 및 의견
- 개인적으로 작고 빠른 프레임워크를 지향하는 zepto.js의 철학에 공감하나 프로젝트 진도가 활발하지 않다.
- 현재 개발자들로부터 가장 높은 기대를 받고 있는 프레임워크는 jQuery Mobile 이다. 프로젝트 진행 역시 활발하다.
- 현재 가장 높은 품질의 기능을 제공하는 프레임워크는 Sencha Touch이다. 하지만 개인적으로 무겁다고 (로딩 속도와 실행 속도가 느리다고) 생각한다.
- 지금은 One Source Multi Device를 위한 모바일 자바스크립트 프레임워크에 대한 요구가 매우 높으나 관련 프로젝트들이 성숙하지 못한 단계이다.

(이상)
 
Posted by ingeeC
,
Device API와 HTML5 사이의 관계
("미래 웹 기술에 관한 이야기/ HTML5 표준 범위와 W3C HTML WG 표준화 현황", 2010-06 기사 중에서...)
HTML WG 의장 중 한명인 마이크로소프트의 폴 코튼(Paul Cotton)이 생각하는 HTML5 표준의 범주는 HTML WG에서 개발되고 있는 HTML 표준, Web Applications WG에서 개발하고 있는 API 표준, Device APIs and Policy WG에서 개발하는 표준, 그리고 마지막으로 우리가 자바스크립트로 알고 있는 ECMAScript-262에 대한 표준도 포함하는 것이다.

Device API 표준화 현황
("미래 웹 기술에 관한 이야기/ HTML5, Device API 표준화 현황", 2010-07 기사 중에서...)
W3C에서 API에 대한 표준은 주로 Web Applications WG에서 개발하는 것으로 되어 있었으나 개발해야할 스펙이 많아 디바이스의 자원을 접근하는 API 개발은 DAP WG을 새롭게 만들어 진행하게 되었다. Privacy 이슈가 상대적으로 적은 Read 기능에 대한 표준들이 빠르게 표준화가 이루어질 것이며, 그후 Write 기능에 대한 표준들이 개발될 예정이다.

DAP (Device APIs and Policy Working Group, 줄여서 Device APIs Working Group) 활동 현황
("http://www.w3.org/2009/dap/" 중에서...)
* 2011년 10월현재, 대부분 분야에서 Public WD 공표함 (표준 공표 5단계중 2번째 단계)
* DAP이 다루는 API 분야는 다음과 같다 (상황에 따라 추가되거나 제외되고 있다)
    - Battery status
    - Contacts (reading from addressbook)
    - HTML Media Capture (camera/microphone interactions through HTML forms)
    - Messaging (SMS, MMS, emails)...
* 2011년 10월현재, contact, calendar, network info 등 API가 아직까지 read-only method 만 정의하고 있음

주요 브라우저들의 Device API 수용 현황
* 모질라 (파이어폭스) : 향후 3~4 개월 내에 phone에서 HTML5 기본 기능을 위한 Device API를 제공할 것이다
("Mozilla Wiki/ WebAPI", 2011-10 기사 중에서...)
* 안드로이드 3.0 내장 브라우저가 Media Capture API를 지원하기 시작했다
("Android 3.0 Honeycomb is first to implement the Device API", 2011-02 기사 중에서...)
* 2011-05 부터 WebKit이 navigator.getUserMedia()를 지원하기 시작했다
("What web browser supports <device> tag HTML5?" 기사 중에서...)
* 2011-08 부터 Opera Mobile이 navigator.getUserMedia()을 지원하기 시작했다
(출처 상동)

의견
* 정의된 Device API 표준 자체가 완결되어 있지 않다; read-only method 들만 정의 되어 있다; 앞으로 할 일이 더 많이 남아 있다 (표준화 기구 영감님들의 활동이 의외로 게으르다)
* 대부분의 브라우저가 현재까지 정의된 Device API를 지원하고 있거나, 지원을 약속하고 있다 (브라우저 개발자들은 역시나 부지런하다)

(이상)
 
Posted by ingeeC
,
웹킷 어디까지 왔나?
(GPU 가속 feature를 중심으로...)


웹킷 뉴스 그룹에서의 주요 안건들 요약
* HTML5 Microdata 지원 공지 (2011/9/22 : New feature announcement - Implement HTML5 Microdata in WebKit)
* HTML5 WebWorker 관련 기능 구현 논의 (2011/9/23 : starting implementation of postMessage tranferables)
* HTML5 Canvas 관련 기능 구현 논의 (2011/9/13 : Mouse Lock API)
* HTML5 time element 관련 기능 구현 논의 (2011/9/16 : Implementing HTML5 time element)
==> 요약: 현재 WebKit 진영에서는 CSS3와 HTML5에 관한 구현 논의가 주요 이슈임


GPU 가속 관련 현황 요약
* GPU는 CPU와 달리 데이터 병렬성이 풍부해 대용량 데이터 처리에 효율적임
* HTML5 Video를 이용 브라우저에서 HD 영상을 표시하기 위해서는 GPU 가속 기능 활용이 필수적임
* WebKit은 화면 처리를 위해 software rendering path와 hardware accelerated path를 제공함
* GPU 가속 feature는 WebKit 차원에서는 종료된 문제임; GPU 가속 기능 제공 여부는 브라우저 port의 문제임
* 애플의 사파리 브라우저는 오래전부터 hardware accelerated path를 심도 깊게 활용함; GPU 가속 기능 제공함
* 애플의 모바일 사파리 브라우저도 아이폰을 처음 출시할 때부터 GPU 가속 기능을 제공함
* 구글의 크롬 브라우저는 2010년 9월 (크롬7) 부터 GPU 가속 기능을 제공하기 시작함
* 구글의 폰용 안드로이드 브라우저는 아직 GPU 가속 기능을 제공하지 않음 (2011/10/19 현재)
* 구글의 패드용 안드로이드는 (안드로이드 3.0 허니콤은) GPU 가속 기능을 제공하나 아직 최적화 되지 않음; 간혹 화면이 깨지는 문제, 성능 문제 등이 보임 (2011/10/19 현재)
* 구글이 곧 발표할 아이스크림 샌드위치는 스마트 폰에서도 GPU 가속 기능을 제공하리라 전망함. 하지만 아직(2011/10/19)까지 구글의 명시적인 발표는 없음; 오늘(2011/10/21) 아이스크림 샌드위치 발표함. GPU 가속 지원 현황에 대해 좀 더 조사가 필요함 (젠장...)
==> 이제 Android 4.0을 (아이스크림 샌드위치를) 사용하는 모든 단말은 GPU 가속 기능을 제공해야 한다. 이로 인해 모든 안드로이드 App (웹 브라우저도 포함하겠지?..)은 GPU 가속 기능의 혜택을 누릴 수 있게 됐다. (2011.10.24. 내용 추가함. GPU 가속 기능이 OS 차원에서 지원된다는 얘기)
http://developer.android.com/sdk/android-4.0-highlights.html#DeveloperApis
(
Hardware-accelerated 2D drawing
All Android-powered devices running Android 4.0 are required to support hardware-accelerated 2D drawing. Developers can take advantage of this to add great UI effects while maintaining optimal performance on high-resolution screens, even on phones. For example, developers can rely on accelerated scaling, rotation, and other 2D operations, as well as accelerated UI components such as TextureView and compositing modes such as filtering, blending, and opacity.)
 
 

Reference
* 브라우저에서 그래픽 가속하기 (from WebKit mailing-group)
Accelerated 2D Tesselation Implementation (from WebKit mailing-group)
Chromium "GPU" LayoutTests (from WebKit mailing-group)
GPU Accelerated Compositing in Chrome (from Chrome 개발자 사이트)
Google Activates Chrome GPU Acceleration
Guess who is WebKit’s new best friend
Issue 6914: Make android use the GPU (if available) for UI and browsing (안드로이드 이슈 페이지)
 
(이상)
 
Posted by ingeeC
,
HTML5 일정 현황 및 계획
lynda.com Tutorial | HTML5 First Look—HTML5 timeline (
http://www.youtube.com/watch?v=tJurCyWJW9k) 에서 발췌

  • 2004: WHATWG 발족, "Web Application and Compound Documents" 워크샵
  • 2005: Web Application 1.0 초안 (Working Draft) 발표
  • 2007: W3C가 WHATWG의 작업내용을 수용, HTML5 초안 (Working Draft)을 발표함
  • 2009: HTML5 초안 (Working Draft)에 대한 Last Call 시작됨
  • 2012: HTML5 스펙을 Candidate 상태로 레벨 업 (예정)
  • 2022: HTML5 스펙을 Recommendation(최종안) 상태로 레벨 업 (예정)
  • 그리고...
  • 2009: HTML5 에 대한 대중의 관심이 급격히 커짐
  • 2010: 초안 (Working Draft)에 대한 Last Call 과정이 진행중
     * 초안의 일부 항목들은 무척 성숙한 단계에 있음
     * 점점 더 많은 기기와 브라우저들이 HTML5의 일부 항목들을 지원하고 있음
     * 따라서 HTML5의 일부 기술은 2022년 최종 스펙 발표까지 기다릴 필요 없이 지금 당장(!) 사용할 수 있음

W3C 산하 HTML5 표준화 워킹그룹과 표준화 기술 분야
2011년, W3C HTML5 표준화 동향 및 전망 (
http://www.wonsuk73.com/category/HTML5%20%ED%91%9C%EC%A4%80%20%EA%B8%B0%EC%88%A0) 에서 발췌

WG 

표준개발 범위

개발 표준 현황

HTML WG

HTML5 마크업 관련 표준 개발

-   HTML5

-   HTML+RDFa

-   HTML Microdata

-   HTML Canvas 2D Context

Web Application WG

웹 애플리케이션 개발에 필요한 웹소켓, 웹워커, IndexedDB, FileAPI 등을 포함하여 HTML5와 관련된 주요 API 표준 개발

-   Web Sockets API

-   Web Storage

-   Web Workers

-   Indexed Database API

-   Server-Sent Events

-   Cross-Origin Resource Sharing (CORS)

-   HTML5 Web Messaging

-   Clipboard Operations

-   File API

-   File API: Directories and System

-   File API: Writer

-   Programmable HTTP Caching and Serving

Device APIs and Policy WG

데스크탑, 랩탑, 모바일 인터넷 단말(MID), 핸드폰 등 다양한 기기의 웹 브라우저에서 일정, 업무, 연락처, 카메라, 메시지, 시스템 정보, 이벤트 등의 다양한 단말 기능을 사용할 수 있도록 하는 API 표준

-   Contacts API

-   The Calendar API

-   The Media Capture API

-   The Messaging API

-   The System Information API

Geolocation WG

Geolocation API를 포함하여 가속센서, 방향센서 등 센서에 관련된 표준 개발

-   Geolocation API

-   DeviceOrientation Event

Web Notification WG

사용자에게 알려주기 위해 필요한 Notification과 관련된 API 표준으로, Notification과 관련하여 사용자 인터액션(Interaction) 관리에 필요한 이벤트에 대한 표준도 포함

-   Web Notifications

Web Performance WG

웹 브라우저의 특징들과 API들에 대한 애플리케이션 성능 측정에 대한 표준 개발

-   Navigation Timing

Web Event WG

모든 디바이스의 멀티터치,-테블릿 입력 등의 사용을 가능하게 하는 방법에 대한  표준 개발

-   Web Events

Web Real-Time Communications WG

웹 브라우저에서 P2P(Peer to Peer) 오디오, 비디오 등 실시간 통신을 위한 클라이언트 API 표준 개발

-   WG Charter 검토 중



(끝)

Posted by ingeeC
,

OpenSSL API 개요

Dev 2011. 2. 7. 21:51
SSL/TLS는 안전한(보안이 적용된) TCP/IP socket 채널을 제공해주는 기술이다. 브라우저 빅뱅 초기에 정립된 기술이고, OpenSSL이라는 확실한 오픈소스 프로젝트가 존재하는 잘 정립된 기술이다. OpenSSL은 SSL/TLS의 종결자라 할 수 있는 소스 더미인데, 막상 가져다 쓰려면 참고할만한 문서가 막연하다. 일 때문에 이리저리 헤매다 좋은 문서를 발견하여 여기 요약한다. 다음 내용은 내게 필요했던 일부만 발췌한 것이다. 원본 페이지에는 샘플 코드를 비롯, 더 자세한 설명이 담겨있다. 아쉬운 개발자들은 주저 없이 방문 바란다.

이제 보안 연결을 설정하는데 필요한 것을 알아보자. 달라진 유일한 부분은 연결 설정 및 연결을 만드는 것이다. 다른 모든 것은 똑같다.
보안 연결은 연결이 구축된 후에 핸드쉐이크(handshake)를 필요로 한다. 헨드쉐이크 동안, 서버는 인증을 클라이언트에 보내는데, 클라이언트는 트러스트 인증에 준하여 이를 확인한다. 또한, 인증을 검사하여 만기가 되었는지를 확인한다. 인증이 신뢰를 받는 것인지를 확인하려면 트러스트 인증 스토어가 연결을 구축하기 전에 로딩되어야 한다.
클라이언트는 서버가 인증을 요청할 경우에만 서버로 인증을 보낸다. 이것은 클라이언트 인증으로 알려져 있다. 인증을 사용하여, 암호 매개변수들이 클라이언트와 서버 사이에 전달되어 보안 연결을 구축한다. 핸드쉐이크가 연결이 구축된 후에 수행되더라도, 클라이언트나 서버는 어떤 지점에서라도 새로운 핸드쉐이크를 요청할 수 있다.
핸드쉐이크와 보안 연결을 설정하는 다른 측면들은 Netscape 기술자료와 RFC 2246에 설명되어 있다.

이 글은 핸드쉐이크 하는 사이에 서버의 디지털 인증서를 처리하는 것에 초점을 맞추므로 핸드쉐이크가 어떻게 작동하는지를 상세히 살펴보고자 한다. 여러분이 SSL 프로시저에 익숙하다면, 이 섹션은 무시해도 좋다.
연결에서 개방(opening) 핸드쉐이크는 서버에 "Hello"라고 말하는 클라이언트로 시작된다. Hello 메시지에는 클라이언트의 보안 매개변수들이 포함되어 있다.
SSL 버전 넘버
무작위로 생성된 데이터
암호 설정
통신에 필요한 기타 사항
서버는 클라이언트가 제공한 것과 같은 유형의 정보인 서버의 보안 매개변수들을 포함하고 있는 고유의 Hello 메시지에 응답한다. 바로 이때 서버도 디지털 인증서를 보낸다. 클라이언트 권한이 연결에 사용되면 서버는 클라이언트의 인증서에 대한 요청을 보낸다.
서버의 Hello 메시지를 받으면, 디지털 인증서가 확인된다. 인증서의 다양한 매개변수들을 확인하여 인증서가 원래 그대로 보존되었는지를 확인하고, 유효 기간 내에 인증서가 사용되고 있는지를 확인한다.
여기에서 수행되어야 하는 한 가지 단계는 연결에 사용되는 호스트 네임과 비교하여 인증서 상의 이름을 검사하는 것이다. 이는 SSL 표준의 일부는 아니지만, man in the middle attack (MITM)을 방지하기 위해서 권장된다. 이 단계는 인증서가 여러분이 생각하고 있는 엔터티에서 온 것임을 확인한다. 이 두 개가 이 지점에서 매치되지 않으면, 인증서는 무효한 것이 아닌, 의심의 대상이 된다.
클라이언트와 서버 간 공유되었던 랜덤 데이터는 서버와 클라이언트에게만 알려진 공유 비밀 값으로서 이 세션에만 사용되는 premaster secret을 생성하는데 사용된다. 이 비밀 값은 서버의 디지털 인증서로 암호화 되고 확인을 위해 서버로 보내진다.
서버가 클라이언트 인증을 요청하면, 클라이언트는 핸드쉐이크 동안 무작위로 생성되고 서버와 클라이언트에게만 알려진 데이터의 단방향 해시(hash)를 생성한다. 클라이언트는 클라이언트의 개인 키(private key)를 사용하여 해시에 서명을 하고 서명된 데이터와 디지털 인증서를 서버로 보낸다. 서버는 그 정보를 사용하여 클라이언트를 인증한다.
인증이 성공하면, 서버와 클라이언트 모두 공유된 랜덤 데이터를 알고리즘을 통해 실행하여 master secret을 생성한다. master secret에서, 클라이언트와 서버는 세션 키(session keys)를 생성한다. 이것은 선택된 시메트릭 암호 안에 있는 대칭 키로서 세션 데이터를 암호화 하는데 사용된다.
클라이언트는 종료되었다는 메시지를 서버로 보냄으로써 핸드쉐이크를 종료한다. 이것은 서버에 의해 확인되어야 하는 암호화 된 단방향 해시 값 세트이다. 서버는 비슷한 메시지를 클라이언트로 보낸다. 클라이언트와 서버는 핸드쉐이크를 종료하고 통신을 시작하기 전에 데이터가 정확한지를 확인한다.

피어 인증서 확인하기
핸드쉐이크에서 제공된 서버의 인증서는 서버의 호스트 네임과 매치하는 것에 대한 이름을 가져야 한다. 그렇지 않다면, 인증서는 의심스러운 것으로 표시되어야 한다. 내부 확인 절차는 이미 트러스트와 종료에 대해 인증서를 검사한다. 인증서가 종료되었거나 믿을 수 없는 서명을 포함하고 있다면 무효로 표시된다. 이것은 SSL 표준의 일부가 아니므로 OpenSSL은 호스트 네임에 대해 인증서의 이름을 검사하지 않는다.
인증서의 "이름"은 실제로 인증서 상의 Common Name 필드이다. 이 필드는 인증서에서 가져온 것이어야 하며 호스트 네임에 비교하여 확인되어야 한다. 이 두 가지가 매치되지 않으면, 인증서는 무효가 아닌 의심 상태가 된다. Yahoo! 같은 일부 기업들은 다양한 호스트에 같은 인증서를 사용한다. 그 인증서에 대한 Common Name이 단 한 개의 호스트를 위한 것인데도 말이다. 인증서가 같은 회사에서 온 것인지를 확인하기 위해 보다 심도 깊은 체크가 수행되지만, 이는 프로젝트의 보안 필요에 따라 수행한다.

여기까지... 좋은 개발, 좋은 하루...

Posted by ingeeC
,
좋은 책. 이런 멋진 책을 한글로 지어낸 저자들이 존경스럽다.
http://book.daum.net/detail/book.do?bookid=KOR9788992939584


Posted by ingeeC
,

JNI 스펙, 세월무상

Dev 2010. 11. 2. 15:02
JNI에 관한 모든 것을 정리한 사이트.
http://download.oracle.com/javase/1.5.0/docs/guide/jni/spec/jniTOC.html

SUN이 Java를 앞세워 최첨단 소프트웨어 회사로서의 강한 이미지를 보여준게 엊그제 같은데, 불현듯 자바 문서 URL이 오라클로 바뀌어 있다. 세월 속에선 "모든 것이 변한다"는 것만이 변함 없는 진리인 듯 하다.

Posted by ingeeC
,
찾는데 힘들었다. 커맨드 라인 콘솔에서 java 소스 코드를 컴파일해서 ADB shell을 통해 안드로이드 플랫폼에서 실행시키기 까지의 과정을 보여준다.
(원본 링크) http://davanum.wordpress.com/2007/12/04/command-line-java-on-dalvikvm/


December 4, 2007

Command line Java on DalvikVM

Filed under: Uncategorized — Davanum Srinivas @ 11:21 am

Found this very useful when i was trying out the JNI under android (Short Story – Could not get it to work!).

Step #1: Start with a simple java class

package org.apache;

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

Compile the java class

C:\android\CmdLine>javac -d . -g Helloworld.java

Step #2: Package the generated classes into a temporary jar

C:\android\CmdLine>jar -cvf Temp.jar *
added manifest
adding: Hello.java(in = 0) (out= 0)(stored 0%)
adding: HelloWorld.java(in = 149) (out= 122)(deflated 18%)
adding: org/(in = 0) (out= 0)(stored 0%)
adding: org/apache/(in = 0) (out= 0)(stored 0%)
adding: org/apache/HelloWorld.class(in = 556) (out= 344)(deflated 38%)

Step #3: Use the “dx” tool to generate a classes.dex from our temporary jar.

C:\android\CmdLine>dx --dex --output=c:/android/CmdLine/classes.dex c:/android/CmdLine/Temp.jar

Step #4: Use the “aapt” tool to create a new jar suitable for use with dalvikvm

C:\android\CmdLine>aapt add CmdLine.jar classes.dex
'classes.dex'...

and push it into a known location on the emulator

C:\android\CmdLine>adb push CmdLine.jar /data
30 KB/s (0 bytes in 481.000s)

Step #5: kick the tires of dalvikvm

C:\android\CmdLine>adb shell
# /system/bin/dalvikvm -Xbootclasspath:/system/framework/core.jar -version
/system/bin/dalvikvm -Xbootclasspath:/system/framework/core.jar -version
DalvikVM version 0.2.0
Copyright (C) 2007 Google, Inc.
Blah blah blah LICENSE blah blah.
Dalvik VM init failed (check log file)

Step #6: Run our code

# /system/bin/dalvikvm -Xbootclasspath:/system/framework/core.jar -classpath /data/CmdLine.jar org.apache.HelloWorld
/system/bin/dalvikvm -Xbootclasspath:/system/framework/core.jar -classpath /data/CmdLine.jar org.apache.HelloWorld
Hello World!

(끝)

Posted by ingeeC
,

Sensor 관련 세미나 자료

Dev 2010. 10. 13. 16:14
센서 관련 세미나 동영상
Posted by ingeeC
,
모토롤라 Shole 폰에 안드로이드 2.1을 올리고 root 권한으로 사용할 수 있게 만드는 방법을 요약한다. http://androidforums.com/all-things-root-milestone/75460-milestone-2-1-update-root-guide.html 페이지에 멋지게 정리되어 있는 글을 한글로 옮긴다. 한글로 대강을 파악한 다음 원글을 살펴보면 좋을 것 같다. 내 페이지가 좀 부실해서 원글을 보는게 좋다.

참고로 이것이 모토롤라 Shole 폰...



Motorola Shole 폰 root 만들기
1. 폰 배터리 풀 충전
2. USB 드라이버와 RSD Lite 설치하기
3. 폰이 완충되면 USB 케이블을 뽑고 셧다운하기
4. 폰을 부트로더 모드로 시작시키기
    - 키패드 화살표를 윗방향 (화면방향)으로 누른 상태에서 파워버트을 누른다.
5. USB를 연결
6. RSD Lite에서 2.1 SBF를 선택하고 flash 시작
    - 1. device 선택
    - 2. SBF 파일 선택
    - 3. Start 버튼 선택
7. RSD Lite가 flash를 완료할 때까지 대기
    - Status 컬럼이 "Finished"로, Result 컬럼이 "PASS"로 표시될 때까지 기다린다.
    - 중간에 부팅 시퀀스가 진행된다. 당황하지 말고 기다리자.
(폰이 부팅되고 set up 하라는 문구가 나오면 폰 전원을 내리고 3번부터 다시 시작)
    - 이번엔 vulnerable recovery SBF를 flash 한다.
8. 윈도 탐색기로 milestone_root.zip을 폰의 SD 카드 루트에 복사하고 이름을 update.zip으로 변경
9. 폰을 셧다운 시키고 recovery mode로 시작
    - 1. 
        - bootloader가 90.78일 경우 키패드의 'x'키를
        - bootloader가 90.78보다 낮을 경우 '카메라 키'를 
        누른채로 파워버튼을 누른다.
    - 2. 모토롤라 로고가 뜨면 파워버튼에서 손을 뗀다. 하지만 다른 키는 계속 누른다.
    - 3. 공사중 화면이 뜬다.
    - 4. 볼륨 업 버튼과 카메라 버튼을 같이 누른다. (recovery mode 시작)
10. (recovery mode에서) apply sdcard:update.zip"을 선택
    - 화면에 "Rooting your phone..." 이라는 메시지가 뜬다.
    - 커맨드 명령이 다시 나타나면 "reboot system now"를 선택한다.
11. 폰이 재시작되면 초기 설정을 진행하거나 건너뛴다.
    - app이 root 권한을 요구하면 '승인'을 묻는 화면이 팝업될 것이다.

이제 ADB shell에서 'su'를 입력하면 당당한 루트 프롬프트 '#'를 볼 수 있다.
(끝)
Posted by ingeeC
,