'dev1'에 해당되는 글 2건

  1. 2009.05.28 [android] Android Dev Phone Firmware 복구 하기 (2)
  2. 2009.05.07 [android] Android Dev Phone Firmware Upgrade 하기 (2)
2009.05.28 16:30

[android] Android Dev Phone Firmware 복구 하기


전에 업급했듯 Android 단말은 개발용 단말인 Dev Phone 1과 상용 단말인 G1 단말이 있다. Dev1과 G1의 가장 큰 차이는 바로 adb service의 제공 여부다. adb service는 SDK와 단말 사이에 대한 Protocol을 지원하는 것인데 G1은 상용 단말이므로 기본 동작은 disable 되어 출시된다.

Dev Phone은 G1과 달리 이통사와 상관 없이 출시되고 또한 기업의 개발자들이 구매를 하므로 G1 보다 구매 가격이 높다. 따라서, G1을 이미 구매한 사람들이나 일반적인(?) Android 프로그래머는 단말에서 테스트 하기 어렵다.

그런데, Dev1이 아닌 G1 단말에서도 adb를 가능하게 해 주는 방법이 공개되었다. 초기 Android Version의 Back door를 이용하여 adb service를 활성화 하는 것인데 이를 이용하면 G1 단말에서 개발이 가능하게 된다 (이전 글 Android Dev Phone & G1 Phone Unlock 참조). 그 대신, adb는 root 권한을 가질 수 없으며, G1 단말 제조사인 HTC의 공식 update 도 사용 할 수 없어 일부 S/W 개발자가 배포한 Customized Firmware를 이용하거나, Customized Firmware를 직접 만들어 넣는 수 밖에 없다.

Dev Phone의 경우 adb root service는 기본으로 제공한다. 그러나, 최초 부팅 시 Google 계정 등록 화면으로 진행하도록 되어 있어 마치 Lock이 걸린 것 처럼 보일 수 있다. 그런데 만약 이를 해결 하기 위해 G1의 활성화 방법, 즉, Firmware를 업데이트 하는 방법으로 해결 할 경우 껍데기는 Dev1이지만 내부 version은 G1이므로 위에서 언급한 G1에 대한 문제점이 그대로 발생하게 된다.

그렇다고 원래대로 되돌리기도 그리 쉽지는 않다. 이렇게 Dev Phone이 G1으로 변경된 상태에서 Dev Phone Update를 진행하면 비록, Hardware는 Dev1이라 할지라도 Software가 G1이므로 정상적인 업데이트가 진행되지 않는다.

만약 일반적인 Dev Phone의 업데이트 과정을 진행한다면 다음과 같은 메시지를 보게 된다.

Android System recovery utility
E:Can;t open /cache/recovery/command

Home_Back - reboot system now
Alt+L - toggle log text display
Alt+S - appliy sdcard:update.zip
Alt+W - wipe data/factory reset

Installing from sdcard...
Finding update package...
Opening update package...
Verfying udpate package...
E:No signature (5 files)
E:Verification failed
Installation aborted.

Press Home+Back to reboot


결국 S/W가 G1으로 변경되면서 Bootloader Binary도 같이 변경되었기 때문에 해당 업데이트가 진행되지 않는 것이다.

Bootloader Version은 다음과 같이 세 가지 SPL이 있다.

HBOOT-0.95.3000 : Engineering SPL (Dev1)
HBOOT-0.95.0000 : Original SPL (G1)
HSPL10.95.3000 : Hard SPL ( Customized)

다음과 같은 방법으로 현재 Bootloader Binary 정보를 확인 해 볼 수 있는데 G1일 경우 HBOOT-0.95.0000 임을 확인 해 볼 수 있다.

1. 단말 종료
2. CAMERA 버튼 + POWER 로 부팅


따라서, G1용 Bootloader 를 Dev1이나 Customized Version으로 변경을 해 주어야 하며 이는 다음과 같은 방법으로 진행한다.

먼저 adb root service가 가능한지 확인 해 본다.adb root를 입력하여 root 계정을 활성화 여부를 확인 한다.
※ adb service는 활성화 한 상태이어야 한다.

$ adb root
error: closed


만약 root 계정이 활성화 되지 않는다면 위와 같이 에러 메시지가 출력되며 그렇지 않는 경우 adb shell로 접속 시 root 권한으로 실행 할 수 있다. (※ G1인 경우 adb를 이용한 root 계정은 거의 얻을 수 없다고 본다)

root 권한을 얻었다면 이제 이미지 복구를 위해 다음과 같은 과정을 거쳐 이미지를 복구한다.

- Android Market이나 별도의 파일로 제공되는 Telnet Application을 설치한다.
- 복구에 필요한 recovery.img 파일과 Hard SPL 혹은 Engineering SPL을 SDCard에 update.zip으로 복사한다.
- 재부팅 후 Home Screen 화면에서 Keypad를 연다.
- ↙↙telnetd↙ 를 입력한다. (※ 이 때 telnetd라고 출력되는 것은 정상)
- Telnet Application을 실행하면 root 권한을 가진 shell 로 접속이 되는 것을 확인 해 볼 수 있다.
- 이제 Telnet App에서 다음과 같이 입력한다.
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# cd /sdcard
# flash_image recovery recovery.img
# cat recovery.img > /system/recovery.img
- 단말 종료 후 HOME + POWER 버튼을 눌러 Firmware Update 모드로 진입한다.
- ALT + L을 누르면 Update 메시지가 출력되며, ALT + S를 눌러 SPL Verify를 진행한다.
- 업데이트가 완료되면 HOME + BACK을 누르면 Writing이 진행되고 자동으로 재부팅 된다.
- 재부팅 시 Flash ROM Writing이 진행되는 것을 볼 수 있다.
- 두 번 정도의 재부팅이 진행되면 ANDROID LOGO가 약간 달라진 것을 볼 수 있다.

이제 Dev Phone Update v1.5 Binary를 설치 해 볼 수 있으며 이와 관련된 부분은 이전 글 Android Dev Phone Firmware Update 하기 를 참고 하기 바란다.

참고 링크

* http://forum.xda-developers.com/showthread.php?t=442480
* http://www.androidandme.com/2009/05/guides/beginners-guide-for-rooting-your-android-g1-to-install-cupcake/
* http://androidcommunity.com/forums/f54/haykuro-adp1-5hr3-adp1-5hr3-a2sd-1-5-cupcake-16001/index515.html
Trackback 0 Comment 2
2009.05.07 01:14

[android] Android Dev Phone Firmware Upgrade 하기

Android는 지속적으로 update 되고 있으며 최근 SDK와 release된 cupcake version 은 v1.5 이다.

HTC의 경우 Dev1에 대한 Fireware를 제공하고 있으며 다음 문서에서 update binary 및 방법을 알 수 있다.

* HTC Android Dev Phone Update ( http://www.htc.com/www/support/android/adp.html )

다음은 위의 내용 중 v1.5 에 대한 내용을 간략히 설명한 것이다.

1. 업데이트 할 파일 준비

Update 방법으로 Recovery Mode와 Fastboot Mode 두 가지가 있으며 이에 따라 필요한 바이너리는 다음과 같다.

* Recovery Mode
a. Radio Image
b. Recovery Image

* Fastboot Mode
a. Radio Image
b. System Image

여기서는 전통적인 Recovery Mode를 기준으로 진행하기로 한다.

2. Radio Image 업데이트

Radio Image를 받은 후 SDCard에 update.zip이란 이름으로 복사한다.
만약 SDK tool인 adb를 이용하면 다음과 같이 입력한다.

$ cd $ANDROID_SDK
$ cd tools
$ adb push <radio-image-package>.zip /sdcard/update.zip
$ adb sync


POWER 버튼을 5초 이상 눌러 단말을 종료 후, HOME + POWER 버튼을 눌러 Recovery Mode로 진입한다.
진입에 성공하면 다음과 같은 이미지를 볼 수 있다.


키패드를 열어 ALT + L을 눌러 Recovery Mode로 정상 진입 했음을 확인한다.
ALT + S를 눌러 SDCard에 있는 이미지 파일로 update를 진행 한다.

진행 중 Verify, Update가 완료되면 BACK + HOME 버튼을 눌러 Writing 후 재부팅 하도록 해야 한다.
만약 정상적인 방법으로 재부팅이 된다면 Update는 진행되지 않는다.

재부팅 후 다음과 같은 업데이트 화면이 나타나면 완료시 자동으로 재부팅 한다. (version에 따라 이미지는 달라질 수 있다)



3. Recovery Image 업데이트
Radio Image와 마찬가지로 Image 파일을 update.zip이란 이름으로 SDCard에 저장 후 위의 update 과정을 실행한다.

모든 업데이트 과정이 끝나면 다음과 같은 메뉴에서 version 이 update 된 것을 볼 수 있다.

App Menu - Settings - About phone


Trackback 0 Comment 2