2010-01-24 4 views
3

Я хотел сделать пару вещей, и мне интересно, если они возможны, и если да, то как это сделать.BlackBerry Code Signing for Несколько OS'es

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

Я также хотел запустить более одного JDE на виртуальной машине, чтобы подписать код для разных ОС. Насколько я понимаю, подписание кода использует приложение для подписи кода, расположенное в каждом каталоге JDE. Можно ли запускать несколько JDE в одной и той же системе и иметь возможность подписывать код для конкретной ОС (я планирую иметь JDE 4.2.1, 4.5, 4.6.1, 4.7 и в конечном итоге 5.0 на VM подписи кода). Если да, мне нужно несколько ключей - по одному для каждой версии JDE, или есть способ использовать одни и те же ключи для разных версий?

Спасибо за любую помощь в ответе на это.

ответ

4

Конечно, можно перенести ключи между машинами. У нас есть набор ключей, которые были использованы в машинах Windows XP, Mac OS X и Linux.

Если вы смотрите в одном из ваших BlackBerry JDE Component Package X.Y.Z\bin каталогов после того, как вы использовали инструмент подписи вручную, вы увидите эти файлы:

sigtool.csk 
sigtool.db 

Эти файлы вам нужно. Просто скопируйте их в эквивалентное место в альтернативных деревьях JDE, и вы сможете использовать их для «нескольких целей». Я не делал этого с 4.7.0, но имел 4.6.0, 4.5.0, 4.3.0 и 4.2.1. Мы управляем подписывающим лицом, используя

java -jar bin/SignatureTool.jar 

Я не уверен, будут ли работать другие методы.

Переход к UNIX-подобным сборным машинам представляет собой поворот, и именно поэтому я думаю, что RIM говорит, что ключи не переносимы - приложение SignatureTool, похоже, не обнаруживает характер разделителя пути к каталогу, специфичный для операционной системы. Результатом является то, что он ищет ключевые файлы в этих местах, даже на машине UNIX (обратите внимание на обратную косую черту):

bin\sigtool.csk 
bin\sigtool.db 

, когда вы думаете, он будет искать bin/sigtool.csk, например. Решением для этого является просто создание софт-ссылок с этими именами, которые указывают на фактические файлы. В каталоге верхнего уровня пакета компонентов мы делаем это:

ln -s bin/sigtool.db bin\\sigtool.db 
ln -s bin/sigtool.csk bin\\sigtool.csk 

Я только подписал одну виртуальную машину - образ Windows XP. Он работал нормально.

Смежные вопросы