[HTC] 플라이어(Flyer) 4G 허니컴 루팅 - 커스텀 리커버리 플래슁
이전 글에서 어렵게 어렵게(?) 플라이어 4G를 언락(unlock) 했다.
이제 여기에 첨부된 파일을 이용하여 플라이어 4G에 리커버리 이미지를 교체하려고 한다. 리커버리 교체를 통해서 su 라는 명령어는 플라이어 내부에 넣을 수 있고, 이로 통해서 우리는 루트(root)권한을 얻을 수 있다.
- 첨부된 파일을 다운로드 받습니다.
- flyer_c_r_beta.img
- 플라이어의 설정을 USB 디버깅으로 변경합니다.
: 플라이어에서 "설정 -> 응용프로그램 -> 개발" 메뉴를 선택합니다.
: 'USB 디버깅' 이라는 체크박스에 체크 표시를 해줍니다. - 이전 글에서 설치하게된 Android Tools 파일이 있는 곳으로 이동합니다.
: 윈도우에서 시작 -> 실행 -> cmd 를 입력한 후 해당 위치로 이동합니다.
: 다운로드 받은 파일을 이 곳으로 이동(복사)해줍니다. - 커멘드 화면에서 다음과 같이 입력합니다.
: adb reboot bootloader - 이와 같이 입력하면 플라이어의 화면이 변화가 생깁니다. 맨 위에 화면에 *** UNLOCKED *** 이라는 글자가 적혀있는 화면이 나올 것입니다. (여기서
FASTBOOT 라는 메뉴가 보인다면 이를 선택하고 전원 버튼을 눌러줍니다.)
화면 중간에 FASTBOOT USB 로 되어 있는 글자가 적혀있다면 커멘트 화면에 아래와 같이 입력합니다.
: fastboot flash recovery flyer_c_r_beta.img
위와 같은 화면으로 결과 메시지가 나왔다면 성공한 것이다.
볼륨키를 이용하여 REBOOT 메뉴를 선택하고 전원 버튼을 입력하면 재부팅이된다.
이것으로 커스텀 리커버리로 플래쉬 하는것은 끝이다.;;
[HTC] 플라이어(Flyer) 4G 허니컴 루팅 - 언락하기.
다른 안드로이드 장비에는 아이스크림 샌드위치(ICS)가 올라갔지만, HTC 플라이어 4G에는 드디어 허니콤이 올라갔다!!
장점은 진저에서는 활용 못하던 펜!! 허니컴에서는 어디서든지 플라이어 펜을 가지고 사용할 수 있다.
특히, 낙서장처럼 사용할 수 있는 앱에서는 최고!! 기본으로 제공하는 메모장 앱보다, 구글 플레이에 있는 무료 앱을 다운받아서 쓰는게 더 활용도가 높은거 같다.
펜을 활용하기 위한 앱은 다음과 같은 앱들이 있다.
- http://www.htcdev.com/ 에 접속하여 Register 버튼을 누르고 등록합니다.이름, 성
이메일주소, 유저네임(ID)
패스워드, 패스워드 확인
국가
정보를 입력하고 연두색의 Retister 버튼을 누르면, 위에 입력한 이메일 주소로 메일이 하나 도착합니다. - 입력한 메일을 확인하여 메일 내용 중앙의 링크를 클릭합니다.
클릭하면 새로운 페이지가 열리면서 인증이 완료된다. - 다시
http://www.htcdev.com/ 에 접속하여 로그인 합니다. 메인화면의 우측을 보면 Unlock Bootloader 라는 버튼을 누르고 Get Started 버튼을 클릭합니다.
- Unlock Bootloader 화면이 나오면 우측에서 자신에게 맞는 디바이스를 설정합니다.
- 선택 후 하단에 Begin Unlock Bootloader 의 연두색 버튼을 클릭합니다
아래와 같이 언락을 진행할꺼냐는 화면이 나오는데 정말 언락을 하고 루팅을 하고 싶다면 Yes 를 클릭한다. 그리고 다음 화면는 정말로 루팅을 하고 싶다면 체크박스에 체크를 하고 하단에 Proceed to Unlock Instructions 버튼을 클릭합니다.
- 새로운 페이지가 나올 것이고 우측에 나열되어 있는 프로그램을 설치해줍니다.
- 필요한 프로그램을 다 설치했다면 하단에 'Proceed To Step 5' 버튼을 눌러가면서 Step 1부터 Step 13까지 따라합니다.
2011년도 자바 컨퍼런스
빌드된 안드로이드 플렛폼 디버깅하기
이전에 소개한 안드로이드 프로요 전체 소드 다운로드 및 빌드에서 소개된 이미지를 이클립스를 이용하여 디버깅하는 방법을 설명하려고 한다.
방법은 안드로이드 소스를 이클립스에 프로젝트로 추가하고 빌드를 통해서 생성된 system.img을 SDK 폴더로 옮겨서 실행 후 원격 디버깅을 하면된다.
- 안드로이드 플렛폼을 프로젝트로 추가한다.
+ [android_root]/development/ide/eclipse/.classpath 파일을 [android_root]로 이동한다.
+ 이클립스를 실행하고 File -> New -> Java Project 를 실행한다.
+ 다음과 같은 창이 나오면 Contents 항목 중 Create project from existing source 를 선택하고 Directory 위치를 [android_root]로 지정한다.
그리고 finish 버튼을 누르면 끝.
- 빌드된 system.img 파일을 SDK로 복사한다.
빌드에 성공하면 [android_root]/out/target/product/generic/system.img 파일이 생성된다. 이 파일을 [android_sdk_folder]/platforms/android-8/images/에 복사한다. 그리고 ADT를 실행하면 생성된 이미지의 안드로이드가 실행된다.
- 안드로이드 에물레이터를 실행하고 이클립스로 원격 디버깅을 실행한다.
+ 안드로이드 에물레이터를 이클립스 또는 터미널에서 실행하면 이클립스 DDMS 를 보면 다음과 같이 Device 탭에 에물레이터가 잡힌다.
+ 다음은 이클립스 메뉴에서 Run -> Debug Configurations 을 선택하면 왼쪽 하단에 Remote Java Application을 더블클릭하여 새로운 디버그 모듈을 만들고 다음과 같이 입력한다.
Name : Android_debug
Project : [android_root]
Port : 8700
그리고 Apply 하고 Close 를 누른다.
+ 다시 DDMS 화면으로 넘어가서 원하는 프로세스를 선택하고 Debug 에서 Android_Debug를 실행한다. 그러면 다음과 같은 화면 이 나오면 성공!
안드로이드 프로요 전체 소드 다운로드 및 빌드
1. 안드로이드 빌드를 위한 기본 설정
- 안드로이드 빌드 환경
OS : Ubuntu 8.04 또는 상위버전 (저는 10.04 / 10.10 에서 성공했습니다.)
JAVA Version : Java 5.0 (6.0으로 실행시 빌드가 안되네요)
자바 5.0 설치하는 방법
- 안드로이드 빌드하기 위한 apk 설치 (32bit 기준)
# sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
- curl을 이용해서 repo 스크립트를 다운로드
$ mkdir ~/bin$ curl http://android.git.kernel.org/repo >~/bin/repo$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod 755 ~/bin/repo
$ cp ~/bin/repo /bin
- 안드로이드를 받기 위해 폴더를 만들고 버전을 갱신
$ mkdir ~/android_froyo
$ cd ~/android_froyo
$ repo init -u git://android.git.kernel.org/platform/manifest.git$ repo init -u https://android.googlesource.com/platform/manifest
- 안드로이드 2.2 프로요 소스 트리 다운로드
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
$ repo init -u https://android.googlesource.com/platform/manifest -b froyo
- 안드로이드 소스 다운로드
$ cd ~/android_froyo
$ repo sync
make 실행하여 전체 빌드하기
$ cd ~/android_froyo$ export ANDROID_JAVA_HOME=$JAVA_HOME (자바 경로 안잡힌 분들만)
$ make
- 전체 빌드 후 일부분을 수정하고 부분 빌드하는 방법
$ cd ~/android_froyo
$ source ./build/envsetup.sh
(터미널을 열고 한번만 실행해주면 됩니다.)
$ mmm packages/apps/Contacts
(소스의 Contacts 어플을 수정하였을 경우이며, 부분 빌드가 가능한 곳은 수정한 소스의 상위 폴더에 Android.mk 파일이 있는 위치를 예와 같이 실행하면 됩니다.)
$ make snod
(부분 빌드가 끝나면 위와 같이 실행하면 system.img 파일이 생성된다)
해킹팟 성능 향상을 위한 최적화
서비스 이름 |
설명 |
필수 |
비고 |
com.apple.accessoryd.plist |
액세서리를 사용할 수 있데 도와주는 서비스 |
△ |
Dock 스테이션같은 액세서리를 사용하지 않는다면 제거 |
com.apple.AddressBook.plist |
주소록 로딩 속도를 빠르게 도와주는 서비스 |
△ |
지우면 주소록 상세보기 로딩 속도가 느려진다. |
com.apple.AdminLite.plist |
오랜시간동안 응답 없는 프로세서를 강제 종료할 수 있게하는 서비스 |
△ |
응답없는 어플이 종료될때까지 기다릴꺼라면 제거 |
com.apple.AOSNotification.plist |
Mobile Me 동기화 서비스 |
△ |
Mobile Me가 무언지 모른다면 제거 |
com.apple.apsd.plist |
푸싱 서비스 |
△ |
푸시 알림 기능을 사용하지 않는다면 제거 |
com.apple.aslmanager.plist |
시스템 기록 관리 |
X |
|
com.apple.BTServer.plist |
? |
필수 |
|
com.apple.chud.chum.plist |
애플의 CHUD와 관련 있는 서비스 |
X |
개발자가 아니라면 삭제 |
com.apple.chud.pilotfish.plist |
애플의 CHUD와 관련 있는 서비스 |
X |
개발자가 아니라면 삭제 |
com.apple.CommCenter.plist |
전화 걸기/받기 서비스 |
필수 |
터치사용자도 제거하면 안된다. |
com.apple.configd.plist |
시스템 설정 |
필수 |
|
com.apple.CrashHousekeeping.plist |
크래쉬 로그 관련 서비스 |
X |
|
com.apple.daily.plist |
? |
? |
|
com.apple.dataaccess.dataaccessd.plist |
마이크로소프트 익스체인지 / 구글 싱크를 통해 동기화 하는 서비스 |
△ |
동기화하지 않는거 하면 제거 |
com.apple.datamigrator.plist |
USIM에 연락처 저장 |
X |
아이팟 필요 없음 |
com.apple.DumpPanic.plist |
크래쉬 로그 덤핑 |
X |
|
com.apple.fairplayd.plist |
음악/어플에 대한 DRM 검사 |
필수 |
|
com.apple.gmmd.plist |
디버깅 서비스 |
필수 |
|
com.apple.graphicsservices.sample.plist |
앨범 아트윅 표시 |
필수 |
|
com.apple.iapd.plist |
? |
△ |
|
com.apple.installd.plist |
어플 설치 |
필수 |
|
com.apple.iqagent.plist |
? |
△ |
|
com.apple.itdbprep.server.plist |
? |
△ |
|
com.apple.itunesstored.plist |
|
|
|
com.apple.locationd.plist |
위치 정보 서비스 |
필수 |
|
com.apple.mDNSResponder.plist |
DNS |
필수 |
제거하면 인터넷 사용 불가 |
com.apple.mDNSResponderHelper.plist |
DNS |
필수 |
제거하면 인터넷 사용 불가 |
com.apple.mediaserverd.plist |
미디어 재생 |
필수 |
|
com.apple.mobile.lockbot.plist |
|
|
|
com.apple.mobile.lockdown.plist |
|
|
|
com.apple.mobile.obliteration.plist |
기기의 데이터를 삭제하는 것과 관련된 서비스로 익스체인지 나 Mobile Me의 데이터를 삭제하거나 기기 자체의 데이터 리셋에 대한 서비스 |
△ |
|
com.apple.mobile.profile_janitor.plist |
? |
△ |
|
com.apple.MobileFileIntegrity.plist |
|
|
|
com.apple.MobileInternetSharing.plist |
인터넷 쉐어링(테더링) 서비스 |
X |
아이팟 터치로 테더링에 관심없으면 제거 |
com.apple.mtmergeprops.plist |
|
|
|
com.apple.nmbd.plist |
|
|
|
com.apple.notifyd.plist |
|
|
|
com.apple.powerlog.plist |
제3사의 충전기와의 비호환성 감시 |
X |
|
com.apple.psctl.plist |
외부 장치와 연결하는데 관련된 서비스 |
△ |
|
com.apple.racoon.plist |
VPN 서비스 |
△ |
VPN이 무슨말인지 모르면 제거 |
com.apple.ReportCrash.DirectoryService.plist |
오류보고 |
X |
|
com.apple.ReportCrash.Jetsam |
오류보고 |
X |
|
com.apple.ReportCrash |
오류보고 |
X |
|
com.apple.ReportCrash.SafetyNet |
오류보고 |
X |
|
com.apple.ReportCrash.SimulateCrash |
오류보고 |
X |
|
com.apple.SCHelper-embedded.plist |
|
|
|
com.apple.searchd.plist |
|
|
|
com.apple.securekeyvaultd.plist |
|
|
|
com.apple.securityd.plist |
|
|
|
com.apple.smbd.plist |
|
|
|
com.apple.SpringBoard.plist |
|
|
|
com.apple.stackshot.server.plist |
? |
△ |
|
com.apple.syslogd.plist |
시스템 로고 서비스 |
X |
|
com.apple.tcpdump.server.plist |
? |
△ |
|
com.apple.UIKit.pasteboardd.plist |
|
|
|
com.apple.usbptpd.plist |
USB로 컴퓨터 연결 . 충전 |
필수 |
|
com.apple.wifiFirmwareLoader.plist |
|
|
|
자바에서 사용할 수 있는 GUI 툴킷(Toolkit)
애플 아이디 변경 가능할까?
3. 로그인 후 "Apple ID and Primary Email Address" 아래 현재 자신이 사용하고 있는 메일 주소가 나온다. 이 주소 옆에 "Edit"를 누르고 바꾸고자 하는 메일 주소를 입력한 후 하단의 'Save Changes' 버튼을 누른다.
4. 변경한 메일로 변경 요청 메일을 확인하면 새로운 아이디로 변경된다.
답변. 애플 아이디 변경은 가능하다 입니다!!
GTD (Getting Things Done)
GTD(Getting Things Done)의 교훈은 간단하다.
"시간을 관리하지 마라!"
우리가 관리할 수 있는 건 시간이 아니라 우리의 행동이란 것이다. 시간은 누구에게나 24시간 밖에 없다. 아무리 시간을 관리해도 절대적인 시간은 늘어나지 않는다. 이런 상항에서 시간을 쪼개서 일을 관리하는 것은 단지 스트레스 요인이 될 뿐이라는 것이다. 머릿속에 해야할 일이나 목표를 두 가지 이상 간직하고 있으면 그게 곧 스트레스가 된다. 지금 무언가를 하고 있어도 "다음에는 뭘 해야하는데..." 하는 생각이 자꾸 떠오르지 때문이다.
GTD는 그런 스트레스를 없애라고 말한다. 우리가 어떤 일을 하는 것은, 그것이 긴급하고 중요한 일이기 때문이 아니다. 단지, "자연스럽게" 그 일을 해야할 때가 되어서 하는 것 뿐이다. 예를 들어 회사일은 대부분 집에서 처리하기 힘든 일이다. 그런데 자꾸 회사에서 해야할 일을 집에서까지 머릿속에 간직하고 있으면 그것 자체가 엄청난 스트레스가 된다. 그래서 GTD는 그런 목표라든지 일의 중요성 따위는 머릿속에서 지워버리고, 일의 흐름만 관리하라고 말한다. 그게 결과적으로 일을 빨리 처리하는 일이다. 스트레스 요인은 자꾸 일의 흐름을 방해하기 때문이다.
위의 워크플로우에 대한 간단한 요점 정리는 다음과 같다.
- 모든 Stuff (만남약속, 읽어야되는 메모, 이메일, 청구서, 업무...)는 처음엔 INBOX로 들어간다.
- 한번 본 INBOX 아이템은 다시 INBOX로 들어가지 않는다.
- 모든 업무는 INBOX에 수집된 후 검토와 정리의 과정을 통해서 8가지 목적지 중 하나로 옮겨간다. 쓰레기, 보류, 참고, 프로젝트 수립, 프로젝트 계획, 특정한 일에 처리, 최대한 빨리 처리, 위임. (+바로 수행)
- 프로젝트( = 목표 + 목표): 목적를 달성하는데 필요한 2가지 이상의 행동들
- 프로젝트의 다음 행동내가 오늘 하루를 프로젝트에 제시한 목표를 달성하는데 투자한다면 당장 무엇을 해야할까? 에 대한 답
- 2분의 규칙: 2분안에 끝낼 수 있는 다음 행동들은 당장 실행한다.
- 수집함과 다음 행동이 비어있으면 아무것도 안해도 된다. 마음편히 쉬자!
- '시간 관리'는 없다. 아무리 관리해도 하루가 25시간이 되지 않는다. 우리가 관리할 수 있는 것은 잔신의 행동이다.
- 매일 계획을 세우지 않는다. 계획은 실전에 수행되기 힘들다.
- 일에 우선순위를 두지 않는다. 일은 중요한 것부터 먼저하는 것이 아니라 그 일을 할 수 있는 상황에 처했을 때 하는 것이다. 시간적 압박이 있는 일은 달력에 입력한다.
- 검토는 일정한 기간마다 정기적으로 하는 것이 아니고 필요한 만큼 한다. 하루에 5번 할 수도 있고, 일주일에 한번할 수도 있다.
- 메모하는 습관을 길러야한다. 머리속에 남은 미완의 과제들은 스트레스의 근원이다. 모두 적어서 수집합에 넣어버려야 한다. 만약 수집합에 넣지 않는다면 수집함을 비워도 시원하지 않고 찝찝함을 느끼게 된다.
일이 다 처리되었으면 다 잊어버리고 마음 편히 쉬는게 가장 중요하다.
그리고 중요한 부분은 액션과 프로젝트를 잘 구분하는 일이다. 예를 들어 "부자가 되자"란 목표가 있다고 해보자. 이 말은 자체로는 실행이 불가능하다. 과연 어떻게 부자가 되겠다는 것일까? 이런 만역한 목표를 마음속에 많이 간직할 수록 스트레스만 받는다.
그렇다면 어떻게 해야할까?
일단 이런 항목은 프로젝트로 분류(부자가 되자! 프로젝트 수립)한다. 그리고 시간이 나면 프로젝트를 어떻게 실행할 수 있을지 생각해본다. 그래서 "부자가 되는 법을 써놓은 책을 찾아보자." 따위의 말을 생각해내면 일단 성공이다.(프로젝트 계획)이 말은 액션에 가까운 말이기 때문이다. 이런 식으로 계속 목표를 구체화시킨다. "인터넷 서점에 방문해서 경제/부자 키워드로 책을 검색한 후 가장 잘팔리는 책 목록을 뽑는다." 수준까지 내려가면 당장 실행할 수 있는 액션이 된다.그러면 이 일을 이제 처리하면 된다. 중요한 점은 그 책을 읽기 전까지는 다음 액션에 대해서 생각하지 않아야한다. 그걸 생각하기 시작하면 역시 또 스트레스가 된다. 위의 요약본에서도 언급했듯 프로젝트에서 우리가 답해야하는 질문은 딱 하나다. "내가 오늘 하루흫 온통 이 프로젝트에 제시한 목표를 달성하는데 투자한다면 당장 무엇을 해야할까?"
"논문을 쓰자"와 같은 프로젝트로 마찬가지다. 논문을 쓰려면 일단 주게가 있어야 하고, 관련 참고문헌을 찾아야 한다. 그리고 보통 그일이 끝나고 나서야 아이디어나 방법론을 정리할 수 있다. 이렇게 일을 쪼개서 액셕 별로 하나씩 처리해야 된다. 그냥 내가 전에 그랬던 것처럼 만역히 써야겠다. 라는 생각만 갖고 있으면 결국 스트레스만 받고 하나도 못 쓰는 것이다.
[출처: http://mcfrog.org/tt/846]
리눅스 디렉토리 구조
/sbin [:: system binary]
/boot