Тоже приложу руку... Патч "Удаление языков из списка" Итак,разберем патч «Удаление языков из списка»,на примере всеми горячо любимого X700XEEK6.Нам понадобится программа BinEdit от Алесея Каленова и собственно прошивка.(файл .cla),который загрузим в нее. Зайдя в настройки телефона-выбор языка обнаруживаем,что в телефоне установлена поддержка 12 языков.Нетрудно заметить,что несмотря на выбранный язык отображение их названий не меняется и пишется именно на соответствующем языке.Потому,что эти названия зашиты в прошивке,и при загрузке телефона отправляются в оперативную память.Всего их сорок,они записаны в таблицу с интервалом в 40 байт,и этот кусок кода присутствует во всех моделях.Эту таблицу вы сможете увидеть по адресу 1800F668 в БинЕдит на вкладке HEX.Откуда адрес?-скажете Вы…Его прога находит автоматом,как собственно и остальные адреса связанные с текстовыми ресурсами.Зайдя на вкладку свойства мы увидим содержимое be-файла в котором расписаны основные параметры и адреса,по которым прога работает с прошивкой.Для каждой прошивки создается свой be-файл(автоматом).Чета меня не туда понесло…Так вот, в свойствах нас интересует следующее ……… LangNames adr="0x1800F238" steps="40" LangCount adr="0x100EEA4C" Default="12" TableIdAdr="0x1156B610" ……… LangAdrTable adr="0x1156B61C" ……….. LangAdrTableS adr="0x1156B64C" ……….. ……… В первой строке видим адрес оперативки,куда помещена таблица имен языков и количество их в ней. Во второй строке адрес функции,которая устанавливает сколько будет использовано языков,их количество и адрес таблицы с индексами этих языков в таблице их названий(от 0 до 39 в десятичной соотв.,а в hex-отображении от 00 до 57) В третьей строке адрес расположения таблицы адресов собственно языковых ресурсов,а в четвертой ресурсов отображаемых на софт-полосе,или попросту подписи к кнопкам.Если мы откроем прошивку по этим адресам.то увидим там таблицы,состоящие опять же из 12 адресов(как раз по количеству поддерживаемых языков),каждый из которых ведет не посредственно на таблицу адресов языковых ресурсов конкретного языка.Этих адресов ровно столько,сколько строк выводит РесМан на вкладке Языковые ресурсы.Пройдя по любому из этих адресов,на вкладке HEX в БинЕдит нетрудно в этом убедиться. Ну вроде в общих чертах структутру построения языковых ресурсов разобрали,теперь непосредственно к патчу. Патч сокращает языки с 12 до 5. Теперь при выборе языка в настройках не будут отображаться Eesti, Latviesu, Lietuviu, Балгарский, Romana, Srpski и Macedonian <patchdata firmware="X700XEEK6" > <changes> <nord offset="0x000EEA4C" from="0C" to="05" /> <nord offset="0x0156B614" from="11" to="19" /> <nord offset="0x0156B62C" from="308F14" to="7CE315" /> <nord offset="0x0156B65C" from="C4BEA111" to="0CF18510" /> </changes> </patchdata> <nord offset="0x000EEA4C" from="0C" to="05" /> тут мы меняем значение 12 на 5, и теперь у нас из таблицы имен языков(1800F238) будут считываться названия по первым пяти индексам находящимся в таблице дефолтных языков(1156B610).На этом можно было бы и ограничиться.Телефон бы стал предлагать к выбору только первые пять языков.Но если мы откроем прошивку по адресу 1156B610,то обнаружим,что первые пять индексов 00,01,03,10,11(в десятичной 0,1,3,16,17).Не забывая что в телефоне индексы всегда отсчитываются от 0,в таблице имен языков(1800F238) элементарным подсчетом(хотя это можно увидеть и на вкладке Языковые ресурсы) находим,что 1,2,4,17 и 18 языки будут соответственно Немецкий,Английский,Французский,Русский и Эстонский,которые и будут выводится в меню выбора.Но мне,предположим необходим Украинский,а Эстонский не нужен.Но Украинские ресурсы во всех таблицах прописаны 9-й строкой,а выводится токо 5.Поэтому <nord offset="0x0156B614" from="11" to="19" /> мы в таблице дефолтных языков меняем индекс эстонского(11) на украинский(25).Теперь в меню выбора пятым языком будет выводится Украинский.Но это еще не фсе…Выводится то он будет,но при применении все равно будут выводится надписи и подписи по Эстонски.Потому что в таблицах текстовых ресурсов и подписей к кнопкам пятой строкой адреса эстонских языковых ресурсов. <nord offset="0x0156B62C" from="308F14" to="7CE315" /> <nord offset="0x0156B65C" from="C4BEA111" to="0CF18510" /> Здесь мы заменям адреса эстонских на украинские в таблицах языковых ресурсов и ресурсов софт-полосы,иначе говоря переставляем адреса с девятой строки таблицы на пятую. Почему <nord offset="0x0156B62C" from="308F14" to="7CE315" />,а не <nord offset="0x0156B62C" from="308F1410" to="7CE31510" />…И то и другое одно и тоже,четвертый байт без изменений,так зачем его перезаписывать… Вот собсна и фсе,таким образом моно удалить,поменять местами и т.п. в свифтах и сисолах.И вы можете перекроить языковой пакет непосредственно под себя.Как впрочем и добавить новые,но это уже другая история… Сообщение от модератора AlexeyKред. Alexeyk:раз речь пошла про binedit, дополню. Все эти манипуляции с языковыми ресурсами можно сделать на вкладке "Языковые ресурсы". Там есть 3 кнопки, удаление выбранного языка, перемещение языка в списке вверх и вниз. После изменений достаточно сделать патч по разности 2 прошивок, изменённой и первоначальной.