IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Всё о мобильных девайсах (http://www.imho.ws/forumdisplay.php?f=23)
-   -   [FAQ] Как собрать своими руками deb на iDevice. (http://www.imho.ws/showthread.php?t=145576)

Merlin Cori 02.03.2011 11:59

Как собрать своими руками deb на iDevice.
 
Начну с маленького теоретического отступления
цитата из wikipedia:
Цитата:

deb — расширение имён файлов «бинарных» пакетов для распространения и установки программного обеспечения в ОС проекта Debian, и других, использующих систему управления пакетами dpkg. Deb это часть слова Debian, в свою очередь, образованного от слов Debra — имени подруги (впоследствии — жены, ныне — бывшей) основателя Дебиана Яна Мердока и Ian от его собственного имени.
Именно этот диспетчер пакетов был портирован Jay Freeman (saurik) на iOS.
И с его помощью и происходит все операции с программами распространяемыми через Cydia (установка, удаление, модификация).

Для управления пакетами рекомендую поставить себе пакет BigBoss Recommended, который включает в себя практически все утилиты, которые вам понадобятся для работы с командной строкой.
Если он не находится поиском в Cydia, то нужно изменить вариант отображения содержимого, которых три
- User
- Hacker
- Developer


запускаем Сydia, идем на закладку Manage, нажимаем кнопку Settings и меняем свой уровень на Developer.
скриншоты
[IMG]http://img855.***************img855/6489/img0023.png[/IMG] [IMG]http://img855.***************img855/7494/img0024.png[/IMG] [IMG]http://img823.***************img823/742/img0026wp.png[/IMG]


Для дальнейшей работы, нам понадобится либо доступ с компьютера, как расписано здесь, либо установить на самом iDevice из Cydia пакет MobileTerminal.

Теоретически, папка в которой все создается не важна, я, обычно, делаю все в /var/mobile

В качестве примера, буду использовать создание пакета для замены стандартного варианта русификации программы iBlacklist.
Итак, приступаем.
В папке /var/mobile создаем папку iblacklistrus
а в ней еще 2 папки
DEBIAN
tmp


скриншот
[IMG]http://img26.***************img26/4219/78604968.jpg[/IMG]


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

Что нам надо сделать.
Надо заменить файл локализации программы Localizable.strings, который находится в папке
/Applications/iBlacklist.app/ru.lproj
на свой, ну и заодно поменять картинку с инфо о программе на свой, в котором напишем, кто локализовал программу по-человечески :)
В поставляемом варианте перевода, остались на английском все комментарии к настройкам, да и часть настроек. Это и исправляем

готовим на PC 3 файла
- control
с вот таким содержимым
код
Код:

Package: rusblacklist
Name: Rus iBlacklist
Version: 1.0
Architecture: iphoneos-arm
Depends:
Description: Полная русификация iBlacklist.
Homepage: www.xxxxx.ru
Depiction:
Maintainr: Merlin <merlin.cori@xxxxx.xx>
Author: Merlin
Sponsor:
Section:



это стандартный Debian control файл, кто заинтересуется, может почитать описание всех элементов здесь

- preinst
содержимое этого файла будет выполняться ДО выполнения основной части установки пакета
код
Код:

#!/bin/bash

    eval "echo Prepare Installing iBlacklist Russian Translation by Merlin."
    if [[ -e /tmp/iBl ]]; then
    {
        mkdir /tmp/iB
        chmod 777 /tmp/iB
    }
    fi

exit 0



-postinst
содержимое этого файла будет выполняться ПОСЛЕ выполнения основной части установки пакета
код
Код:

#!/bin/sh

#if [[ $1 == configure ]]; then
#{
    if [[ -e /tmp/iB/Localizable.strings ]]; then
    {
        eval "echo Installing Russian Language Translation by Merlin..."
        eval "echo Replacing original files ..."
        mv -f /tmp/iB/Localizable.strings /Applications/iBlacklist.app/ru.lproj/Localizable.strings
        mv -f /tmp/iB/aboutBg.png /Applications/iBlacklist.app/aboutBg.png
        eval "echo Setting files attributes ..."
        chmod 744 /Applications/iBlacklist.app/aboutBg.png
        eval "echo Removing temporary files..."
        rm -r /tmp/iB
        eval "echo Thanks for using my Russian Transaltions."
    }
    fi
#}
#fi


поскольку preinst и postinst это исполняемые файлы, то не забываем установить на них соответствующие права (755)
скриншот
[IMG]http://img97.***************img97/3937/31159029.jpg[/IMG]


Хочу оговориться, postinst и preinst, это файлы опциональные, они могут быть, а могут и не быть. В зависимости от решаемых задач.

А теперь в созданной ранее папке iblacklist/tmp создаем папку iB в которую и помещаем файлы которыми нам надо заменить исходные.
В качестве файлового менеджера я использую iFunBox
скриншот
[IMG]http://img850.***************img850/7997/27022025.jpg[/IMG]


Во время установки пакета файлики попадут в /tmp/iB, а скрипт postinst разложит их по нужным местам.

осталась самая малость, создать сам пакет
возвращаемся в /var/mobile и выполняем команду
Код:

dpkg -b iblacklistrus
скриншот
[IMG]http://img849.***************img849/5793/34378586.jpg[/IMG]


ну и установить пакет
Код:

dpkg -i  iblacklistrus.deb
Успехов в освоении!


Часовой пояс GMT +4, время: 12:55.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.