прикрепите файл лицензии к dmg под OSX

ребята! Есть ли какая-нибудь командная строка, которую я могу использовать, чтобы прикрепить файл лицензии к dmg?

Большое спасибо

(у меня проблемы с редактором, так что простите, если увидите "странности" в тексте)


person user732274    schedule 23.01.2012    source источник


Ответы (2)


Я нашел для вас запись в блоге (ссылка здесь) где парень написал скрипт Python, который вы можете вызвать из командную строку, чтобы прикрепить лицензионное соглашение к файлу образа диска.

Работает на 10.6 и новее.

Согласно его оригинальной записи в блоге:

Этот скрипт работает на Python 2.6 или 2.7. Если расположение заголовков Rez и FlatCarbon по умолчанию на вашем компьютере отличается, вам необходимо указать правильное расположение с помощью параметров командной строки --rez и --flat-carbon.

Его скрипт (нажмите на эту ссылку, чтобы увидеть его) можно вызвать как легко как:

./licenseDMG.py <dmgFile> <licenseFile>
person Michael Dautermann    schedule 24.01.2012
comment
Ссылка мертва, и у автора этого сайта нет соответствующего кода нигде на GitHub или BitBucket. - person Konrad Rudolph; 07.03.2019
comment
@KonradRudolph Его оригинальный пост находится в Интернет-архиве (archive.org), и я обновил ссылки для вас. Сценарий имеет дату авторского права 2018 года, но пост настолько старый, что я не уверен на 100%, что он сработает. Дай мне знать. - person Michael Dautermann; 07.03.2019
comment
@MichaelDautermann Вау, спасибо. Тем временем я нашел инструкции, как сделать это вручную с помощью Rez (оболочкой которого является этот скрипт). - person Konrad Rudolph; 08.03.2019
comment
Привет, Похоже, что после MacOS Big Sur (или Bug!) опции hdiutil unflatten и flatten больше не доступны. Это означает, что нам нужно использовать uidfrez -xml ... Я действительно могу добавить файл лицензии в dmg, но после нажатия кнопки «принять» dmg не может быть открыт, и он поврежден. Источником проблемы является подготовленный мной файл sla.xml, извлеченный из предыдущего действительного .dmg, но представляющий собой файл plist в формате xml, и мне нужно изменить и удалить части, которые повреждают dmg. Я не знаю, какие части должны быть удалены, и у меня нет документации... любая помощь приветствуется! Спасибо! - person IgnacioHR; 14.11.2020
comment
Это заняло у меня пару часов, но теперь это сделано. Формат файла xml представляет собой файл plist в формате xml. Содержимое этого файла зависит от того, что у вас есть в файлах лицензий, но структура такая же, как и в файле .r. Мне нужно сгенерировать новый ответ, чтобы предоставить шаблон файла для двух языков: английского и испанского. - person IgnacioHR; 14.11.2020

Я написал этот новый ответ, потому что команда hdiutil больше не поддерживает параметры unflatten и flatten. Поэтому мне удалось сделать то же самое с новой командой udifrez, подготовив slas в файле xml с форматом plist.

Структура шаблона для двух файлов лицензии такая

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>LPic</key>
    <array>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAAAAgAAAAAAAAAIAAMAAA==
            </data>
            <key>ID</key>
            <string>5000</string>
            <key>Name</key>
            <string></string>
        </dict>
    </array>
    <key>RTF </key>
    <array>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>

... here goes the English RTF file codified in base64

            </data>
            <key>ID</key>
            <string>5000</string>
            <key>Name</key>
            <string>English SLA</string>
        </dict>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>

... here goes the Spanish RTF file codified in base64
                
            </data>
            <key>ID</key>
            <string>5003</string>
            <key>Name</key>
            <string>Spanish SLA</string>
        </dict>
    </array>
    <key>STR#</key>
    <array>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAYNRW5nbGlzaCB0ZXN0MQVBZ3JlZQhEaXNhZ3JlZQVQcmludAdT
            YXZlLi4ueklmIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcyBvZiB0
            aGlzIGxpY2Vuc2UsIGNsaWNrICJBZ3JlZSIgdG8gYWNjZXNzIHRo
            ZSBzb2Z0d2FyZS4gIElmIHlvdSBkbyBub3QgYWdyZWUsIHByZXNz
            ICJEaXNhZ3JlZS4i
            </data>
            <key>ID</key>
            <string>5000</string>
            <key>Name</key>
            <string>English buttons</string>
        </dict>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAYHRW5nbGlzaAVBZ3JlZQhEaXNhZ3JlZQVQcmludAdTYXZlLi4u
            e0lmIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcyBvZiB0aGlzIGxp
            Y2Vuc2UsIHByZXNzICJBZ3JlZSIgdG8gaW5zdGFsbCB0aGUgc29m
            dHdhcmUuICBJZiB5b3UgZG8gbm90IGFncmVlLCBwcmVzcyAiRGlz
            YWdyZWUiLg==
            </data>
            <key>ID</key>
            <string>5002</string>
            <key>Name</key>
            <string>English</string>
        </dict>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAYHRXNwYZZvbAdBY2VwdGFyCk5vIGFjZXB0YXIISW1wcmltaXIK
            R3VhcmRhci4uLsBTaSBlc3SHIGRlIGFjdWVyZG8gY29uIGxvcyB0
            jnJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhLCBwdWxzZSAiQWNlcHRh
            ciIgcGFyYSBpbnN0YWxhciBlbCBzb2Z0d2FyZS4gRW4gZWwgc3Vw
            dWVzdG8gZGUgcXVlIG5vIGVzdI4gZGUgYWN1ZXJkbyBjb24gbG9z
            IHSOcm1pbm9zIGRlIGVzdGEgbGljZW5jaWEsIHB1bHNlICJObyBh
            Y2VwdGFyLiI=
            </data>
            <key>ID</key>
            <string>5003</string>
            <key>Name</key>
            <string>Spanish</string>
        </dict>
    </array>
    <key>TMPL</key>
    <array>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            E0RlZmF1bHQgTGFuZ3VhZ2UgSUREV1JEBUNvdW50T0NOVAQqKioq
            TFNUQwtzeXMgbGFuZyBJRERXUkQebG9jYWwgcmVzIElEIChvZmZz
            ZXQgZnJvbSA1MDAwRFdSRBAyLWJ5dGUgbGFuZ3VhZ2U/RFdSRAQq
            KioqTFNURQ==
            </data>
            <key>ID</key>
            <string>128</string>
            <key>Name</key>
            <string>LPic</string>
        </dict>
    </array>
    <key>styl</key>
    <array>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAMAAAAAAAwACQAUAAAAAAAAAAAAAAAAACcADAAJABQBAAAAAAAA
            AAAAAAAAKgAMAAkAFAAAAAAAAAAAAAA=
            </data>
            <key>ID</key>
            <string>5000</string>
            <key>Name</key>
            <string>English SLA</string>
        </dict>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAMAAAAAAAwACQAVAAAAAAAAAAAAAAAAACoADAAJABUBAAAAAAAA
            AAAAAAAALgAMAAkAFQAAAAAAAAAAAAA=
            </data>
            <key>ID</key>
            <string>5003</string>
            <key>Name</key>
            <string>Spanish SLA</string>
        </dict>
    </array>
</dict>
</plist>

Мне удалось закодировать в base64 два файла rtf, соответствующие файлам английского sla и испанского sla в нужном месте.

Обратите внимание: если вы используете другие языки, вам необходимо осторожно изменить часть другого содержимого в файле шаблона. Но, по крайней мере, я могу дать вам что-то, с чего можно начать работать.

person IgnacioHR    schedule 14.11.2020