May 2011
5 posts
지하철 모노폴리 인생 →
z4195:
그리고 인생 150살까지 살건데 지하철 역따라 한 칸씩 강남으로 집 옮겨가는 것 말고도 하고픈 일은 많을텐데.
그냥 이 표현이 좋았습니다.
지하철 칸 따먹기보다 더 가치 있는 일은 많을 것 같고 그걸 해보고 싶네요.
안드로이드 빌드하기
안드로이드 소스를 가져와서 빌드하는 일은 아는 사람에겐 매우 쉽고 모르는 사람에겐 어려운 일입니다. 구글이 repo라는 특이한 도구를 사용하고 있기 때문에 그렇습니다. repo는 구글이 만들었는데, 리누스 토발즈가 만든 DVCS Git을 응용하는 도구입니다. repo가 하는 일을 정리하면 다음과 같습니다.
복수개의 저장소(repository)에서 원하는 버전을 가져와서 지정된 디렉토리에 저장합니다. 예를 들어 platform/bionic.git은 ./bionic/에 저장됩니다. 어떤 저장소가 어떤 디렉토리에 저장될지는 platform/manifest.git에 있는 default.xml 파일 안에 약속이 되어 있습니다. 이 절차를 통해 우리는 빌드에 필요한 모든 파일트리를 얻게 됩니다.
우리가 브랜치를...
모토쿼티(Milestone) 수동 루팅
루팅을 하고자 마음먹었는데 어플리케이션으로 된 도구나 PC 설치형 도구들은 제대로 동작하지 않았습니다. 원리를 알아보니 exploit를 삽입한 후 su를 추가하는 것에 불과하더군요. 그래서 그냥 수동으로 루팅했습니다. 아래는 그 절차를 간단히 정리한 것입니다.
저는 여기를 참고해서 수동으로 루팅하였습니다. 해당 사이트에서 압축 파일 3개 모두 받으십시요.
먼저 exploit을 설치합니다.
adb push psneuter /data/local/temp/psneuter
adb shell
chmod 755 /data/local/temp/psneuter
./data/local/tmp/psneuter
해당 명령을 수행하면 접속이 끊어집니다. 잠시 후에 다시 접속합시다. $가 아닌 #로 바뀐 것을 확인...
GIT는 거대한 key-value storage다.
아무 저장소에서 .git/objects1에 있는 파일을 아래와 같이 사용해보라.
$ perl -MCompress::Zlib -e \
'$x=inflateInit();while(<>){$o=$x->inflate($_);print $o;}' \
.git/objects/7a/7e7027ee96d482aa5083ae3c536a863381365d
commit 193tree d8329fc1cc938780ffdd9f94e0d364e0ea74f579
author Leonardo YongUk KIM <dalinaum@gmail.com> 1305700904 +0900
committer Leonardo YongUk KIM <dalinaum@gmail.com> 1305700904...
Ubuntu 11.04와 친해지기
우분투(Ubuntu) 11.04의 사용법이 많이 바뀌었습니다. 그놈(Gnome) 대신 유니티(Unity)를 채택했기 때문입니다. 유니티가 낯설고 완성도가 아쉽긴 하지만 전반적으로 맥 OS X과 윈도우 7의 장점를 채택하여 조금 더 나은 방향으로 나아가는게 보입니다.
몇가지 부분에서 팁을 드립니다.
창 관리 (Windows 7)
창을 끌고 위로 올라가면 전체화면으로 확대.
창을 끌고 좌우로 이동하면 화면 절반 사이즈로 확대.
독 (Mac OS X)
슈퍼키(윈도우)를 누르고 숫자를 누르면 독의 프로그램이 수행.
글로벌 스크롤 (Mac OS X)
다른 프로그램 위에서 마우스 스크롤을 위 아래로 움직여봅니다.
독과 글로벌 메뉴의 완성도는 조금 아쉽지만 점차 나아지겠죠. 방향성은 옳다고...