Редактирование APF/ZAPF

Инструкции для Sony Ericsson
Аватара пользователя
MotoFan
Опытный
Опытный
Сообщения: 126
Зарегистрирован: 17.06.2007 2:57
Модель телефона: se w 610i
Откуда: Kostroma
Контактная информация:

Редактирование APF/ZAPF

Непрочитанное сообщение#1 » MotoFan » 12.11.2007 21:05

Редактирование
Сначала необходимо скачать и ознакомиться с работой софта.
Для чего воспользуемся достаточно продвинутым редактором хекс-файлов - WinHex.
Его можно скачать либо с сайта производителя (http://www.winhex.com/winhex/index-m.html), либо с варезного сайта http://www.samlab.ws, где в архиве программ (http://samlab.ws/progs.htm), кроме английской версии (http://www.winhex.com/winhex.zip), можно найти русифицированную, а также крек.
Лично я в последнее время пользовался русифицированной версией 13.5, но это не принципиально, для наших действий годится и другая. Инсталляшка весит около 1 МБ, так что проблем с выкачиванием не будет, в проинсталлированном состоянии она занимает чуть больше 2 МБ и работает на любой Виндовс-системе.
Вообщем устанавливаем WinHex, после чего в Справка/О программе проверяем наличие регистрации. Будут видны пункты на кого зарегистрирована, а также запись - Software is unlocked. В противном случае нужно зарегистрировать программу либо за деньги, либо воспользовавшись креком.
Если до этого WinHex-ом Вы не пользовались стоит немного ознакомиться с возможностями программы, чтоб потом не было дурных вопросов. Когда всё станет более-менее понятным можно приступить уже ближе к делу.
Берём и открываем нужный нам apf-файл.
На экране мы увидим кучу циферок - шестнадцатеричных значений параметров.
Прежде всего, чтоб не выискивать параметры по адресам - хотя можно и так, но это будет крайне неудобно, для упрощения воспользуемся темплейтом (шаблоном) - своеобразной маской для файла, где параметры идут не просто подряд, а разбиты по группам для удобства отображения. Для чего выбираем Вид/Менеджер шаблонов (или просто жмём Alt+F12), в открывшемся окне мы увидим уже ряд готовых шаблонов, к которым добавим свой, для чего нажимаем кнопку Новый и вставляем туда следующий скрипт шаблона (для APF):

Код: Выделить всё

template "SE APF" 
description "SE audio profile by Darkmen" 
begin 
string 4 "HDR_sign_APF" 
hex 2 "Version" 
hex 2 "ProfileSize" 
hex 1 "AcousticCompensation_TX_8" 
hex 1 "AcousticCompensation_TX_16" 
hex 1 "AcousticCompensation_RX_8" 
hex 1 "AcousticCompensation_RX_16" 
hex 1 "AcousticCompensation_RX_44_1" 
hex 1 "AcousticCompensation_RX_48" 
hex 1 "DRC" 
hex 1 "DRC_VoiceCall_RX" 
hex 1 "DRC_VoiceCall_TX" 
hex 1 "EnhancedEchoCanceller" 
hex 1 "NoiseReduction" 
hex 1 "WhiningNoiseFilter" 
hex 1 "CTM" 
hex 1 "AccessoryType" 
hex 1 "BT_PCM_SampleRates" 
hex 1 "BT_PCM_Stereo" 
hex 1 "Dummy01" 
hex 0x104 "AcousticCompensation_TX_8_TD_Data" 
hex 0x204 "AcousticCompensation_TX_16_TD_Data" 
hex 0x104 "AcousticCompensation_RX_8_TD_Data" 
hex 0x204 "AcousticCompensation_RX_16_TD_Data" 
hex 0x204 "AcousticCompensation_RX_44_1_TD_Data" 
hex 0x204 "AcousticCompensation_RX_48_TD_Data" 
hex 48 "DRC_Data" 
hex 48 "DRC_VoiceCall_TX_Data" 
hex 48 "DRC_VoiceCall_RX_Data" 
hex 32 "EnhancedEchoCancellerData" 
hex 12 "NoiseReductionData" 
hex 01 "SWAP_TX1_TX2" 
hex 01 "CCO_OUTV" 
hex 01 "SWAP_RX1_RX2" 
hex 01 "TX2_HPEN" 
hex 01 "TX1_HPEN" 
hex 01 "HIFI_ALOOP" 
hex 01 "TXPGA2 (0-7)" 
hex 01 "TXPGA1 (0-7)" 
hex 01 "RXPGA2 (0-14)" 
hex 01 "RXPGA1 (0-14)" 
hex 01 "RXVOL2" 
hex 01 "RXVOL1" 
hex 01 "TXGC" 
hex 01 "MIC1_TXGAIN" 
hex 01 "AUXI1_TXGAIN" 
hex 01 "TX1MUX_SEL" 
hex 01 "TX2MUX_SEL" 
hex 01 "AUXI3_TXGAIN" 
hex 01 "AUXI2_TXGAIN" 
hex 01 "STPGA1" 
hex 01 "STPGA2" 
hex 01 "ST_ON" 
hex 01 "PCMJITTER" 
hex 01 "PCM_LSBVALID" 
hex 01 "PCMO_TRISTATE" 
hex 01 "PCM_SWAP" 
hex 01 "PCM_LOOP" 
hex 01 "PCMDELAY" 
hex 01 "AUXO1_RXSEL" 
hex 01 "AUXO2_RXSEL" 
hex 01 "AUXO1_INSEL" 
hex 01 "AUXO2_INSEL" 
hex 01 "BEARP_RXSEL" 
hex 01 "BEARN_RXSEL" 
hex 01 "BEARP_INSEL" 
hex 01 "BEARN_INSEL" 
hex 01 "LINEP_RXSEL" 
hex 01 "LINEN_RXSEL" 
hex 01 "LINEP_INSEL" 
hex 01 "LINEN_INSEL" 
hex 01 "MUX1_ADD" 
hex 01 "RX1_ADD" 
hex 01 "MUX1_INSEL" 
hex 01 "MUX2_ADD" 
hex 01 "RX2_ADD" 
hex 01 "MUX2_INSEL" 
hex 01 "LINEP_GAIN" 
hex 01 "LINEN_GAIN" 
hex 01 "BEARP_GAIN" 
hex 01 "BEARN_GAIN" 
hex 01 "AUXO2_GAIN" 
hex 01 "AUXO1_GAIN" 
hex 01 "POWER_ON" 
end 
Нажимаем кнопку "Проверить синтаксис", если всё хорошо, шаблон можно сохранить, нажав кнопку "Сохранить...".
Теперь при открытии apf-файла достаточно будет нажать Alt+F12, выбрать нужный шаблон и нажать Применить (Apply), после чего мы увидим структуру файла по известным параметрам.
Заголовок файла HDR_sign_APF - просто буквы APF, далее мы видим версию, эти цифры менять не стоит - толку не будет, а вот телефон наши файлы не примет за родные, после этого идёт ProfileSize - просто размер профиля без учёта заголовка - 4820 байт, т.е. 12D4 в хексе.
Первые 8 байт не трогаем, это заголовок, а вот далее и начинается полёт фантазий, вот это всё параметры.
Из названий (они буква в букву соответствуют записям в mbn-файле прошивки, несложно найти поиском по файлу) можно догадаться о их назначении, а вот дальше экспериментально пробовать-пробовать-пробовать...
Назначение некоторых до сих пор остаётся загадкой, но подозреваю что ничего путного с них не поимеешь, всё основное уже раскрыто.
Например параметр RXVOL1, RXVOL2 - значение его будет определять громкость заднего динамика [farfield_call], [farfield_play], [farfield_ring] или гарнитуры для [PHF_play], [PHF_ring] в режиме громкоговорящей связи либо в режиме плеера или вызывного сигнала. Увеличение параметра соответствует уменьшению усиления в тракте. Но этот же параметр (RXVOL1, RXVOL2) никак не будет определять громкость того же динамика в режиме радио [farfield_fm], [PHF_fm], поскольку используется другой канал. Для изменения уровня радио можно воспользоваться параметрами AUXI1_TXGAIN, AUXI2_TXGAIN, которые задают коэффициент усиления по левому и правому каналу, если установить разные значения, то соответственно баланс каналов нарушится. Параметр, задающий коэффициент усиления входного драйвера с радио, работает как для заднего динамика, так и для гарнитуры. Увеличение параметра - увеличение усиления в тракте.
Параметр RXVOL1 (без второго) задаёт также громкость переднего динамика в разговорном состоянии [handset_call]. Увеличение параметра соответствует уменьшению громкости. Для изменения коэффициента усиления по микрофонной цепи в [handset_call] исользуется MIC1_TXGAIN, чем выше значения - тем больше чувствительность микрофона и тем лучше Вас будут слышать на удалённой стороне. Следует заметить что не все значения можно вписать, некоторые являются недопустимыми и усилительный тракт откажется работать (например, значение 5). Микрофон гарнитуры [PHF_call], в отличие от телефонного подключён к другому каналу и усиление по нему задаётся параметром AUXI3_TXGAIN, чем выше значения - тем больше чувствительность микрофона, хотя громкость наушника гарнитуры в [PHF_call] по-прежнему определяется параметром RXVOL1. Параметр MIC1_TXGAIN задаёт также усиление для микрофона в профиле [farfield_rec], чем выше значения - тем больше чувствительность микрофона и тем сильнее будет громкость звукозаписи, но, естественно, уже при воспроизведении. Сюда тоже не все значения можно вписать, некоторые являются недопустимыми.
Параметры AUXO1_INSEL, AUXO2_INSEL, BEARP_INSEL, LINEP_INSEL и другие с SEL в конце задают номер канала, который в данный момент будет подключен, например телефонный, радио, проигрыватель с указанием источника вывода звука, т.е. передний, задний динамик, гарнитура со всеми вариантами комбинаций.
В общем, с уровнями более-менее понятно, теперь перейдём к частотной характеристике каналов. Кроме аппаратных решений, на которые мы повлиять не можем, есть программные фенечки, определяющие АЧХ. В основу положен некий алгоритм частотных компенсаций, работа которого определяется рядом констант в параметрах AcousticCompensation_TX_8_TD_Data, AcousticCompensation_TX_16_TD_Data ... AcousticCompensation_RX_48_TD_Data.
Управлением параметра включен/выключен соответствуют "AcousticCompensation_TX_8, AcousticCompensation_TX_16 ... AcousticCompensation_RX_48, где значение 00 соответствует выключенному параметру, т.е он использоваться не будет,
значение 01 - включенному.
Можно также задать нулевые значения, тогда при даже при включенном параметре, предобработки не будет, например:

Код: Выделить всё

AcousticCompensation_RX_8_TD_Data 
00 80 00 01 71 BE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
AcousticCompensation_TX_16_TD_Data AcousticCompensation_RX_16_TD_Data 
01 00 00 00 7F FC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Значения параметров DRC_Data, EnhancedEchoCancellerData, NoiseReductionData, для всякого рода хитрых механизмов контроля, подавления шумов и эхокомпенсации, тоже по аналогии с AcousticCompensation, можно выключить/включить с помощью DRC, EnhancedEchoCanceller, NoiseReduction (соответственно значения 00/01).
При редактировании и просмотре файлов удобно пользоваться механизмом сравнения файлов, заложенным в Total Commander, для чего запукаем ТС и выделяем 2 файла, которые необходимо сравнить. Далее в меню "Файл" выбираем пункт "Сравнить по содержимому" или нажимаем горячую комбинацию Alt+C. Для отображения данных в хекс-формате устанавливаем "птичку" на пункте "двоичный".
В самой левой колонке мы видим шестнадцатеричное значение адреса, так что сразу же можно сопоставить численное значение с названием параметра в WinHex. В WinHex-e переключение режимов отображения адреса в десятичном/шестнадцатеричном формате осуществляется по клику левой кнопкой мыши по адресной колонке.
Значения AcousticCompensation_TX_8_TD_Data, AcousticCompensation_RX_8_TD_Data отвечают за механизм частотных компенсаций в режиме телефонного разговора при передаче и приёме данных. Т.е. за то как Вас будут слышать на удалённой стороне отвечает AcousticCompensation_TX_8_TD_Data, а за т что будете слышать Вы - AcousticCompensation_RX_8_TD_Data.
Набор EFR и CFR профилей это драйвера с отключенными и включенными механизмами компенсации.
За частотную характеристику каналов проигрывателя отвечают параметры AcousticCompensation_RX_44_1_TD_Data, AcousticCompensation_RX_48_TD_Data, причём последний отвечает за звук синтезатора. То есть если Вы проигрываете MP3-файл, то влиять будут параметры AcousticCompensation_RX_44_1_TD_Data, а если синтезированный midi, то AcousticCompensation_RX_48_TD_Data.

Автор: Дегтеренко Анатолий
Изображение

Ответить