2010년 5월 30일 일요일

넥서스 원 froyo 업데이트. (for rooted device - status 7 에러)


Google Android Froyo? The Next Version Of The Popular Mobile OS

이미지출처 : www.inquisitr.com


구글에서 제공하는 핸드폰 넥서스 원. 그리고 최근에 업데이트된 OS 2.2 Froyo.

Froyo는 Frozen Yogurt의 줄인 말이라고 한다. 컵케이크, 도넛, 에클리어, 프로요, 진저 브레드. 알파벳 순으로 뭔가 먹는... 간식 종류로 프로젝트 명을 정한다고.

어쨋거나. 넥서스 원에 프로요가 비공식적으로 공개되었다. 실제로는 공식 공개가 되었다가 바로 공식 사이트에서 내려 버린 건 데. 인터넷이 어떤 세상인가. 검색만 하면 쉽게 찾을 수 있다.

http://phandroid.com/2010/05/22/manually-update-your-nexus-one-to-android-2-2-froyo/

위의 링크는 OTA (Over-the-air)가 아닌 수동으로 넥서스원을 업데이트하는 방법을 설명하고 있다. 업데이트 파일을 SD 카드에 넣은 후 부트로더 - 리커버리 모드로 진입하여 시스템을 업데이트 하는 방법이다.

문제는 루팅(rooting)이 된 넥서스 원이다. Froyo 업데이트는 시스템이 정상 상태인 지를 확인한 후에 실행되는 데 rooting이 되어 있으면 업데이트가 정상적으로 이루어지지 않는다. 루팅이 단순히 부트로더만 덮어 써서 루트권한만 획득한 수준이던지 혹은 아예 Custom Rom을 깔았든 지 무관하게 업데이트가 되지 않는다.

루팅된 디바이스들은 다음과 같은 에러를 볼 수 있다.

Installing update...
Verifying current system...
assert failed: apply_patch_check("MTD:boot:2512896:......")
E:Error in /sdcard/update.zip
(Status 7)


위의 메시지는 부트관련된 이미지 영역에 대한 검사가 실패했음을 표시하는 걸로 추정된다.


참고로 루팅을 하기 위해서는

1. OEM Unlock ( 이 과정에서 Warranty가 날아감 )

2. 부트로더 이미지 교체 ( boot.img )

3. 리커버리 이미지 교체 ( recovery.img )

4. 롬 이미지 교체 ( system.img )

의 과정으로 이루어지는 데. 1번만 해 놓은 상태에서는 모든 이미지가 stock, 즉 공식 이미지이므로 업데이트에 문제가 없다. 하지만 2,3,4 과정에서 한 하나의 이미지라도 교체가 되어 있다면 update가 되지 않는다.

위의 에러 메시지는 2번, 부트로더의 교체에서 기인한 것으로 추정된다.


시스템까지 커스텀 롬으로 교체했다면 방법이 없다. 모두 다 stock 이미지로 원상 복귀해야 한다. 이 과정들은 xda-developer 사이트 등에서 찾을 수 있다.

http://www.machackpc.com/headline/restore-your-nexus-one-to-its-original-shipping-image/

위의 사이트를 참고하고, xda-developer 포럼을 검색해 보는 게 정답. xda-developer 포럼은 이미 루팅까지 된 프로요 기반 커스텀 롬을 배포하고 있다.


자... 그런데 개발자 입장에서는 대부분 1-4의 과정을 거치지 않고, 1-2까지의 과정만을 통하여 안드로이드 기기의 루트 권한을 획득하는 데까지만 간다. 개발을 위해서는 루트 권한은 획득할 필요가 있지만, 굳이 커스텀 롬 기반에서 개발을 할 이유가 없기 때문인 데.

1-2까지만 가 있을 경우 위 사이트의 순서를 따라하는 건 매우 곤욕스러운 일이다. 위의 과정은 리커버리 이미지가 교체되어 있다고 가정한 것이므로, 1-2 과정만 진행한, 즉 루트 권한만 획득한 사람들은 3-4의 과정을 거친 후 다시 위 사이트의 링크를 따라가서 순정 이미지로 원복하고 다시 업데이트를 해야 하는... 아주 지저분한 상황이 발생하기 때문이다.

자... 그럼 어떻게 하느냐?

http://android.modaco.com/content/google-nexus-one-nexusone-modaco-com/300414/10-may-erd79-epf21b-stock-rom-for-nexus-one-images-zip-online-kitchen-optional-root-insecure-himem/

위의 링크로 가서, 자신이 가진 넥서스원의 버전에 맞는 image들을 다운로드 받는다. 반드시 자기가 가진 넥서스원과 맞는 버전의 image 파일을 받는다.

This is the stock image repacked to an update ZIP for installation via a custom recovery image. It is completely stock, secure and unrooted.

이렇게 써 있는 곳 아래의 링크에서 파일을 받아야 한다.

파일의 압축을 풀면 boot.img 파일을 찾을 수 있다.

루팅할 때와 마찬가지로, fastboot 명령으로 boot.img 파일을 덮어 쓴다.

# fastboot flash boot.img

이렇게 하고 나면 루트 권한을 삭제한 원래 부트 이미지로 복구가 되며, 업데이트를 실행할 수 있다.



* 그나저나 텍스트큐브는 서비스 포기한다더니 어떻게 되어 가는 건가..?