10 июня 2009 г.

Настройка xCode для разработки под iPhone SDK

Здесь я опишу шаги по настройке Xcode для разработки на устройстве БЕЗ сертификата разработчика.
1. Предполагаем, что Xcode и iPhoneSDK (версии 2.1 или 2.2) установлены в /Developer.

2. Создаем сертификат (вместо того, который дает эппл официально). Для этого запускаем keychain и создаем сертификат типа Self Signed Root (инструкция по созданию сертификата - http://developer.apple.com).
Запоминаем имя сертификата (пусть это будет MyDeveloperCert).

3. Отключаем профилирование в Xcode, чтобы она не проверяла корректность нашего липового сертификата. Для этого исправляем файл /Developer/Platforms/iPhoneOS.platform/Info.plist следующим образом:

Для 2.1 меняем значения параметров PROVISIONING_PROFILE_ALLOWED и PROVISIONING_PROFILE_REQUIRED на NO.

Для 2.2 добавляем ключи:

  1. <key>PROVISIONING_PROFILE_ALLOWED</key>
  2. <string>NO</string>
  3. <key>PROVISIONING_PROFILE_REQUIRED</key>
  4. <string>NO</string>

в секцию DefaultProperties.

4. Идем в /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates и копируем папку Applications в, например, Pwned Applications (чтобы не портить оригинальные темплейты).

5. Далее, для каждого темплейта (каталога) из папки Pwned Applications правим следующие файлы:

Info.plist:
Добавляем следующий ключ.

  1. <key>SignerIdentity</key>
  2. <string>Apple iPhone OS Application Signing</string>


___PROJECTNAME___.xcodeproj/project.pbxproj:
Исправляем значения параметров (их там несколько) CODE_SIGN_IDENTITY[sdk=iphoneos*] на название нашего сертификата (в нашем примере это MyDeveloperCert).

Такие же операции надо провести над любым официальным проектом программы для iPhoneOS (например над демкой HelloWorld).

6. Устанавливаем на телефон патченный MobileInstallation (например, MobileInstallationPatch через Сидию, репозиторий http://www.iphone.org.hk/apt/).

Для тех, кто хочет понимать что там такого патчится привожу перевод объяснения javacom.

  1. Исправить E0 на A0
  2. Для прошивки 2.1 по адресу 0x00009d06.
  3. В прошивке 2.2 файл не изменился.

Для тех, кто хочет понимать еще больше -- take this fucked IDA and goahead :-)


Для проверки запускаем Xcode, создаем новый проект для iPhone (выбираем тот проект, файлы которого мы изменяли) и собираем его.
Подключаем телефон, Xcode спросит, будем ли мы использовать этот телефон для девелопмента -- отвечаем, что будем.
При сборке проекта для устройства Xcode спросит, можно ли пользоваться сертификатом. После сборки, программа будет установлена на телефоне и загружена. Загрузка программы на телефоне под управлением Xcode занимает большее время, нежели запуск ее без Xcode.

Я сделал, как описано, для SDK 2.1. После обновления на SDK 2.2 пришлось снова править файл /Developer/Platforms/iPhoneOS.platform/Info.plist. В остальном никаких изменений делать не пришлось. Мой проект, сделанный в 2.1 работает в 2.2 нормально и на устройство с 2.2 устанавливается нормально.

Разные версии SDK и прошивки телефона работать вместе не будут.

(c) www.iphones.ru

7 июня 2009 г.

Настройка интернет шлюза Ubuntu для wi-fi сети с статическими IP адресами

Есть два интерфейса:
wlan0 - беспроводный адаптер, к которому будут коннектится наши беспроводные устройства
eth0 - устройство которое смотрит в интернет

Настраиваем интерфейс wlan0:
добавляем в файл /etc/network/interfaces

  1. auto wlan0
  2. iface wlan0 inet static
  3. address 192.168.0.1
  4. netmask 255.255.255.0
  5. wireless_mode Ad-Hoc
  6. wireless_channel 10
  7. wireless_essid home
  8. wireless_key 1234567890


Разрешаем пересылку пакетов:

  1. $ sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf


включаем NAT и сохраняем настройки в файл:

  1. $ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  2. $ sudo iptables-save > /etc/iptables.up.rules


добавляем в /etc/networks/interfaces в секцию wlan0:

  1. pre-up iptables-restore < /etc/iptables.up.rules
  2. up route add -net 192.168.0.0 netmask 255.255.255.0 dev wlan0
  3. up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0


Перегружаем сеть:

  1. $ sudo /etc/init.d/networking restart


(c) afreedenfield.livejournal.com

Установка ffmpeg и x264

1. Удаляем x264, libx264-dev, и ffmpeg если они были установлены:

  1. $ sudo apt-get purge ffmpeg x264 libx264-dev

2. Получаем зависимые пакеты необходимые для установки FFmpeg и x264:

  1. $ sudo apt-get update
  2. $ sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libtheora-dev libxvidcore4-dev

3. Установка x264:

  1. $ git clone git://git.videolan.org/x264.git
  2. $ cd x264
  3. $ ./configure
  4. $ make
  5. $ sudo checkinstall --fstrans=no --install=yes --pkgname=x264 --pkgversion "1:0.svn`date +%Y%m%d`-0.0ubuntu1" --default

4. Установка ffmpeg:

  1. $ svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
  2. $ cd ffmpeg
  3. $ ./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-$ libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid
  4. $ make
  5. $ sudo checkinstall --fstrans=no --install=yes --pkgname=ffmpeg --pkgversion "3:0.svn`date +%Y%m%d`-12ubuntu3" --default


(с) ubuntuforums.org