CentOS 5.5에서 Android 커널 컴파일 하다 아래와 같은 오류가 생길 때가 있다.


host C: sqlite3 <= external/sqlite/dist/shell.c

external/sqlite/dist/shell.c: In function ‘callback’:

external/sqlite/dist/shell.c:540: warning: comparison between signed and unsigned

external/sqlite/dist/shell.c:551: warning: comparison between signed and unsigned

external/sqlite/dist/shell.c:561: warning: comparison between signed and unsigned

external/sqlite/dist/shell.c:575: warning: comparison between signed and unsigned

external/sqlite/dist/shell.c:580: warning: comparison between signed and unsigned

external/sqlite/dist/shell.c: In function ‘do_meta_command’:

external/sqlite/dist/shell.c:1051: warning: comparison between signed and unsigned

external/sqlite/dist/shell.c:1603: warning: comparison between signed and unsigned

host Executable: sqlite3 (out/host/linux-x86/obj/EXECUTABLES/sqlite3_intermediates/sqlite3)

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `PC'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetflag'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetent'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `UP'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tputs'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgoto'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetnum'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `BC'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetstr'

collect2: ld returned 1 exit status

make: *** [out/host/linux-x86/obj/EXECUTABLES/sqlite3_intermediates/sqlite3] 오류 1

[studioego@localhost cupcake]$

위와 같은 문제가 일어날 경우 아래와 같이 작업을 해준다.

[studioego@localhost cupcake]$ yum install -y readline*

[studioego@localhost cupcake]$ vi ./external/sqlite/dist/Android.mk


ifneq ($(strip $(have_readline)),)

-LOCAL_LDLIBS += -lreadline

 endif


위의 대용 대신 대신 아래와 같이 -lncurses 를 추가한다.

+LOCAL_LDLIBS += -lreadline -lncurses


ifneq ($(strip $(have_readline)),)

-LOCAL_LDLIBS += -lreadline -lncurses

 endif


 

Buy me a coffeeBuy me a coffee





아래는 옵티머스Q 루팅법에 적힌 글을 인용한것입니다.


현재 발견된 취약점으로 아마 모든 안드로이드 폰의 루팅이 가능할 것으로 보입니다 'ㅅ'

본 루팅과정은 드로이드X 루팅 과정인 http://alldroid.org/default.aspx?g=posts&t=493를 Optimus Q에 맞춰서 수정한겁니다. 

아무튼! 다음과 같이 차례대로 진행하시면 됩니다.

1. 옵큐를 usb로 컴과 연결하고 설정->응용프로그램->개발->usb디버깅에 체크한다.
2. 첨부파일을 받아서 c:\ 에 압축을 푼다.
3. 시작->실행에 들어가서 cmd 실행
4. cd c:\adb 치고 엔터
5. 이제 다음 내용을 차례대로 붙여넣기하고 엔터치면 됩니다. ㅇㅇ
 
    adb push su /sdcard/su
    adb push exploid /sqlite_stmt_journals/exploid
    adb shell
    cd /sqlite_stmt_journals
    chmod 755 exploid
    ./exploid
    rootshell
    secretlol
    cat /sdcard/su > /system/bin/su
    chmod 4755 /system/bin/su
    rm /system/bin/rootshell
    exit
    exit

6. 루팅완료!

PS. su 바이너리가 달라서인지 superuser.apk가 작동을 안하네요. 그래서 과감히 빼버렸어요. 아무튼 그래서 갤s나 다른 루팅된 기기와 달리 슈퍼유저 권한을 요청할때 allow창 같은게 안뜹니다. (보안상으로 매우 취약하군요ㄷㄷ)

PS2. busybox도 말을 안들어서 빼버렸습니다. 마켓에 검색해서 직접 깔아주세요.


LG에서 나온 옵티무스Q말고도 모토로이, 드로이드x 루팅하는 법과 국내판 갤럭시S [M110S] 루트권한 얻기시리우스 루팅방법...등의 방법이 나와 있습니다.

나온 방법들을 보면 Android OS의 취약점들을 이용하여 Root권한을 획득하는 것입니다.

보통 HTC의 단말기나 NexusOne같은 경우는 부트로더를 건드려 Root권한을 획득하기 때문에 HTC의 단말기같이 일부로 부트로더를 쉽게 루팅할수 있는 기계가 아닌 이상 모토로라사의 안드로이드폰이나 국내 안드로이드폰도 Root권한을 얻기 어려웠습니다.

이번 루팅은 Android OS의 취약점을 사용하여 부트로더를 안 건드리는 방법으로 폰들의 Root권한을 획득하는 식이다 보니, 약간의 Android OS의 보안문제가 있을 수 있겠군요.

위의 사례에서 보인 것 같이 오픈소스(Opensource)로 공개된 안드로이드(Android) OS는 Linux Kernel위에 Dalvik VM(SUN사의 Java VM을 따라하여 Java실행할수 있게 만든 Virtual Machine)이 올라간 형태입니다.

위의 오픈소스 같은 경우 소스가 공개된 상태이기 때문에 소스에 취약점이 있으면 공통적으로 바로 발견이 가능합니다.


오픈소스로 공개된 리눅스의 장점이랄까요? 단점이랄까요? 단점인 취약점이 금방 공개가 되는 듯 합니다.(그 단점으로 인해 빠른 패치가 가능하다는 장점도 있습니다.) 

안드로이드 오픈소스의 취약점이 바로 발견되기 때문에 위의 취약점으로 해킹을 하여 안드로이드폰 자체가 망가질 수 있는 문제점이 보이기 시작할듯 합니다. 

안드로이드폰의 보안 이슈에는 Root권한을 획득한 폰에서 앱을 통하여 해킹당할때의 문제가 있었지만, 이제는 Root권한을 획득하지 않은 일반 폰에서 앱에서 root권한을 취득할수 있게 만든 코드에서 해킹에 속수무책인 사항까지 나아간것 같습니다.

아마 위의 사례처럼 Android 2.2에서도 취약점발견되어 root권한 획득하는 방법이 있을듯 합니다. (Google측에서 취약점을 몰랐을 경우)

위의 취약점 사례는 아마도 Android Gingerbread 버전에서 사라질 가능성이 있습니다.

Buy me a coffeeBuy me a coffee


2010년 7월 9일. 우리은행에서 웹 표준을 지킨 "우리오픈뱅킹"서비스를 오픈하였습니다.

우리 오픈뱅킹의 주소는 http://u.wooribank.com/ 으로 Windows, Mac, Linux에서 원활하게 접속이 가능하며 IE뿐만 아니라 Firefox, Chrome에서 접근이 가능하다고 합니다.

저도 현재 쓰고 있는 컴퓨터에 설치된 Ubuntu에서 "우리오픈뱅킹"이 동작되는지 직접 접속하게 되었습니다.

다양한 OS와 브라우저에서 열리는 우리오픈뱅킹


접속하는데엔 문제가 없었습니다.

그러나 우리은행에 로그인 하려고 하니 개인방화벽을 설치하라고 뜹니다. (제가 쓰고 있는 OS는 Ubuntu 10.04 입니다)


이제 개인방화벽을 설치하려니... Linux용 nProtect가 나옵니다.

예전 제 블로그에 올렸던 Linux용 nProtect출시? 가 사실로 판명되는 순간입니다.

리눅스용 nProtect 입니다.


개인 방화벽을 깔고 나선 서버와 통신하는 프로그램들은 계속 의심을 하다 네트워크에 접속 시도할지에 대해 물어봅니다.


개인방화벽인 nProtect를 깔고 나선 Linux(Ubuntu 10.04)에서 정상적으로 계좌 조회도 가능합니다.

이체는 OTP가 있어야 가능하지만 OTP를 발급 못받아서 시도는 하지 않았습니다.


Windows에서 IE로 인터넷 뱅킹을 하지 않고도 Firefox, chrome에서 아니  리눅스/맥에서 인터넷뱅킹 화면을 볼 수 있다니, 정말 엄청난 발전을 하였습니다.

많은 사람들이 Windows+IE에서 ActiveX를 꼭 써야 인터넷 뱅킹을 써야하는 의문을 제기하고 오픈뱅크에 대한 운동을 하였지만 그 운동의 결실이 이제서야 우리은행에서 우리오픈뱅킹으로 나타났습니다.


아쉬운점은 nProtect같은 플러그인 없어도 돌아갈 수 있는 인터넷 뱅킹이였으면 하지만. 이거라도 어디입니까? ㅎㅎ 


ps. Linux(Ubuntu, Fedora Core), Mac등에서 우리 오픈뱅킹을 사용하려면 꼭 OTP가 있어야 제대로 된 은행 업무가 가능합니다.


ps2. 나의 주거래 은행은 이제 우리은행이다?!

Buy me a coffeeBuy me a coffee



MobileCrunch 에서 재미있는 기사가 올라왔습니다. 

Video: Ubuntu running on a Nexus One 라고 넥서스원에 우분투를 돌리눈 동영상입니다.


NexueOne를 전화통화를 할수 있는 스마트폰이지만 추가로 Geek들이 선호하는 리눅스인 Ubuntu를 사용할수 있다고 하더군요. 

제가 소개하는 건 Ubuntu를 NexusOne에 설치할때 새로운 커스텀 ROM을 넣는 방식이 아니고 그저 사용하는 넥서스원에서 그대로 Ubuntu를 설치하면 우분투가 돌아간다고 하더군요.

NexusOne에서 Ubuntu를 설치하는 방법은 NexusOne Hacks이라는 사이트에 있는 How to Install Ubuntu on Your Nexus One/Android! 를 보시면 할수 있답니다.


ps. 제가 사용하고 있는 hTC Desire에 Ubuntu를 설치하고 싶긴 해도 내가 능력자가 아니기 때문에 Desire에 Ubuntu를 사용할 용자짓을 하지 못하겠음 ㅎㄷㄷ


아래는 NexusOne에 Ubuntu를 돌리는 동영상입니다.

Nexus One Hacks - Ubuntu Running on Nexus One Android!

Buy me a coffeeBuy me a coffee



우리은행 오픈뱅킹


우리은행에서 국내 최초 멀티 OS, 멀티 웹브라우저 오픈뱅킹 출시를 하였다고 합니다.


- 매킨토시와 리눅스에서도 인터넷뱅킹이 가능한 -
우리은행,『우리오픈뱅킹』서비스 실시
- 국내 금융기관 최초로 멀티 운영체제 및 웹브라우저를 지원하는 인터넷뱅킹 서비스
  - OTP발생기 사용 의무화와 가상키보드 도입 등으로 인터넷뱅킹 보안 더욱 강화시켜 
  - 주요 서비스 이미지를 최소화한 텍스트 뱅킹서비스 구현으로 빠른 서비스 제공

우리은행에서 선보이는 우리 오픈 뱅킹은 아래와 같이 OS에 종속되지도 않고, 멀티 OS지원, 멀티 웹 브라우저를 지원한다고 합니다.

  1. W3C인증을 획득한 웹표준 인터넷뱅킹입니다.
  2. 윈도/맥/리눅스 환경에서 IE/Safari/Firefox/Chrome/Opera 등 다양한 웹브라우저를 지원합니다.
  3. 텍스트 기반이라 빠르며, 주요 화면 키보드 단축키 적용으로 편리한 이동이 가능합니다.
  4. 이체 거래시 OTP발생기 필수사용으로 보안이 더욱 강화되었습니다.

참고로 OTP가 있어야 인터넷 뱅킹이 가능합니다. 대한민국에서 SSL기반의 뱅킹이라는건 혁명입니다.


우리은행 직원분이 클리앙에서 우리은행 오픈뱅킹(웹표준) 7월 9일 출시 에 사람들이 궁금해하는 내용을 아래와 같이 정리를 하였습니다.

1. 오픈뱅킹은 100% 웹 기반으로, 사용하시는 웹브라우저로 접속하시면 됩니다.
2. 공인인증서 사용을 원치 않으실 경우 아이디/패스워드로 로그인 후 조회는 가능하나 이체가 불가능합니다. ㅠㅠ
3. 현재 법규상 '접속 시 우선적으로 방화벽, 키보드 보안 프로그램 등을 설치'하도록 되어 있습니다.

4. 보안 프로그램 사용을 원치 않으시는 경우 간단히 해제 및 삭제하실 수 있습니다.
5. 스마트폰에서의 직접 접속은 앞서 말씀드린 '보안 프로그램 우선 설치' 때문에 아직 논의 중입니다.


Windows에서 IE의 ActiveX기술을 이용한 공인인증서와 nProtect를 꼭 사용해야하는 인터넷 뱅킹이 아닌 외국처럼 어느 플랫폼에서 어느 웹브라우저를 쓰든 SSL+OTP로 인터넷 뱅킹을 할수 있게 되었습니다^^

Windows XP + Ubuntu 10.04 (Linux)에서 주로 Firefox와 Chrome을 쓰고 있는 저로서는 정말 반가운 소식입니다.

이제 은행 업무를 하기 위해 Ubuntu에 virtual box에 Windows XP를 까는 일을 하지 않아도 되겠군요.


ps. 스마트폰(hTC Desire)용 모바일 뱅킹때문에 하나은행으로 쭉 썼는데, Ubuntu를 쓰고 있는 저로선 우리은행으로 주거래 은행을 바꿔야할지 고민입니다.^^ 

ps2. 당장 우리은행에 가서 OTP발급을 받아야되겠습니다^^

Buy me a coffeeBuy me a coffee

이번에 안드로이드의 리눅스 기반 애플리케이션 만들기에 도전을 해보았습니다.

리눅스를 기반한 안드로이드 플랫폼 개발을 위해선 C언어를 우선 알아야 합니다.

C언어 정도는 Java를 알면 금방 배우는 쉬운 언어입니다^^


C언어를 알았으면 리눅스 기반의 안드로이드 애플리케이션을 만들때 필요한 크로스 컴파일용 툴 체인(Tool Chain)을 설치해야합니다.

툴체인은 android-group-koreaDownload에 여러가지 종류가 있는데 그 중 하나인 arm-cortex_a8-linux-gnueabi-20100108.1030.tar.bz2 을 다운로드 받아 Ubuntu 10.04에 툴 체인을 설치하였습니다.

(※ Tool Chain설치는 [common]Kandroid Toolchain Ver.20090108 for Cortex-A8를 참고하시면 됩니다.)


툴체인을 설치 후엔 아래와 같이 C언어 코드(hello.c)를 작성합니다.


#include <stdio.h>
int main(int argc, char *argv[])
{
    printf("Hello, Android!\n");
    return 0;
}

코드 작성후 아래와 같이 컴파일 합니다.

저는 arm-cortex_a8-linux-gnueabi-20100108.1030.tar.bz2 를 다운 받아서 arm-cortex_a8-linux-gnueabi-gcc가 들어갔습니다. 툴체인의 버전에 따라 이름이 다르긴해도 툴체인의 컴파일러 실행파일 뒤에는 gnueabi-gcc가 붙습니다.


studioego@studioego-desktop:~/working$ arm-cortex_a8-linux-gnueabi-gcc hello.c -static -o hellostatic

컴파일을 하고 나선 컴퓨터에서 실행하려면 안됩니다. 이유는 컴퓨터(x86)용으로 컴파일 한 것이 아니라 안드로이드용 기계(arm)용으로 컴파일되어 돌아가지 않을뿐.


studioego@studioego-desktop:~/working$ ./hellostatic
bash: ./hellostatic: cannot execute binary file

위의 실행파일을 실행시키려면 x86용으로 컴파일을 하지 않았기 때문에 실행이 되지 않습니다.


컴파일하여 나온 결과파일을 안드로이드폰인 제 hTC Desire에 넣어보고 실행을 하겠습니다.


studioego@studioego-desktop:~/working$ adb push hellostatic /data/ch13
614 KB/s (586197 bytes in 0.931s)
studioego@studioego-desktop:~/working$ adb shell
# cd /data/ch13
# chmod 777 hellostatic
# ./hellostatic
Hello, Android!
#




위의 화면에서 나온 것 처럼 Hello, Android!가 실행됩니다.

그리고 휴대폰에서 터미널을 띄어넣고 hellostatic을 실행해도 똑같은 화면이 나옵니다.




단순한 애플리케이션이지만 C언어로도 Android 어플을 만들수 있다는 것을 보여줍니다.

여기까지 경지에 오려면 툴체인의 개념을 잘 알아야 하던데, 아직 저도 툴체인쪽 개념은 젬병 ㅡㅡ;;

Buy me a coffeeBuy me a coffee





N8 in the hand
N8 in the hand by RafeB 저작자 표시비영리동일조건 변경허락


N8 homescreen widgets
N8 homescreen widgets by RafeB 저작자 표시비영리동일조건 변경허락


이번에 발표가 될 Nokia N8이 N시리즈에서 마지막으로 Symbian을 쓰는 폰이되었다고 합니다. N8을 Symbian으로 쓰고 다음 N시리즈는 전부 Maemo의 후속 OS이고 Intel사와 합작하여 만든 MeeGo가 들어간다고 합니다.

단 N시리즈 모델에서 올해 여름에 나올 N8이 마지막 Symbian모델이고, 후속 N시리즈가 MeeGo가 탑재될뿐, Symbian 은 계속 탑재되어 나올겁니다.  예산에 민감한 C시리즈(이건 진짜 저가폰)은 S40으로 존재할것입니다. (참고: S60이 Symbian OS중에서 가장 성능과 기능이 많은 OS입니다. S40는 저가용 휴대폰에 탑재되는 OS.)

그러나 X 시리즈와 E시리즈등의 Nokia 장치들에는 계속 Symbian OS가 탑재될 예정입니다.


According to the Nokia peeps we spoke to, the N8 will be the last N-series to run on Nokia's Symbian platform; all N-Series from here on will run MeeGo. This leaves Symbian (in its current version 3 and the future version 4) on Nokia's X- and E-series devices, with the budget-conscious C-series making use of the existing Series 40 platform. The N9 will be the first MeeGo device, but with the N8 shipping at the end of Q3 or early Q4 it's hard to say whether the N9 will see the inside of phone stores before the end of the year.
출처: Nokia N8: in depth



Nokia사가 Symbian을 계속 밀다 앱 구현이 편리하며 확장성이 있는 iPhone과 Android에 밀려 고전하여 Open Source화를 하였습니다.

이제는 iPhone과 Android랑 상대가 되지 않으니 (참고로 액정크기를 iPhone이나 Android폰같이 못늘리는 것이 Symbian의 구조적인 결함) Symbian으로 iPhone과 Android폰이 경쟁하는걸 포기한듯 합니다. 다만 Symbian은 저가폰에서 엄청난 활약을 할것입니다. 

Nokia사에 MID(Mobile Internet Device)에 돌아가는 Linux기반의 OS로 만들던 Maemo를 가지고 N900을 만들어 iPhone과 Android에 대항을 하려고 노력도 하였지만 그렇게 성공하진 않았습니다.

이후 Maemo OS는 Intel사와  합작하여 MeeGo를 만들겠다고 선언하였지요. 이제 MeeGo가 Nokia의 고가폰 라인에 Symbian대신 탑재되었다는 선언을 보게 되었습니다.

이제 iPhone, Android 그리고 MeeGo가 경쟁하는 모습을 보게 되었습니다.

(Symbian은 죽지 않을뿐, 저가폰엔 계속 들어가고 iPhone과 Android폰같은 하이엔드급 폰엔 MeeGo OS로 대응하여 스마트폰 시장을 수성하겠다는 Nokia의 전략이 보입니다.)

아래는 Nokia N8의 소개 동영상입니다.

Introducing the new Nokia N8




Nokia N8 overview - Part 1 of 3

Nokia N8 overview - Part 2 of 3

Nokia N8 overview - Part 3 of 3

Nokia N8

Buy me a coffeeBuy me a coffee

2010년 6월 24일 오전 0시 21분경 모님과 IRC채널에서 대화하다


<blueguy^> OddEgo / htc 갔더니..
<blueguy^> OddEgo / desire 커널 소스 공개 되어 있더군요.
<OddEgo> 우와
<OddEgo> 커널 소스 공개되어서 xda 분들이 롬을 올리군요... ㅎㄸ
<blueguy^> OddEgo / 이미지 새로 올리는데 만족하지 말고..
<blueguy^> 직접 한번 빌드해서 올려 보는 것이..
<blueguy^> 흐흐.
<OddEgo> virtualbox에 올리면 능력자가 되는건가요?!
<OddEgo> 이미지 새로 올리는데 만족하지 말고.. // 어떻게 정곡을 잘 찌르십니까? ㅎㅎ
<blueguy^> OddEgo / 버박에 올리면 능력자가. 될 듯.
<blueguy^> 흐흐.
<blueguy^> qemu에는 그냥 올릴 수 있어요.


htc에서 공개된 안드로이드 소스코드를 x86용으로 포팅해서 올리면 엄청난 굇수가 되어 있겠지?

Buy me a coffeeBuy me a coffee



이번 Nokia와 Intel의 합작 OS인 MeeGo OS v1.1의 Demo 동영상이 공개되었습니다.

Pre-Alpha MeeGo for tablets demo

Nokia N800-Nokia N810-Nokia N900 류의 MID(Mobile Internet Device)의 개념(Maemo OS)과 Tablet의 개념을 합하고 Intel과 합작하여 넷북시장을 타켓으로 하는 MeeGo의 출시가 임박했다는 것이 느껴지군요. (MeeGo는 Maemo의 후속 OS입니다)

Mobile 시장에서 세계 1위인 Nokia가 Symbian으로 계속 스마트폰 시장을 이끌다 Apple의 iPhone과 Google의 Android에 밀려 점차 힘을 못쓰고 있던데, 이번 MeeGo의 등장으로 iPhone과 Android의 경쟁에 참여하길 기대합니다^^

Symbian으로 지키다 휘청거리던 Nokia가 MeeGo를 과연 성공할수 있을까? 

Buy me a coffeeBuy me a coffee



Mozilla에서 Firefox 3.6.4를 2010년 6월 22일에 출시하였습니다.

여러가지 버그들을 잡았지만 제일 큰 버그였던 Flash가 깨지면 웹브라우저도 꺼지는 버그를 잡았답니다. 그 기능을 Crash Protection(오류 보호)기능이라고 부릅니다.

Google Chrome같이 플래시가 깨져도 계속 브라우저가 돌아가게끔 만들어졌다고 합니다.

점점 Firefox도 Google Chrome을 닮아가는 인상을 보여주군요.

이 Crash Protection(오류 보호)기능은 Windows와 Linux에서만 된답니다. 안타깝께도 Mac에서 Crash Protection(오류 보호)기능은 올해 하반기에 쓸수 있다고 하군요.


Firefox 3.6.4가 나온건 새벽에 Twitter를 보다 @Firefox 에서 이런 글이 올라왔더군요.

Firefox 3.6.4 with crash protection now available!http://mzl.la/aJLuio

위의 글 처럼 Firefox를 실행하니 업데이트를 하고 있었습니다.

업데이트를 완료하고 나선 웹 브라우져 재시작을 하였습니다.


재시작을 하고 나선 Firefox를 실행하였더니 잘 돌아가군요.



지금까지 계속 Firefox 3.6에 대한 마이너 업데이트들이 이뤄지고 있지만, 언젠간은 Firefox4가 나오겠지요? Firefox 4가 나오면 어떻게 바뀔련지는 궁금합니다^^

Buy me a coffeeBuy me a coffee

+ Recent posts