Wiki версия




Примечания:
  • П. - сокращённо от Приложение(я)
  • В обведённых пунктиром блоках написаны команды по одной на строку
  • Если нет wi-fi, то все файлы deb ищем тут



  • Игра или приложение вылетает. Почему?

    Может быть несколько причин:

  • П. не предназначено для установленной у Вас версии прошивки
  • П. криво установлено:
  • Не выставлены права запуска 755 или 777 на бинарник (как выставить права)
  • Не все файлы П. успешно закачались
  • П. не может работать из папки /Applications, его нужно устанавливать через iTunes (редко)

  • Как диагностировать проблему

    Установить программу iPhone Config Utility, подключить девайс по USB, запустить прогу, выбрать на панели имя девайса и открыть вкладку Console. После чего воспроизвести действия на девайсе, которые приводят к вылету или какой-либо ошибке.
    Получив лог из консоли, проанализировать его.
    Если в этом ничего не понимаете - выложите лог на форуме ipod-touch-max.ru и попросите помощи.



    Как выставить права на файл на девайсе?

    Любым SFTP файловым менеджером (например WinSCP) через iTunnel (как настроить iTunnel) или через Terminal на девайсе.
    Программы типа iFunBox не могут выставлять права.

    Как выставить права через Terminal

  • Если терминал не установлен, то скачать из Cydia приложение Mobile Terminal
  • После запуска терминала набрать команды:

    su
    alpine
    chmod 755 /PATH_TO_FILE/FILE_NAME
    

    где PATH_TO_FILE - полный путь к файлу, например /Applications/missiondeepsea/ и FILE_NAME - имя файла

    Вместо команды chmod можно использовать chown, тогда у файла будут изменены не права доступа, а владелец, например:

    chown root:admin /PATH_TO_FILE/FILE_NAME



  • Как настроить iTunnel (он же SSH туннель)?

  • На девайсе должен быть установлен сервер OpenSSH из Cydia
  • Качаем iTunnel.exe тут (для iTunes 9.x)
  • Кладём его в папку. В эту же папку копируем файл
    C:\Program Files\Common Files\Apple\Mobile Device Support\bin\iTunesMobileDevice.dll
  • Всё в той же папке создаём командный файл, например run_tunnel.cmd и любым текстовым редактором (тем же блокнотом) пишем туда команду:

    iTunnel.exe 22 1022

    Первый параметр - порт на девайсе (22 это порт сервера OpenSSH), второй - локальный порт (можно поставить любой незанятый другими прогами, до 65535). После создания файла его можно запустить, туннель будет открыт. Он будет висеть загруженным и выводить в окно информацию о подключениях.
    Далее для закачки файлов на девайс и выставления прав необходим любой SFTP файловый менеджер (например WinSCP), а для подключения к консоли любой SSH клиент (например PuttY). В программах нужно указать IP для подключения 127.0.0.1 и порт 1022 (или тот, что Вы указали вторым параметром к iTunnel.exe)

  • Примеры вызова программ для работы с туннелем из командной строки

    winscp.exe sftp://root:alpine@127.0.0.1:1022/
    putty.exe -v -ssh -2 -P 1022 root@127.0.0.1 -pw alpine
    



    Как установить игры и приложения на девайс всеми возможными способами?

    1. Перетащить файлы .ipa в окно iTunes, они появятся на вкладке Программы. После этого синхронизировать девайс.
    Этот способ самый простой и совместим со всеми П., но имеет и свои минусы - можно синхронизировать девайс только с одним компьютером, поэтому и программы можно ставить только на нём одном. Также при каких-либо глюках iTunes можно потерять сохранённые данные П.
    Следующие способы работают на любых компьютерах с установленным iTunes.

    2. Настроить iTunnel и запустить WinSCP (как?). Открыть скачанный .ipa файл программой WinRAR или WinZip и распаковать.
    Найти в распакованной папке Payload папку вида *.app и залить её через WinSCP по пути /Applications/. Затем выставить права 755 или 777 либо на всю эту папку, либо только на бинарник в ней (файл без расширения, обычно совпадает с названием папки без .app).

    После этого нужно сделать ReSping (например через SBSettings) или перезагрузить девайс, чтобы иконка появилась на спрингбоарде.

    3. Вышеописанные операции по закачке автоматически производит программа QInit Upload, нужно лишь выбрать список .ipa для заливки. Для обновления иконок, просмотра и удаления установленных П. можно использовать QInit App.

    4. Если пакет с приложением имеет формат .deb (все пакеты из Cydia), то его нужно устанавливать через консоль.
    На девайсе должна быть установлена Cydia (с ней ставится утилита dpkg для инсталяции пакетов).
    Опять же нужно настроить iTunnel и запустить WinSCP и PuttY (как?). Через WinSCP закачиваем .deb в любую папку, например в корень / (закачать файл можно и через iFunBox), потом в PuttY пишем:

    su
    alpine
    dpkg -i /FILE_NAME.deb
    

    Установка выполнена.


    Памяти для игр не хватает, приложения долго грузятся... Как всё это ускорить?

    Прежде, чем что-то делать
    Сохранять оригинальные копии всего, что трогаем. Иметь эти бэкапы как на компе, так и на девайсе, чтобы можно было восстановить, если не будет доступа по SSH (для этого должны быть установлены MobileFinder, iFile или Mobile Terminal).

    Всё, что Вы делаете - Вы делаете на свой страх и риск!

    Разбираемся с демонами

    1. Зайдите по SSH (как зайти) в папку /System/Library и сделайте бэкап папки LaunchDaemons

    2. Удалите следующие файлы в этой папке (ориентируйтесь на описание!):

    com.apple.DumpPanic.plist – Сохраняет дампы критических ошибок для отправки в Apple.
    com.apple.ReportCrash.(бла-бла-бла).plist – Всего 5 таких файлов, они собирают инфу об ошибках, какие программы были запущены в момент ошибки и т.д.
    com.apple.CrashHouseKeeping.plist – Тоже что-то связанное с ошибками ))
    com.apple.aslmanager.plist – Демон для управления системными логами.
    com.apple.syslogd.plist – Демон, создающий системные логи.
    com.apple.powerlog.plist – Мониторинг несовместимостей со сторонним оборудованием.
    com.apple.stackshot.server.plist – Неизвестно что, но на работу девайса не влияет (далее под словами "Неизвестно что" будет подразумеваться эта фраза).
    com.apple.tcpdump.server.plist – Демон для сохранения дампов трафика. Неизвестно накой он на мобильном устройстве.
    com.apple.iqagent.plist – Неизвестно что
    com.apple.mobile.profile_janitor.plist – Неизвестно что
    com.apple.chud.chum.plist – Демон, связанный с Apple CHUD (Computer Hardware Understanding Developer). Удаляем.
    com.apple.chud.pilotfish.plist – См. выше.

    3. Удалите ТОЛЬКО то, что Вам не нужно (если не понимаете, что это такое, не трогайте):

    com.apple.AddressBook.plist – Если удалено, приложение Контакты будет загружаться немного медленнее. Удалите, если Вам на это пофиг ))
    com.apple.accessoryd.plist – Если удалено, перестанут работать внешние устройства, которые подключаются к девайсу. Например FM радио передатчики, доки и кабели AV. Девайс сможет только заряжаться от них.
    com.apple.apsd.plist – Если удалено, перестанут работать Push Notifications. Удалите, если они Вам не нужны.
    com.apple.dataaccess.dataaccessd.plist – Если удалено, контакты нельзя будет больше синхронизовывать через Exchange или Google Sync.
    com.apple.datamigrator.plist – Используется для переноса контактов с симки в телефон. Обладатели плеера могут это удалить.
    com.apple.racoon.plist – Используется для Virtual Private Networks. Если удалено, VPN работать не будет.
    com.apple.MobileInternetSharing.plist - Используется для Internet Tethering (например выход в инет на компе через GPRS/EDGE на iPhone). Думаю на плеере бесполезно.
    com.apple.aggregated.plist – Вероятно, реализует некоторые функции для работы с Audio-In. Если у Вас айпод и Вы не собираетесь использовать аудиовход (у айпода есть аудиовход?), удалите. Владельцам айфона лучше это не трогать.
    com.apple.AOSNotification.plist – Демон для синхронизации с MobileMe. Удаляем.
    com.apple.AdminLite.plist – Этот демон пытается вернуть контроль Вам, если какой-то процесс не отвечает некоторое время. Делает он это принудительно завершая процесс, поэтому если у Вас какие-то приложения долго запускались и в конце вылетали, то удаление этого демона может исправить ситуацию.

    4. Редактируем вручную файл (НЕ УДАЛЯЕМ, ТОЛЬКО РЕДАКТИРУЕМ!)
    com.apple.itunesstored.plist

    Найти:
    <key>SuccessfulExit</key>
    
    <false/>
    


    Изменить на:
    <key>SuccessfulExit</key>
    
    <true/>
    


    На компе .plist можно редактировать прогой pList for Windows, а на девайсе через iFile.

    После всего этого девайс нужно перезагрузить. Количество свободной памяти и скорость загрузки должны увеличиться.

    5. Safari после открытия обычно остаётся висеть в памяти. Чтобы этого не случалось, надо установить из репозитория cydia.iphoneil.net фикс SafariQuitter.

    6. Чтобы освободить немного места, уменьшить потребление памяти и ускорить П., можно удалить все неиспользуемые языковые пакеты. Ниже дан список папок, в каждой нужно удалять папки типа *.lproj кроме тех, которые используются в зависимости от выбранного языка (лучше оставлять везде только папки English.lproj, en.lproj, ru.lproj). Особенно осторожно нужно удалять папки из framework-ов. И не забываем про бэкапы.

    /Applications/
    - AppStore.app
    - Calculator.app
    - Cydia.app
    - DemoApp.app
    - Icy.app
    - Maps.app
    - MobileAddressBook.app
    - MobileCal.app
    - MobileMail.app
    - MobileMusicPlayer.app
    - MobileNotes.app
    - MobilePhone.app
    - MobileSafari.app
    - MobileSlideShow.app
    - MobileSMS.app
    - MobileStore.app
    - MobileTimer.app
    - Preferences.app
    - Stocks.app
    - VoiceMemos.app
    - Weather.app
    - Web.app
    - WebSheet.app
    - YouTube.app
    
    /Library/Audio/Plug-Ins/HAL/VirtualAudio.plugin
    
    /private/var/stash/Ringtones/
    - Можно всё поудалять
    
    /private/var/stash/Wallpaper/
    - Можно всё поудалять
    
    /System/Library/CoreServices/SpringBoard.app
    
    /System/Library/PreferenceBundles/
    - AccountSettingsUI.bundle
    - AirPortSettings.bundle
    - BluetoothSettings.bundle
    - CarrierSettings.bundle
    - CyDeleteSettings.bundle
    - EDGESettings.bundle
    - ManagedConfigurationUI.bundle
    - MusicSettings.bundle
    - MobilePhoneSettings.bundle
    - MobileSafariSettings.bundle
    - MobileSlideShowSettings.bundle
    - MobileStoreSettings.bundle
    - NotificationSettings.bundle
    - ScheduleSettings.bundle
    - VPNPreferences.bundle
    - VideoSettings.bundle
    - Wallpaper.bundle
    - WirelessModemSettings.bundle
    - iPodSettings.bundle
    
    /System/Library/PreferenceBundles/AccountSettings/
    - ActiveSyncSettings.bundle
    - CalDAVSettings.bundle
    - ContactsSettings.bundle
    - LDAPSettings.bundle
    - MobileCalSettings.bundle
    - MobileMailSettings.bundle
    - MobileWirelessSyncSettings.bundle
    - SubscribedCalendarSettings.bundle
    
    /System/Library/PrivateFrameworks
    - AccountSettings.framework
    - AccountSettingsUI.framework
    - AppSupport.framework
    - CalendarUI.framework
    - ChatKit.framework
    - CoreTelephony.framework
    - DAVKit.framework
    - DataAccess.framework
    - DataDetectorsUI.framework
    - IAP.framework
    - ITSync.framework
    - ManagedConfiguration.framework
    - Message.framework
    - MobileQuickLook.framework
    - MusicLibraryDDB.framework
    - MusicLibrary.framework
    - OfficeImport.framework
    - PhotoLibrary.framework
    - Preferences.framework
    - TelephonyUI.framework
    - WebKit.framework
    - WebUI.framework
    - YouTube.framework
    - iTunesStore.framework
    - iTunesStoreUI.framework
    - iWorkImport.framework
    
    /System/Library/SystemConfiguration/
    - PPPController.bundle
    - WiFiManager.bundle
    
    /System/Library/TextInput/
    - Можно удалить всё, кроме en.lprog / English.lproj
    
    /System/Library/Frameworks/
    - AddressBook.framework
    - AddressBookUI.framework
    - AudioToolbox.framework
    - CFNetwork.framework
    - CoreLocation.framework
    - Foundation.framework (keep en.lproj)
    - GameKit.framework
    - MapKit.framework
    - MediaPlayer.framework
    - MessageUI.framework
    - Security.framework
    - SystemConfiguration.framework
    - UIKit.framework
    


    7. Установить из repo.beyouriphone.com твик iPhoneVM, который добавит в автозагрузку демон сваппинга оперативной памяти (свап-файлы будут лежать в /var/vm/). Свободной памяти станет до 80 мб и она никогда не закончится.


    После джейла iFunBox видит не всю файловую систему

    Установить из Cydia фикс под названием afc2add



    Как пустить интернет на iдевайс через USB? Вообще без Wi-Fi.

    Сначала нужно скачать и установить всё необходимое:

    PC:
    - iTunnel с WinSCP и PuTTy
    - MyEnTunnel
    - OpenVPN 2.1.1
    Cydia:
    - OpenSSH
    - network-cmds
    - OpenVpn Toggle for SBSettings из репозитория BigBoss (тут не только переключатель для SBS, но и сам OpenVPN)


    Принцип действия:
    При установке на девайс OpenVPN создаёт сетевое устройство (эмулирует) и изменяет роуты (пути) для всех соединений на девайсе через это устройство. Запросы далее передаются на IP 127.0.0.1 порт 1194 девайса, где их уже ждёт созданное MyEnTunnel перенаправление через SSH туннель на IP 127.0.0.1 порт 1194, но уже компьютера. Запущенный на компе сервер OpenVPN слушает локальный порт 1194 и все поступающие на него запросы отправляет на сетевое псевдоустройство (так назывемый TAP-Adapter).
    При расшаривании интернет-подключения для TAP-Adapter запросы наконец достигают внешнего мира.

    Шаг за шагом

    1. Настройте iTunnel. Для соединения через него я использую порт 1022.

    2. Установите OpenVPN из Cydia на девайс и MyEnTunnel с OpenVPN (отметить все галки при установке) на комп.

    3. Как настраивать OpenVPN. В установочной папке найдите папку sample-config. Можно редактировать конфиги из этой папки, можно скопировать те, что даны ниже (conf.ovpn это переименованный client.ovpn):

    server.ovpn
    local 127.0.0.1
    port 1194
    proto tcp
    dev tun
    ;dev-node MyTap
    ca ca.crt
    cert server.crt
    key server.key # This file should be kept secret
    dh dh1024.pem
    server 192.168.1.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    push "route 0.0.0.0 0.0.0.0"
    push "dhcp-option DNS 192.168.1.1"
    push "dhcp-option WINS 192.168.1.1"
    keepalive 10 120
    comp-lzo
    ;max-clients 100
    persist-key
    persist-tun
    status openvpn-status.log
    ;log openvpn.log
    ;log-append openvpn.log
    verb 4
    ;mute 20
    


    conf.ovpn
    client
    
    dev tun
    ;dev-node MyTap
    proto tcp
    remote 127.0.0.1 1194
    resolv-retry infinite
    nobind
    ;user nobody
    ;group nobody
    persist-key
    persist-tun
    ;mute-replay-warnings
    ca "ca.crt"
    cert "client.crt"
    key "client.key"
    ns-cert-type server
    comp-lzo
    verb 4
    ;mute 20
    
    mssfix 1275
    route-delay 0 120
    
    up /var/mobile/Library/OpenVpn/update-resolv-conf
    down /var/mobile/Library/OpenVpn/update-resolv-conf
    


    В данном случае настраивается TAP-Adapter на сеть 192.168.1.0/255.255.255.0
    Если уже есть соединения с этим диапазоном IP, то измените 192.168.1.0 например на 192.168.10.0 (и 192.168.1.1 на 192.168.10.1)

    4. Создание сертификатов и ключей для OpenVPN.
    Всё необходимое для этого лежит в подпапке easy-rsa.
    Нужно открыть cmd.exe и зайти в эту папку:

    cd C:\Program Files\OpenVPN\easy-rsa\
    

    Далее все .bat файлы нужно запускать из этой командной строки не закрывая её.

    Сначала нужно запустить init-config.bat
    Затем отредактировать файл vars.bat примерно так (данные можно указывать свои):

    set KEY_COUNTRY=Ru
    set KEY_PROVINCE=Moscow
    set KEY_CITY=Moscow
    set KEY_ORG=iPTM
    set KEY_EMAIL=iwantinet@overusb.com
    

    После этого запустить
    vars.bat
    clean-all.bat
    build-ca.bat

    Во время запуска скрипт спросит Вас о различной информации для сертификата. Указывать лучше то, что было в vars.bat (будет в квадратных скобках). Также попросит ввести "Common Name", укажите например Admin.

    Далее, запустить
    vars.bat
    build-key-server.bat server
    build-key.bat client

    На вопросы отвечайте y. Challenge password и Optional company name можно оставить пустыми.

    Наконец, создайте параметры для алгоритма Diffie Hellman командой
    build-dh.bat
    Процесс займёт какое-то время. Откиньтесь на спинку стула и... ой, это не отсюда =)

    5. Копируем файлы на свои места.
    Файл server.ovpn поместите в папку config вместе со следующими файлами:
    easy-rsa\keys\ca.crt
    easy-rsa\keys\server.crt
    easy-rsa\keys\server.key

    А файл easy-rsa\keys\dh1024.pem в папку bin (он должен тоже быть в config, но у меня сервер его там не находит).

    Файл conf.ovpn поместите в какую-нибудь отдельную папку (назовём её client) вместе с этими файлами:
    easy-rsa\keys\ca.crt
    easy-rsa\keys\client.crt
    easy-rsa\keys\client.key


    6. Файлы подготовлены, теперь можно заливать конфиг на девайс. Содержимое папки client скопируйте в
    /var/mobile/Library/OpenVpn/
    Скачайте и залейте туда же update-resolv-conf

    Затем через WinSCP скачайте, отредактируйте и залейте обратно файл
    /var/mobile/Library/SBSettings/Commands/com.offinf.openvpnup
    На всякий случай на него и на com.offinf.openvpndown можно поставить права 777.

    com.offinf.openvpnup (кодировка - Unix Text)
    #!/bin/sh
    /bin/rm /var/mobile/Library/SBSettings/Toggles/OpenVpn/OFF
    cd /var/mobile/Library/OpenVpn/
    /usr/bin/openvpn-iphone --script-security 2 --config /var/mobile/Library/OpenVpn/conf.ovpn &
    


    7. Выполните следующие команды в PuTTy под root-ом (su -> alpine):

    cd /var/mobile/Library
    chown -R mobile.mobile OpenVpn
    cd OpenVpn
    chmod +x update-resolv-conf
    cp client.key client.key.orig
    openssl rsa -in client.key.orig -out client.key
    


    8. Настройка MyEnTunnel. Пароль для рута - alpine.





    9. Последний шаг. Запустите iTunnel и в MyEnTunnel нажмите Connect. Если порт успешно перенаправлен, то Вы увидите эти строки plink.exe: Requesting remote port 1194 forward to localhost:1194
    plink.exe: Remote port forwarding from 1194 enabled
    Connection is stable


    Далее запустите на компе сервер командой
    C:\Program Files\OpenVPN\bin\openvpn.exe --script-security 2 --config "C:\Program Files\OpenVPN\config\server.ovpn"
    (через Пуск->Выполнить, .cmd файл или создайте ярлык к openvpn.exe)

    Первый раз запустите на девайсе клиент через MobileTerminal или PuTTy, чтобы видеть процесс запуска (потом клиент можно будет вкл/выкл из SBSettings), командой
    /private/var/mobile/Library/SBSettings/Commands/com.offinf.openvpnup

    Когда в окне сервера и клиента появится надпись Initialization Sequence Completed, значит всё ок, можете пользоваться инетом.

    P.S. Не забудьте расшарить соединение с интернетом для TAP-Adpater (делается это в свойствах соединения, вкладка "Дополнительно", галка "Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера").



    Ответы на вопросы по прошивке, jailbreak, использованию iTunes можно найти в этом FAQ