2010년 2월 18일 목요일

[안드로이드] 안드로이드 개발환경 구성




1day1 님의 블로그에 정리된 글이 있어 퍼옵니다.
나도 개발한번 해볼까?? ^^
===================================================

안드로이드 개발환경 구성을 윈도우에서도 하고자 한다.
(우분투에 설정해 놓았지만, 필요에  윈도우도 설정해 놓는게 좋겠다)

간단하게 요약정도만 한다.

 JDK 와 eclipse JDT 를 설치한다.
소스코드 컴파일을 위해  가 아닌 JDK 를 설치한다.
이클립스 설치 : http://www.eclipse.org/downloads/
eclipse 에서  것은 http://blog.1day1.org/394 를 참조한다.

2. android SDK  설치/설정한다.
윈도우용 SDK 를 설치한다 : http://developer.android.com/sdk/index.html

 eclipse ADT 플러그인을 설치한다.
설치전에 install/update 의 http://download.eclipse.org/releases/galileo/ 에서
WST 패키지를 찾아 먼저 설치를 하고 진행 (WST Server Adapter)

eclipse ADT 플러그인
https://dl-ssl.google.com/android/eclipse/
다음과 같은 항목이다.

4. 이클립스에 android SDK 위치를 지정한다.
 SDK 설치한 위치를  된다.


5. android SDK 에 추가  설치한다.
 안드로이드 API 버전별로 추가 패키지를 설치한다.
 2.0 이상의  버전을 선택했다.

6. 타겟 장치를 생성한다.
 manager 에서 Virtual Devices 항목에서 "NEW" 로 새로 생성한다.
 지정한 디바이스는 개발후 에뮬레이터로 이 가상장치를 사용하게 된다.


 설정을 했으면 준비는 완료되었다.
새 프로젝트로 안드로이드 프로젝트로 생성해서 테스트  본다.

실행시키면 에뮬레이터가 뜨면서 테스트 어플이 실행된다.

왜 그런지 모르겠지만, 우분투를 가상머신내에서 돌린 에뮬보다 느린것 같다.(그냥 느낌상인가?)


모토로이를 연결해서 테스트 해봤다.(빠르다.)
[2010-02-14 18:41:57 - HelloAndroid]------------------------------
 18:41:57 - HelloAndroid]Android Launch!
[2010-02-14 18:41:57 - HelloAndroid]adb is running  
[2010-02-14 18:41:57 - HelloAndroid]Performing com.onedayone.helloandroid.HelloAndroid activity launch
[2010-02-14 18:41:57 -  Target Mode: using device '04032948904003013'
[2010-02-14 18:41:57 - HelloAndroid]Uploading HelloAndroid.apk  device '042344694003013'
[2010-02-14 18:41:57 - HelloAndroid]Installing HelloAndroid.apk...
[2010-02-14 18:42:01 -  
[2010-02-14 18:42:01 - HelloAndroid]Starting activity com.onedayone.helloandroid.HelloAndroid on device
[2010-02-14  - HelloAndroid]ActivityManager: Starting: Intent { cmp=com.onedayone.helloandroid/.HelloAndroid }
역시나 빠르군.  에뮬로만  개발폰연결하면 정말 감동이겠다.


우분투, 윈도우7  둘다 개발환경 세팅하는거 어렵지 않네.(자바개발하던 분들은 눈감고도 할 것 같고)
맥은 없어서 패스.(맥사면 아이폰/안드로이드 같이  수 있겠군 ^^)

앞으로 안드로이드 어플들이 다양하고, 재미있는 것들이  나왔으면 좋겠다.

2010년 2월 15일 월요일

[UNIX] 리눅스 FTP 사용하기

출처 : http://dakrink.tistory.com/38

 

 

최근에 출시되는 리눅스 베포판의 경우 기본 FTPD로 vsftpd를 사용하는 경우가 많다 그러나 RHEL WS나 Desktop 버전 처럼 FTPD 패키지가 없는 경우 혹은 기본 vsftpd가 이상동작하는 경우(이런 경우가 있겠냐고 말하겠지만 있다. 오늘 경험했다 --;) xinetd아래 있는 gssftp를 사용할 수 있다.

gssftp는 xinetd 하위로 동작하는 데몬이기 때문에 반드시 xinetd를 설치해야된다.

안하고 안된다고 나한테 뭐라고 그러시면은 난감하다...

서비스 활성화 방법은 레드헷 기반으로 만들어진 배포판(레드헷 엔터프라이즈  리눅스, 수세 리눅스)등은 아래의 명령으로 서비스 활성화를 할 수 있다.

  • chkconfig gssftp on
그러나 다른 리눅스 배포판(데비안 리눅스)의 경우에는 /etc/xinetd.d나 혹은 xinetd 서비스 설정 디렉토리에 gssftp를 수정해야 된다.

  • /etc/xinetd.d/gssftp(RHEL 기준) 에디터로 오픈
    disable = yes에서 disable = no 로 변경
이렇게 작업을 한 뒤 xinetd 데몬을 리스타트 해줘야 적용이 가능하다.

위와 같이 작업한 뒤 FTP를 접속해서 로그인을 하면은 로그인이 안된다.(뭐니 --;)

기본적으로 로그인이 안되도록 설정이 되어 있는데 이를 해제하는 방법은 아래와 같다.

  • /etc/xinetd.d/gssftp(RHEL 기준)
    server_args   = -l -a 부분을 server_args = -l 로 수정 저장

2010년 2월 14일 일요일

[oracle] 레드햇 리눅스 oracle설치시 ulimit: pipe: is read only 해결

리눅스에 오라클 설치시.

ORACLE계정 .profile에
===================
if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ];then
       ulimit -p 16384
       ulimit -n 65536
   else
       ulimit -u 16384 -n 65536
   fi
fi
===================
설정을 해주게 되있는데

[root@cal-host ~]# su - oracle
/etc/profile[57]: ulimit: pipe: is read only

이런 에러가 난다.

원인은 리눅스 5버전부터 ulimit문법이 바꼈다는것.
if [ \$USER = "oracle" ]; then
        if [ \$SHELL = "/bin/ksh" ]; then
              ## see SR:
              ##ulimit -p 16384
              ulimit -u 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi
색깔 표시한 부분을 바꿔주면 된다.



Issue
You are following the steps in the ML Note:421308.1 Requirements For Installing 
Oracle10gR2 On RHEL/OEL 5 (x86_64):

5. Set the session limits for Oracle user 

if [ $USER = "oracle" ]; then 
   if [ $SHELL = "/bin/ksh" ];then
       ulimit -p 16384
       ulimit -n 65536
   else
       ulimit -u 16384 -n 65536
   fi
fi

You then try to su - oracle and receive the following error:

[root@cal-host ~]# su - oracle
/etc/profile[57]: ulimit: pipe: is read only
Research
Apparently KSH on 64-bit OEL-5 (Update 1) has changed and the syntax that was 
previously used to set the "Max user processes limitation" is now changed from 
"ulimit -p" to "ulimit -u".  You can find the right syntax by issuing the 
following command:

cal-host.10GR2-> ulimit -a
address space limit (kbytes)   (-M)  unlimited
core file size (blocks)        (-c)  0
cpu time (seconds)             (-t)  unlimited
data size (kbytes)             (-d)  unlimited
file size (blocks)             (-f)  unlimited
locks                          (-L)  unlimited
locked address space (kbytes)  (-l)  32
nofile                         (-n)  65536
nproc                          (-u)  2047
pipe buffer size (bytes)       (-p)  4096
resident set size (kbytes)     (-m)  unlimited
socket buffer size (bytes)     (-b)  4096
stack size (kbytes)            (-s)  10240
threads                        (-T)  not supported
process size (kbytes)          (-v)  unlimited

The one we need to be changing is "nproc" via "-u" switch NOT "pipe buffer 
size" ...
Solution
Remove incorrect code from "/etc/profile" and replace it with:

cat >> /etc/profile <<EOF
if [ \$USER = "oracle" ]; then
        if [ \$SHELL = "/bin/ksh" ]; then
              ## see SR:
              ##ulimit -p 16384
              ulimit -u 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi
EOF

2010년 2월 12일 금요일

[OS X] Mac OS X 설치하기

 

해킨토시의 달인 uno-ani님의 블로그에서 퍼왔습니다.

 

 

심양 참고하세요^^

 

 

 

 

 

 

[블로그] 트랙백이란?

출처 : http://help.egloos.com/182/

 

트랙백 사용방법

트랙백(Trackback)은 매우 간단한 구조와 원리를 가지고 있는 블로그간 커뮤니케이션 기능입니다.

트랙백이란?

트랙백이란, 쉽게 말씀드려 "내가 작성하는 글을 다른사람에게 알리는 기능"입니다.

B 라는 사람이 A 라는 사람의 글에 대해서 의견을 남기는 방법으로 현재는 그 글에 [덧글]을 적는 방법 밖에는 없습니다. 그러나 덧글은 장문의 글을 작성하기에는 적합하지 않은데다가, 같은 내용을 내 이글루(블로그)에도 남기고 싶을 때, 다시한번 글을 등록해야 하는 번거로움이 있습니다. 그래서 등장한것이 바로 트랙백 기능 입니다.


트랙백 적용 원리 및 순서

A가 어떤 주제에 대해 글을 올렸다고 생각해 보세요. B라는 사용자가 그 글을 본 후, 그 글에 관련된 글을 자신의 이글루(블로그)에 올리려고 합니다. B는 새글을 쓸 때 새글올리기 하단에 있는 트랙백 주소 라는 항목에 관심을 가졌던 A글의 트랙백 주소를 입력하고 글을 작성합니다.
글을 등록하는 순간에, 그 내용은 자동적으로 서버에 기록이 되어 A 글의 하단 트랙백 항목에 등록되게 됩니다.
트랙백에 등록되면 A를 포함한 A이글루(블로그)를 방문하는 모든 사람이 그 내용을 확인 할 수 있습니다.


이글루스에서 트랙백 사용하기

1. 각 글의 트랙백주소 및 트랙백 보기


2. 새글 작성시 트랙백 주소 입력
※ 이글루스의 트랙백 프로토콜은 국제규격을 따르며 다른 블로그 툴간의 호환이 완벽하게 지원됩니다. 이글루스와 Movable Type, pMachine, Nucleus, B2 Blog 등의 트랙백을 지원하는 모든 블로그 프로그램에 트랙백 핑을 보내거나 해당 블로그 프로그램으로부터의 트랙백 핑을 받을 수 있습니다.
 

[아이폰] 아이폰 3GS 3.1.3 -> 3.1.2 다운그레이드

출처 : http://obsoo.textcube.com/7

 

반가운 글을 찾았네요

어법상옳은님의 블로그 에서 찾았습니다.

 

친히 제 글에 댓글도 남겨주셨네요^^

구글링 후에 댓글에서 발견했습니다. 감사합니다.

 

http://www.felixbruns.de/iPod/firmware/요기에서

3.1.2 펌웨어를 다운받아 이용한다고 하네요.

 

 

준비물

 

1. 3.1.3 3GS 아이폰

2. 9.0.2 아이튠스

3. http://www.felixbruns.de/iPod/firmware/에서 다운받은 3GS 3.1.2 펌웨어

 

자세한 내용은 출처에 가서 확인하시죠^^

아직 검증해보진 못했습니다.

 

 

 

혹시나 해서 복원을 위한 제닉스님의 글을 첨부합니다.

- 탈옥한 아이폰 복원과 DFU모드 진입하기.

- 벽돌 아이폰 복원하기

 

2010년 2월 9일 화요일

[Unix] 리눅스 hostname 변경하기

   

## 일시적 변경(리부팅 후에 다시 원래 hostname으로 셋팅됨)

sl_rac_nfs|/root> hostname

starland_old

sl_rac_nfs|/root> hostname starland_new

sl_rac_nfs|/root>

sl_rac_nfs|/root>

sl_rac_nfs|/root> hostname

starland_new

sl_rac_nfs|/root>

   

## 리부팅 후에도 유지

sl_rac2|/> vi /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=starland_new

 

 

## NETWORK 서비스 재시작

sl_rac_nfs|/root> service network restart 또는 /etc/rc.d/init.d/network restart

Shutting down interface eth0: [ OK ]

Shutting down interface eth1: [ OK ]

Shutting down loopback interface: [ OK ]

Bringing up loopback interface: [ OK ]

Bringing up interface eth0: [ OK ]

Bringing up interface eth1: [ OK ]

sl_rac_nfs|/root>

  

[Unix] 리눅스 RHEL5 / OEL5에서 Raw Device 설정법

출처 : http://cristov.tistory.com/106

 

정영준 님의 블로그에 잘 정리된 글이 있어 첨부합니다.

 

## 기존 방식

  1. /etc/sysconfig/rawdevice 파일에 entry를 매핑(선언)

    # /dev/raw/raw1 /dev/sdf1

  2. 장치 매핑 정보를 적용하여 raw device 서비스 재시작

    # sevice rawdevices restart

  3. 유저 권한 부여

    # chown oracle:dba /dev/raw/raw1

     

## RHEL5 / OEL5 방식

  1. /etc/udev/rules.d/60-raw.rules 혹은 임의의 파일명으로 /etc/udev/rules.d에 엔트리 매핑파일을 생성( <60번보다 큰수 >-oracle-raw.rules 와 같은 형식의 파일을 생성)

    ACTION=="add", KERNEL=="sdf1", RUN+="bin/raw /dev/raw/raw1 %N"

     

  2. 아래의 명령으로 디바이스 매핑 적용

    # /bin/raw /dev/raw/raw1 /dev/sdf1

     

     

## RHEL4 -> RHEL5 마이그레이션시 아래 스크립트로 변환

#/bin/sh

 

grep –v "^ *#" /etc/sysconfig/rawdevices | grep -v "^$" | while read dev major minor; do

if [ -z "$minor" ]; then

echo "ACTION==\"add\", KERNEL==\"${major##/dev/)\", RUN+=\"/usr/bin/raw $dev %N\""

else

echo "ACTION==\"add\", ENV{MAJOR)==\"$major\" ENV{MINOR}==\"$minor\", RUN+=\"/usr/bin/raw $dev %M %m\""

fi

done

<블로그에 드래그가 안되서 일일히 쳤습니다. 혹시 오타가 있을까봐 그림 첨부합니다>

 

## 참고자료 :

http://magazine.redhat.com/2008/09/17/tips-and-tricks-how-do-i-add-raw-device-mapping-in-red-hat-enterprise-linux-5/

[Unix] 리눅스 커널 확인하기

 

 

sl_rac2|/> uname -rm

2.6.18-164.el5 i686

sl_rac2|/>

 

 

2010년 2월 8일 월요일

[아이폰] 아이폰 3.1.3 업그레이드 하지 마세요. 다운그레이드 불가능

너무 깔끔하게 정리해 놓으신 MIRiyA 님의 블로그에서 퍼옵니다.

출처 : http://blog.daum.net/miriya/15600949


사건을 정리해보면, 2010년 2월 2일자로 아이폰 OS 3.1.3이 배포되었습니다. 이 업데이트는 몇가지 마이너한 부분만 수정한 것으로, 거진 탈옥을 막기 위해 배포했다 봐도 됩니다. 현재 blackra1n을 이용한 아이폰 탈옥은 펌웨어 3.1.2까지만 가능합니다. 따라서 모르고 3.1.2를 3.1.3으로 업데이트하신 분들이 탈옥이 안된다고 아우성을 치는 상황입니다. 다만 며칠 전까지만 해도 3.1.3을 3.1.2로 다운그레이드 하는 방법이 있었습니다. 설명하면 길지만 일단 설명을 해보지요.


아이폰 3GS, 그리고 아이팟 터치 3G부터 펌웨어 복원을 할 때 확인 절차가 한가지 더 생겼습니다. 아이폰과 아이팟터치에는 'ECID'라는 기계의 고유 번호가 있습니다. 우리가 복원을 시도하면 아이튠즈에서는 이 ECID를 애플의 서버에 전송하고, 애플의 서버에선 그걸 받고 ECID SHSH라는 파일을 아이튠즈에게 전송해줍니다. 그럼 아이튠즈는 그 ECID SHSH라는걸 이용해 부팅 파일에 서명을 하고, 복원을 시작하는거죠. 따라서 복원 기능을 통해 다운그레이드를 하려면 ECID SHSH를 갖고 있어야합니다. 뭐 ECID 자체는 금방 알아낼 수 있지만 문제는 ECID SHSH지요. ECID를 애플에 보내면 ECID SHSH를 주는 형태거든요.


근데 시밤 2월 4일 오전 8시부터 애플에서 아이폰 OS 3.1.2에 대한 ECID SHSH 제공을 중단했어요. 다시 말해 3.1.3 이전 버전의 OS는 아이폰에 깔지 못하게 된거죠. 그래도 나름 방법이 있긴 한데, 만약 아이폰에 Cydia를 깔았을 때 Cydia 메인 화면에서 [Make my life easier, thanks!]를 누른 사람들은 ECID를 미리 Cydia 서버에 전송해둔 상태입니다. 그럼 Cydia가 애플에 그 ECID를 보내서 3.1.2 버전의 ECID SHSH를 받아다가 자기가 갖고 있는거죠. 그럼 나중에 약간의 조작을 통해 아이튠즈가 Cydia의 서버를 애플 서버로 착각하게 만들면 ECID SHSH를 Cydia 서버에서 받아와 다운그레이드가 가능한겁니다. 복원이 되는거죠. 만약 위 [Make my life easier, thanks!] 버튼을 누르지 않았다면 현재 다운그레이드 할 방법이 전혀 없는겁니다.



위에 잘 보시면 녹색 글자로 "This device has SHSHs on file for iPhone OS: 3.1.2"라고 적혀있는게 보이죠? 이 기계는 앞으로 3.1.3으로 업데이트해도 다시 다운그레이드 할 수 있는겁니다. 이미 Cydia에 ECID를 보냈고, Cydia가 애플 서버에 ECID를 보내서 3.1.2버전의 ECID SHSH를 받아 저장해둔 상태거든요.


그리고 2월 5일자로 아이폰 3GS와 아이팟터치 3G까지 탈옥할 수 있는 프로그램이 떴습니다. Sn0wbreeze 3.1.3이라는 놈을 이용하면 아이폰 전기종, 아이팟터치 전기종을 탈옥시킬 수 있는거죠. 하지만 이대로만 되면 얼마나 좋겠어요. 아직은 유감스럽게도 생산 48주차 이상의 새 부트롬이 달려 나오는 아이폰 3GS들은 탈옥을 못합니다. 쉽게 말해 국내에 KT 정발된 아이폰 3GS들은 하나도 탈옥시킬 수 없습니다.


정리해서 말하면..

1. KT를 통해 국내 유통된 아이폰 3GS는 펌웨어 3.1.3에서 탈옥 불가

2. Cydia에서 버튼 안누른 사람들은 3.1.3에서 3.1.2로 다운그레이드 불가

3. 아이폰 3G 와 아이팟터치 2G 포함 그 이하 기종은 3.1.3에서 탈옥 가능

4. 아이폰 3GS를 펌웨어 3.1.2 시절부터 탈옥해서 쓰던 사람들은 Cydia에서 버튼 하나 눌렀을 경우 3.1.3으로 업데이트 한 상태에서도 다시 3.1.2로 다운그레이드 가능.


이정도 되겠습니다.

아무튼, 탈옥해서 쭈욱 쓰시고 싶은 아이폰 유저분들은 웬만하면 3.1.3으로 업데이트 하지 마세요. 아이폰 3GS 48주차 이상의 국내 유저들, 그리고 아이팟 터치 3G 유저들은 3.1.3으로 업데이트하면 똥밟았다 보시면 됩니다.



오후 9시 31분 추가.



blackra1n의 개발자인 geohot이 트위터에 한방 뿜었네요.

"3.1.3 탈옥이 조낸 어렵다는 루머를 들었는데, 그닥 어렵지 않다. 하지만 3.1.3으로 업그레이드할만큼 멍청한 유저들에게나 도움되는 일이니 난 손떼겠다."


기존 탈옥 툴의 개발자인 geohot이랑 devteam은 아마 이번 3.1.3 버전은 탈옥 툴을 안만들고 건너뛰어버릴 가능성이 높습니다. 왜냐하면 iPad가 출시되었고, 거기 아이폰 OS 4.0이 들어가거든요. iPad의 정발에 맞춰 아이폰들의 OS도 4.0 버전이 배포될 것이기 때문에 그때를 대비해 OS의 취약점들을 써버리지 않고 묵혀둘 것이기 때문입니다. 아마 영원히 탈옥을 못하게 될지도 모릅니다. 아이폰 OS 4.0이 출시되면 그 메이저 업데이트에 맞추어 blackra1n 등의 툴도 업그레이드를 하겠지요.


만약 3.1.2 시절에 탈옥하고 Cydia에서 [make my life easier] 버튼을 눌렀다면 3.1.3에서 3.1.2로 다운그레이드 하시고, 그걸 못했다면 일단 기다리는 수 밖에 없습니다.


3.1.3에서 3.1.2로 다운그레이드하는 방법을 이어서 올리겠습니다.