14 октября 2009 г.

Список установленых пакетов.

Захотелось мне обновить прошивку на своем iPhone, из инсталяторов на устройстве я пользуюсь только Cydia а поскольку это обертка вокруг менеджера пакетов apt, то нет ничего проше:

  1. sudo dpkg --get-selections "*" > ~/packges.txt

Список установленных пакетов теперь находится в вашей домашней папке в файле packges.txt. Копируем вашим любимым файл-менеджером с устройства этот файл. Так-же советую сохранить папку /etc/apt/sources.list.d/ - хранятся пути к репозиториям.
Готово.

Теперь востановление.
Из Cydia устанавливаем apt.
Востанавливаем спасок пакетов в /etc/apt/sources.list.d/ и устанавливаем пакеты из нашего файла:

  1. sudo dpkg --set-selections < ~/packes.txt
  2. sudo apt-get -u dselect-upgrade

13 октября 2009 г.

Emoji смайлики на iPhone

Для активации смалов понадобится изменить файл в вашем iPhone.
Файл:
/User/Library/Preferences/com.apple.Preferences.plist
добавляем ключ KeyboardEmojiEverywhere с значением 1.
Теперь клавиатуру можно добавить из японских клавиатур в настройках телефона.

Чтение/запись .plist файлов на iPhone

Оказывается очень просто, у обеьекта NSDictionary есть методы: -initWithContentsOfFile: и -writeToFile:atomically:

  1. NSString *filePath = @"./test.plist";
  2. NSMutableDictionary* plistDict = [[NSMutableDictionary alloc]
  3. initWithContentsOfFile:filePath];
  4. [plistDict setValue:@"test_value" forKey:@"test"];
  5. [plistDict writeToFile:filePath atomically: YES];

7 октября 2009 г.

Установка iphone-gcc на iPhone/iPod с прошивкой 3.х

Из Cydia пакет gcc на iPhone не устанавливается из-за битой libgcc. Для установки нам понадобится командная строка на устройстве:

  1. $ wget http://apt.saurik.com/debs/libgcc_4.2-20080410-1-6_iphoneos-arm.deb
  2. $ sudo dpkg -i libgcc_4.2-20080410-1-6_iphoneos-arm.deb
  3. $ sudo apt-get install iphone-gcc

(c) iphonesdkdev.blogspot.com

11 сентября 2009 г.

Создание iso образа диска в Mac OS X

Способ подходит для любых *nix систем, нужно только пути к устройству подкоректировать.
Все работы ведутся в терминале.
1. Вставляем диск в CD-ROM
2. Отмонтируем диск из системы (если у работает автомаунт дисков)
3. Создаем образ диска

  1. $ dd if=/dev/disk1 of=~/disk.iso bs=2048

Так же в Mac OS есть несколько интересных утилит drutil, drutil, hdid.

Все конечно просто, и наверно незачем было создавать пост ради одной утилиты, но иногда забываются такие вещи, и по привычке лезешь в гуи-интерфейсы для поиска анологичных функций.

8 июля 2009 г.

Переименование проекта в xCode

1. Закрыть проект в xCode
2. Переименовываем папку в которой находится проект (если необходимо)
3. Открываем папку с проектом и переименовываем папку ".xcodeproject"
4. Удаляем папку "build"
5. Открываем переименованый проект в xCode (дважды кликнув по ".xcodeproject")
6. Идем в меню "Project/Edit Active Target" на вкладку "General" и переименовываем имя, а во вкладке "Build" выбираем "All configuration" в "Configuration" и в списке снизу переименовываем свойство параметра "Product Name".
8. Build/Clear All Targets
9. Собираем проект

2 июля 2009 г.

Деинсталяция iPhone SDK

Иногда вознкает необходимость удалить iPhone SDK (например поставить более новую версию).
Все просто, в терминале набираем:

  1. $ sudo /Developer/Library/uninstall-devtools --mode=all

вводим пароль пользователя и iPhone SDK вместе со всеми компонентами удалится.

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