[아이폰] 리눅스에서 아이폰 프로그램 빌드하기

2010.02.10 10:49
 
 
 우연찮게 리눅스에서 아이폰 프로그램 빌드하는 방법을 알게 되어 소개 한다.

맥이 있으면 좋겠다만 배포는 안되기 때문에 
간단한 코드 빌드후 테스트를 원하는 사람들에게는 적합할 것 같다.
toolchain 빌드만 하면  끝이다. 리눅스 정말 멋진 놈 ~~

간단한 환경을 소개하자면

- Virtualbox에 Ubuntu 설치 (Ubuntu 9.10  32bit ) 굳이 virtualbox에 깔필요 없고 native 에서 해도 된다.
- firmware 3.1.2 ( JB가 가능한 버전 )
- 기타


1. 준비물

- iPhone 3.1.2 SDK :  다음 버전을 다운 받는다. 애플 id로 로그인 하면 된다.
http://developer.apple.com/iphone/download.action?path=%2Fiphone%2Fiphone_sdk_3.1.2__final%2Fiphone_sdk_3.1.2_with_xcode_3.1.4__leo
pard__9m2809.dmg
- iPhone 3.1.2 firmware :
http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7270.20091008.phn32/iPhone2,1_3.1.2_7D11_Restore.ipsw

- 하드 공간 넉넉하게 약 8기가 이상 확보

2. 설치
- 빌드 전에 필수 패키지들을 설치한다.

apt-get install \
  automake \
  bison \
  cpio \
  flex \
  g++ \
  g++-4.3 \
  g++-4.3-multilib \
  gawk \
  gcc-4.3 \
  git-core \
  gobjc-4.3 \
  gzip \
  libbz2-dev \
  libcurl4-openssl-dev \
  libssl-dev  \
  make \
  mount \
  subversion \
  sudo \
  tar \
  unzip \
  uuid \
  uuid-dev \
  wget \
  xar \
  zlib1g-dev \
  build-essential \

3. toolchain 설치

홈디렉토리의 적당한 위치를 만들고 svn 저장소에서 다운 받는다.

4. firware와 sdk 파일 복사

다운로드한 sdk 파일을 ~/iphone/toolchain/files에 복사

firmware 파일을 ~/iphone/toolchain/files/firmware에 복사

 5. toolchain.sh 파일 편집

firmware 파일은 암호화되어 압축된 이미지이므로 VFDecrypt Key가 필요하다.

따라서 toolchain.sh 파일을 편집기로 열어 DEVICE 및에 아래 코드를 추가해 준다.

DECRYPTION_KEY_SYSTEM="47D76295817F74953F8E557B4917FE2201E9778A9900E43FBF311A83F176FE521B996A4B"\

6. 빌드

다음 명령으로 toolchain을 빌드한다.

./toolchain.sh all


과정은 sdk와 firmware에서 필요한 파일을 추출하는 작업 과

코드를 빌드하는 과정으로 나누어 진다.

그런데 아마 build fail 이 날것이며 make.log 를 확인해 보면 된다.

에러난 파일에 <stdio.h> 와 <stdlib.h> 를 include 시키면 된다.

본인은 src/cctools/ld64/src/ld.cpp Options.cpp 파일을 수정하였다.

새로 수정후에는

./toolchain.sh build 명령으로 빌드하면 되고

불필요한 과정은 생략해도 된다.

 

7. 확인

다음 처럼 확인해 본다면 빌드가 성공한 것이다.



~/iPhone/toolchain/toolchain/pre$ ls

arm-apple-darwin9  bin  include  info  lib  libexec  man  share



8. ldid 설치

아이폰의 ssh 접속후 cydia에서 apt를 설치후 다음 명령으로 ldid를 설치한다.

apt-get install ldid




9. APP 설치

빌드후 아이폰에 설치까지 하는 과정이다.
반드시 iPhone에 ssh가 켜져 있는 상태여야 하고 시스템에서 접근이 가능해야 한다.

여기서는 HelloToolchain이라는 샘플소스를 빌드한다.

cd ~/iphone/apps/HelloToolchainIP=xxx.xxx.xxx.xxx PATH=../../toolchain/pre/bin/:$PATH make deploy


10. iPhone!!

- 아이폰에 설치된 HelloToolchain, 잘 자리잡고 있다.
 

- 앱 실행 했을때 모습, HelloToolchain!!
신고

슈플 애플/아이폰 Apple, iPhone, ssh, ToolChain, ubuntu, 리눅스, 빌드, 아이폰, 애플, 어플, 우분투, 툴체인

  1. 간만에 꾸며보니

  2. Blog Icon
    풍객사

    컴퓨터를 좋아하는 페이스북 사용자입니다.
    내용이 좋아서 다른 분들께 소개시켜드리고 싶네요.
    퍼갈께요^^

  3. 넵 얼마 든지요.. ^^

  4. Blog Icon
    참이슬

    정말 담아놓고 두고두고 보고 싶은 글입니다.
    리눅스를 공부하는 초보로써 정말 좋은 정보 입니다.
    이런 좋은 정보 많이 많이 부탁드립니다.
    퍼갈게요^^*

  5. Blog Icon
    emrehtlstjs

    우분투 12.04 에서 해봤는데요,6번 까지는 실행이 되는거 같은데toolchain.sh all 을 입력하면,
    The following command are missing: xar
    you may need to install additional software for them using your package manager.
    라는 문구가 뜨면서 그 다음이 진행되지 않습니다.make.log파일을 확인하고 싶은데 어디서 확인하는지도 잘..모르겠습니다.
    부탁 드리겠습니다.알려주시면 안될까요..?

[아이폰] 아이폰을 제외한 국내 스마트폰은 보안에 취약하다

2010.02.01 16:46
 
 
 얼마전 세계최초로 아이폰용 백신을 개발 했다는 기사를 접하였다.
이는 하루만에 애플에서 보기좋게 reject 당했다는 소식을 접했다.
아이폰의 구조상 백신 자체가 필요가 없을 것이고 설령 있다고 해도 애플에서 어플 등록을 안 시켜줄것이 뻔했다. 

관련기사: 

위 뉴스를 계기로 국내 보안업체들은 아이폰 백신 관련 사업에서 줄줄이 철수를 했다는 후문이 있다.

그로부터 며칠이 지난 지금 이와는 상반된 뉴스가 나왔다. 
내용은 "아이폰을 제외한 국내 스마트폰은 보안에 취약하다'는게 결론이다. 

아이폰이 보안에 취약하다는 기사가 있지만 현실은 이러하다. 

관련기사:
기사 내용에 대한 신빙성은 각자 판단하기 바란다. 

이번 사건을 계기로 앞으로 스마트폰용 뱅킹 전략이 어떻게 될지 궁금해 진다. 

더불어 MS의 보안 대책에 대해서도 주시해 보면 좋을듯 하다.



신고

슈플 애플/아이폰 백신, 보안, 스마트폰, 아이폰, 애플

[iPhone] Pocket Informant 1.21 Safari bug

2010.01.24 19:30
 
 
Pocket Informant 1.21 버전에 버그가 있다.

PI 실행하면 Safari 화면으로 넘어가서 웹 페이지가 뜬다.

버그 수정한 1.22 버전을 애플에 올렸다고 하니 승인 될때까지 기다려야 하겠다.



굳이 사용을 하려면

설정 - 일반 - 차단 - Safari 차단 비활성화를 풀어주면 된다.



허나 사파리 아이콘이 보이지 않는다.


PI 정말 잘 쓰고 있는데 이런 문제가 있어서 피씨에 받아둔 버전으로 롤백하게 되었다.



신고

슈플 애플/아이폰