3PPC.net
Старый 26.12.2007, 12:16 #1
voland voland вне форума
Гвардия форума
 
Регистрация: 12.11.2007
Адрес: Москва
Сообщений: 587
Репутация: 221
voland voland вне форума
Гвардия форума
 
Регистрация: 12.11.2007
Адрес: Москва
Сообщений: 587
Репутация: 221
Устройство: Нет
HOWTO: Как сделать прошивку для HTC P3300 (Artemis)

Чайник для чайников: Как сделать прошивку для HTC P3300 (Artemis)

Для тех, кому обещал, выкладываю свою "нетленку". Остальным, может быть будет просто интересно. Ничего нового или уникального не написано, все из личного опыта и документации, коей полно в интернете.

Благодарности принимаю в виде виски и коньяка

Ругательства, замечания и предложения - в этой теме или в личку. Постараюсь по мере их поступления обновлять версию.

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

Понеслась:
Скрытый текст (вы должны зарегистрироваться или войти под своим логином):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
voland вне форума   Ответить с цитированием Цитировать выделенное
Старый 31.12.2007, 09:09 #2
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Устройство: нет кпк
Уважаемый voland, в факе не нашел (((
имеется оф.проша на базе которой и собирается прошивка . Хочу собрать на более свежем билде . Для этого скачал уже не оф.прошивку с более свежим . Как мне теперь в мою офф. засунуть новый OS.nb . И откуда os.nb взять при дампе проши (одна находиться в папке core\extract , вторая в папке core\build , третья в папке core\build\ROM. Размеры у обоих разные - поэтому и х.з. какую брать)
Reva вне форума   Ответить с цитированием Цитировать выделенное
Старый 31.12.2007, 14:04 #3
voland voland вне форума
Гвардия форума
 
Регистрация: 12.11.2007
Адрес: Москва
Сообщений: 587
Репутация: 221
voland voland вне форума
Гвардия форума
 
Регистрация: 12.11.2007
Адрес: Москва
Сообщений: 587
Репутация: 221
Устройство: Нет
ZooL, скажи, что сделать хочешь

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

Если ты выдергиваешь OS.nb из другой прошивки для Артемиса, то смысл действий непонятен - просто прошей ту прошивку и все. Файл OS.nb содержит как саму ОС, так и драйвера, так и XIP.

Если же ты выдираешь OS.nb от другого устройства, то такой простой операцией ничего у тебя не заработает (иммено из-за драйверов и XIP), надо разбирать полностью этот .nb и развлекаться сборкой солянки.

Как я понимаю, ты пользуешься HyperCore Kitchen, если так, то все что ты только что разобрал находится в core\extract. Все, что находится в core\build - это уже используется для сборки. При разборке там есть шаг "Скопировать OS.nb" в build - выполнишь, и тогда размеры в core\extract и core\build\rom совпадут. В файл OS.nb в core\build - это уже новый собранный образ, который надо в прошивку засовывать.
voland вне форума   Ответить с цитированием Цитировать выделенное
Старый 31.12.2007, 14:24 #4
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Устройство: нет кпк
voland, Нет прошивка от того же девайса . Если я тебя правильно понял , то необходимо :
1) Разобрать RUU_Signed прошивки взятой за базу
2) Разобрать RUU_Signed прошивки на более свежем билде
3) Полученную OS.nb из папки core\extract переместить в core\build\rom модифицируемой прошивки .
4) Внести необходимые изменения и собрать
Reva вне форума   Ответить с цитированием Цитировать выделенное
Старый 31.12.2007, 14:47 #5
voland voland вне форума
Гвардия форума
 
Регистрация: 12.11.2007
Адрес: Москва
Сообщений: 587
Репутация: 221
voland voland вне форума
Гвардия форума
 
Регистрация: 12.11.2007
Адрес: Москва
Сообщений: 587
Репутация: 221
Устройство: Нет
ZooL, извини, может быть я плохо объясняю.
попробую еще раз.

1. Когда ты разберешь прошивку, ты получить файлы операционной системы (OS.nb), радио-модуля (GSM), Extended ROM (ExtRom), сплеша и т.п., если они были в прошивке

2. Полученные файлы это как модули, ты их можешь комбинировать, чтобы собрать новую прошивку. Например, взять OS.nb от официальной, свой Splash-screen и новый радио-модуль и собрать модицифированную прошивку, которая будет иметь новый радио-модуль, твою заставку, но внутри останется такой же как и была официальная.

Именно поэтому, я не совсем понимаю, зачем ты берешь OS.nb из модифицированной прошивки и пытаешь подменить ее в официальной. Можно просто прошиться модифицированной и получить тот же результат.

3. а вот если ты хочешь, что-то выкинуть из прошивки (читай из каталога \Windows) или добавить туда, то тебе надо разобрать OS.nb файл на каталоги OEM и SYS. Как это сделать, написано в бумажке, которую я выложил, либо посмотри в доку по HyperCore Kitchen - там тоже все описано.

Соотвественно, тебе надо в начале разобрать официальную, потом скопироваь каталоги SYS и OEM куда-нить. Потом разобрать модиифицированную. Дальше создавай свой вариант OEM и SYS каталогов и положи их, когда закончишь, в core\build

Я просто никак не могу понять, что ты хочешь получить своим набором действий. Просто, если ты из официальной прошивки удалешь OS.nb, то в принципе можно вообще ее не брать. Разобрать неофициалку, добавить сплеш и радио-модуль и собрать все через HTC Rom tool
voland вне форума   Ответить с цитированием Цитировать выделенное
Старый 31.12.2007, 15:30 #6
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Устройство: нет кпк
Так ладно с этим вопросом все понятно теперь . Спасибо ))) А вот например , если я захочу скажем с другого девайса прошивку портировать на свой . Предположим я разобрал Os.nb для того , чтобы у меня получились каталоги OEM , SYS и XIP. И как среди этих каталогов распознать драйвера?А также возможно ли просто подменить папку XIP из своего устройства . Или простой заменой не обойтись ? Тогда что нужно сделать ?
Reva вне форума   Ответить с цитированием Цитировать выделенное
Старый 31.12.2007, 20:10 #7
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Устройство: нет кпк
Так сделал дамп RUU_Signed_VolROM_1_2_Standard и подготовил к сборке . Далее подменил XIP со своего устройства в папке build . Собрал как обычно . В итоге на первом сплеше зависон . И появилась надпись красным (до этого никогда не высвечивалась) OS 3.13.0.0 Как победить ? Или я вообще неправильно сделал ?
Reva вне форума   Ответить с цитированием Цитировать выделенное
Старый 31.12.2007, 21:29 #8
MikleT MikleT вне форума
Застенчивый
 
Регистрация: 21.12.2007
Сообщений: 22
Репутация: 1
MikleT MikleT вне форума
Застенчивый
 
Регистрация: 21.12.2007
Сообщений: 22
Репутация: 1
Устройство: нет кпк
voland, С Новым Годом!
Большое спасибо за "бумажку", скоро новый год, а я все играю
Если можно несколько предложений и вопросов.
Предложения:
1. п.9 Разборки прошивки - стоит отметить, что это надо запускать из по Виндов, а то из под Far`а не запускается
2. п.13 Разборкипрошивки - мне пришлось указывать полный путь к XIP, иначе ничегоне происходило.
Ну и вопросы:
1. Когда я разбирал Geek или Business, rgu файлы практически не формировались
Их всех (ну очень много ) пришлось переписывать из Official - это правильно?
2. В Official (у меня) не было кучи дирректорий:
SYS\OSFiles
File: b51fcecc-a738-463b-93a4-7b44d03c30b7.rgu
SYS\wpctsc
File: adc19413-37b2-4018-af8a-148b50f6ea13.rgu
SYS\OEMAPPS
File: 39f73cda-2e1a-11dc-8314-0800200c9a66.rgu
SYS\SecurityOff
File: 5101af95-fb28-4eaa-b4c0-051531efc069.rgu
SYS\WM6_Sound
File: fbc20bfd-b133-48fa-9ede-8de970b337e0.rgu
SYS\Disable Error Reporting
File: fc773e54-2996-4e51-ac18-4ac2a7e3e5c6.rgu
SYS\voland tweaks
File: 1a18c31e-9831-11dc-8314-0800200c9a66.rgu
SYS\AltTab
File: 30d2b600-a506-11dc-8314-0800200c9a66.rgu
SYS\WMP Touch Skin (blue)
File: 325f443e-aca2-11dc-8314-0800200c9a66.rgu
SYS\WM5torage 1
File: 48e0b088-9746-11dc-8314-0800200c9a66.rgu
SYS\1 Calc Lite
File: 51facaea-982f-11dc-8314-0800200c9a66.rgu
SYS\SMSDRFix 0
File: 73ac1b5c-9745-11dc-8314-0800200c9a66.rgu
SYS\HTC Camera 4
File: 7a2703a0-983f-11dc-8314-0800200c9a66.rgu

а в

OEM\OEMDrivers
File: a8686a75-290c-42db-9203-548c9cb17e08.rgu
был другой номер, причем править именно этот - даже не представляю как

Так собственно вопрос - их (rgu) надо делать самим или где-то искать? Если самим, а судя по тому, что это добавленные проги, то можно чуть-чуть по подробнее как.

Еще раз С НОВЫМ ГОДОМ
СПАСИБО!
MikleT вне форума   Ответить с цитированием Цитировать выделенное
Старый 31.12.2007, 22:20 #9
SiD
Гость
 
Сообщений: n/a
SiD
Гость
 
Сообщений: n/a
Устройство: нет кпк
Цитата:
их (rgu) надо делать самим или где-то искать?
Программы добавляются в прошивку в виде пакетов . Так вот файл .rgu отвечает за реестр . То есть , если прога требует изменений реестра , то его необходимо создать . А сделать его можно применив способ ручного вбивания в блокноте нужных значений (предварительно ознакомившись с синтаксисом из аналогичных файлов прошивки) . Или воспользовавшись прогой InitFlashFiles Generator . Но опять же после использования проги необходимо подправить синтаксис т.е. без каких-либо пробелов . Важно Первая строка всегда должна начинаться с REGEDIT4 и в конце файла обязательно пустая строка .

Пример правильного .rgu :
PHP код:
REGEDIT4

[HKEY_CURRENT_USER\ControlPanel\Notifications\{54ED08ED-DFEC-4a46-950C-21157A7424DB}]
"Wave"="\\Windows\\notify.wma"

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"MakeFit"=dword:00000000

[HKEY_LOCAL_MACHINE\ControlPanel\AsusSettings\Wakeup]
"WAKEUP_ENABLE"=dword:00000009

[HKEY_LOCAL_MACHINE\ControlPanel\WrlsMgr]
"Redirect"=""

[HKEY_LOCAL_MACHINE\Software\Microsoft\ControlPanel\Overrides]
"Wi-Fi"="AlpsWLANp.exe" 
После внесения необходимых корректив в блокноте сохраняем наш файл в "все типы файлов" и в ЮНИКОДЕ под уникальным UUID т.е. идем по ссылке

Скрытый текст (вы должны зарегистрироваться или войти под своим логином):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.

и в самом верху странички видим номер - копируем и сохраняем под этим именем наш файл .rgu В пакете имя файла .rgu должно совпадать с именем .dsm


З.Ы. Всё описанное мной есть в мануале . Читай внимательней ))) Но если там непонятно и я тож плохо объяснил , то можеш почитать ещё там Формирование пакета для прошивки из CAB-файла
  Ответить с цитированием Цитировать выделенное
Старый 01.01.2008, 08:35 #10
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Устройство: нет кпк
Так собрал прошивку с нужными мне пакетами , но подозреваю , что адреса .dll и exe не совпадают с адресами оригинальных файлов из модулей . То что exe вроде как не страшно , а вот адрес .dll в системе жестко прописываются вроде . Поэтому и есть желание исправить значение адреса на такой же как в системе . Какой прогой можно проверить корректность адресов и как потом внести изменения ?
Reva вне форума   Ответить с цитированием Цитировать выделенное
Старый 01.01.2008, 10:37 #11
MikleT MikleT вне форума
Застенчивый
 
Регистрация: 21.12.2007
Сообщений: 22
Репутация: 1
MikleT MikleT вне форума
Застенчивый
 
Регистрация: 21.12.2007
Сообщений: 22
Репутация: 1
Устройство: нет кпк
2 SID
Спасибо за ответ, но у меня вопрос более "тупой"
Как редвктировать и создавать я понимаю. Я не могу понять, что туда писать. Нет, я уверен, что есть люди, способные с одного взгляда на прогу сказать в каком реестре ее прописать и с какими значениями, но я увы нет.
Я понимаю, что вопрос "тупой" но, если можно, ткните носом где смотреть
Особенно для
OEM\OEMDrivers
File: a8686a75-290c-42db-9203-548c9cb17e08.rgu
Там "куча" реестров и параметров.

Последний раз редактировалось MikleT; 01.01.2008 в 15:35.
MikleT вне форума   Ответить с цитированием Цитировать выделенное
Старый 01.01.2008, 13:34 #12
SiD
Гость
 
Сообщений: n/a
SiD
Гость
 
Сообщений: n/a
Устройство: нет кпк
MikleT, Так ....запускаем CAB Analiser - она наверное в любой кухне есть . открываем там нужный нам каб . Сверху программы расположены кнопки управления . Мы жмахаем на "XML" и в появившемся окне переходим в закладку Registry Keys и видим в ней все значения искомого реестра . Копируем их и вставляем в .rgu
  Ответить с цитированием Цитировать выделенное
Старый 01.01.2008, 15:48 #13
MikleT MikleT вне форума
Застенчивый
 
Регистрация: 21.12.2007
Сообщений: 22
Репутация: 1
MikleT MikleT вне форума
Застенчивый
 
Регистрация: 21.12.2007
Сообщений: 22
Репутация: 1
Устройство: нет кпк
2 SID
Еще раз большое спасибо. Понятно, как получить rgu из cab.
А вот как получить rgu и "пакетов" (в sys и oem) после разборки прошивок.
То есть, если соблюсти последовательность шагов описанных Voland:
- разобрал прошивку (неофициальную, например Geek, с официальной все в порядке)
- добавил/удалил пакеты
-собрал прошивку
то надо ли вообще на 2 шаге восстанавливать rgu практически во всех пакетах (мне кажется, что да, но может я ошибаюсь)
А если надо, то как это сделать? Искать cab`ы?
А как тогда сделать rgu для OEM\OEMDrivers? Насколько я понял, надо разбирать официальную прошивку откуда были взяты драйвера и искать rgu с таким же номером?

Ну вот. Что-то я совсем запутался и наверное излишне все усложняю.
MikleT вне форума   Ответить с цитированием Цитировать выделенное
Старый 01.01.2008, 18:13 #14
SiD
Гость
 
Сообщений: n/a
SiD
Гость
 
Сообщений: n/a
Устройство: нет кпк
По идее все созданные .rgu при сборке прописываются в default.hv и user.hv . Следовательно нет необходимости восстанавливать .
Цитата:
взяты драйвера и искать rgu с таким же номером?
Имя файла такое же второе не найдеш т.к. имя присваивается с помощью UUID(уникальный номер)

З.Ы. Если есть какие сомнения , то посмотри содержимое default.hv и user.hv и я думаю все станет на свои места))
  Ответить с цитированием Цитировать выделенное
Старый 01.01.2008, 21:44 #15
voland voland вне форума
Гвардия форума
 
Регистрация: 12.11.2007
Адрес: Москва
Сообщений: 587
Репутация: 221
voland voland вне форума
Гвардия форума
 
Регистрация: 12.11.2007
Адрес: Москва
Сообщений: 587
Репутация: 221
Устройство: Нет
отвечаю по порядку совсем не отмечаете что ли?

ZooL, по поводу портиронивания с другого устройства.
Драйвера обычно лежать в OEM\OEMDrivers
XIP надо брать от своего устройства, просто заменяешь все на свое. Вообще, самое простое в данном случае это в качестве образа OS.nb использовать что-то от своего устройства, а уж в него упаковывать свежесобаранные imgfs.bin
Дальше, скорее всего, надо будет езе запустить G'Reloc.exe, найти можно на XDA. Ее просто запустить и нажать Doit - сильно не заморачиваться. Теоритически, этого будет достаточно.

По поводу моей прошивки - во-первых, XIP можно было не подменять, устройство то одно и тоже. Сделал ты все правильно, за исключением того, что у меня в прошивке нет .rgu файлов, я их не пакую, чтобы место лишнее не занимало, ну и типа простейшая защита Соответственно, когда ты собрал свою прошивку, она у тебя зависла потому что реестра в ней нет. Тебе надо было пошаманить с файлами default.hv и user.hv, что надо сделать - я писал в доке, либо просто можно было существующие скопировать в файлы default.new и user.new и собирать HyperCore как обычно

добавлено через 6 минут
MikleT, спасибо! Тебя тоже с Новым Годом.
По вопросам:
1. Не поверишь, все из FARа пускаю и никаких проблем поэтому тут даже не знаю что сказать.
2. Это я не указал, что надо находиться в том же каталоге... виноват, поправлю. Спасибо!
3. По поводу моих прошивок, как я и написал выше, .rgu файлов в них нет, поэтому они и не сформировались. Делаешь ты все правильно, не это слишком уж гемморно Я вообще предалагал выложить кухню, где есть все и делать можно что хочешь. Но вроде никому не надо, поэтому лучше всего взять именно оффициалку и мучать ее, по крайне мере начать с нее.

А по поводу номера - просто замени имя одно файла (.dsm или .rgu) на такое же как у другого. Сам по себе номер ни на что не влияет, главное, чтобы он был уникален и чтобы имена файлов .dsm и .rgu от одного пакета совпадали

добавлено через 1 минуту
ZooL, по поводу "адресов" - это как раз G'Reloc все сделает

Последний раз редактировалось voland; 01.01.2008 в 21:44. Причина: Добавлено сообщение
voland вне форума   Ответить с цитированием Цитировать выделенное
Старый 01.01.2008, 21:49 #16
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Устройство: нет кпк
voland,
Цитата:
у меня в прошивке нет .rgu файлов, я их не пакую, чтобы место лишнее не занимало
А подробнее можно ? Економить так уж на всем )))
Цитата:
Соответственно, когда ты собрал свою прошивку, она у тебя зависла потому что реестра в ней нет.
А разве default.hv и user.hv участвуют при загрузке устройства ? т.е. у меня не доходит до второго сплеша . Тем самым я и подозреваю , что default.hv и user.hv тут ни причем (( Так как у XIP свой реестр вроде как
Reva вне форума   Ответить с цитированием Цитировать выделенное
Старый 01.01.2008, 22:05 #17
voland voland вне форума
Гвардия форума
 
Регистрация: 12.11.2007
Адрес: Москва
Сообщений: 587
Репутация: 221
voland voland вне форума
Гвардия форума
 
Регистрация: 12.11.2007
Адрес: Москва
Сообщений: 587
Репутация: 221
Устройство: Нет
ZooL, а что тут подробнее? все просто - после запуска BuildOS в папке temp, которую создает BuildOS удаляешь все .rgu и все.
Суть в том, что .rgu файлы используются при формировании общего реестра. Этот реестр далее компилируется в файл default.hv и user.hv, а сами .rgu файлы более не нужны с точки зрения готовой прошивки. Поэтому их можно удалить, чтобы место не занимали в папке \Windows потом не болтались, папка быстрее откроется опять-таки
(вот только, те кто будет разбирать прошивку будут немного мучаться без них, как ты сейчас )

по поводу default.hv и user.hv - проблема с зависином именно в этом. После запуска BuildOS у тебя эти файлы формируются на основе .rgu, а так как их нет, то и получившиеся файлы пустые, а существующие переписываются. Ты посмотри размер то...
voland вне форума   Ответить с цитированием Цитировать выделенное
Старый 02.01.2008, 17:14 #18
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Reva Reva вне форума
Мультиник
 
Регистрация: 29.06.2007
Сообщений: 82
Репутация: 15
Устройство: нет кпк
Цитата:
по поводу default.hv и user.hv - проблема с зависином именно в этом. После запуска BuildOS у тебя эти файлы формируются на основе .rgu, а так как их нет, то и получившиеся файлы пустые, а существующие переписываются
А как победить то ? Никак не получается ((

З.Ы. А случайно нет этих .rgu у тебя ? Я бы их тогда кинул в папку dump из которой впоследствии они и будут браться для формирования default.hv и user.hv
Reva вне форума   Ответить с цитированием Цитировать выделенное
Старый 02.01.2008, 20:00 #19
MikleT MikleT вне форума
Застенчивый
 
Регистрация: 21.12.2007
Сообщений: 22
Репутация: 1
MikleT MikleT вне форума
Застенчивый
 
Регистрация: 21.12.2007
Сообщений: 22
Репутация: 1
Устройство: нет кпк
voland
Присоединяюсь а просьбе Zool по поводу rgu или кухни.
Я переделал из default.hv в default.rgu, но теперь опять же надо понять, что к чему там относится. И все-таки, что будет, если не выкинуть из default.hv "лишние" ссылки?
и еще маленький вопрос:
а какие пакеты относятся к клавиатуре и скину телефона. А то у меня появился еще и Elf (3450) и уж больно ужасно они там выглядят. Вдруг получиться пересобрать.
MikleT вне форума   Ответить с цитированием Цитировать выделенное
Старый 02.01.2008, 20:11 #20
SiD
Гость
 
Сообщений: n/a
SiD
Гость
 
Сообщений: n/a
Устройство: нет кпк
MikleT,
Цитата:
какие пакеты относятся к клавиатуре
msimru.96.dll
  Ответить с цитированием Цитировать выделенное
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ по перепрошивке HTC P3300 (Artemis) voland Перепрошивка HTC Artemis & HTC Love 315 22.02.2012 17:00
Прошивка WM6.5 для HTC Artemis (HTC P3300) urbans07 Перепрошивка HTC Artemis & HTC Love 119 07.12.2011 21:31
не прошивается HTC P3300 (Artemis) vintokrul Перепрошивка HTC Artemis & HTC Love 10 22.10.2010 20:25
Sony BT-21G и HTC p3300(artemis) Akimm007 Архив 4 12.06.2009 10:12
Как сделать USPL-Unlock на HTC Artemis amstel Перепрошивка HTC Artemis & HTC Love 36 10.01.2009 02:55

 


Текущее время: 01:09. Часовой пояс GMT +3.


Powered by vBulletin®
Copyright ©2000 - 2017, vBulletin Solutions, Inc.