# Scatter file mt6589t

**Download links:** \
&#x20;\
&#x20;→ [**Scatter file mt6589t**](http://cosimedi.fastdownloadportal.ru/?dl\&keyword=scatter+file+mt6589t\&source=gitbook.com5_poster_download) \
&#x20;\
&#x20;→ [**Scatter file mt6589t**](http://cosimedi.darkandlight.ru/?dl\&keyword=scatter+file+mt6589t\&source=gitbook.com5_poster_download) \
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\
&#x20;\\

Собирает ВСЮ полезную информацию в одну таблицу, которую и выводит на экран в область просмотра редактора. При необходимости увеличения числа разделов их описание параметры размещают в следующей таблице, называемой расширенной Extended Boot Record - EBR Л.\
&#x20;![scatter file mt6589t](http://blogimage.geekbuying.com/wp-content/uploads/2013/03/120.jpg)\\

Please help… Thank you… Cuanq Public Comment User Hello... Отключаем телефон от ПК если подключен , передергиваем аккумулятор на 5 сек. Примечание: Единственное, что не делает редактор за Вас, так это НЕ ДУМАЕТ. Какая еще ручная разметка, спросите Вы. Поэтому нужно уменьшить размер какого-либо последующего раздела. После чего можем сохранить Scatter File. Its therefore important that you not mistake scatter file for stock rom or firmware. От модели используемого устройства зависит только наличие поддержки данной разметки в ядре Вашего аппарата. I can't seem to boot into Android Manager anymore. В программе откроется полный список разделов вашего устройства. Сама EBR имеет точно такое же строение и размер, как и MBR, и использовать ее нужно точно также.

Данная статья предназначена для обладателей смартфонов и планшетов на чипах производства Mediatek MTK в которой легко и просто описано как создать Scatter файл! Вот как выглядит таблица разделов после удаления System и расширения Cache Видно, что данные о разделе « system» полностью исчезли из таблицы, поле « последний LBA сектор размещения раздела» предыдущего раздела « cache» получило новое значение, а параметры последующего раздела « userdata» остались без изменений. Каждый символ занимает два байта, т.\
&#x20;![scatter file mt6589t](http://1.bp.blogspot.com/-0MSOh_0YD50/VbY3DM0ChHI/AAAAAAAAAuk/x7xDKvlTt7c/s1600/ContactSheet-002%2Bcopy.JPG)\\

**MENU** - Но прошу дополнительно осветить вопрос возможности замены раздела с фаловой системой FAT на EXT4. Create Scatter file for MTK Devices Step 1: Enable USB Debugging mode on your smartphone.\
&#x20;![scatter file mt6589t](https://www.needrom.com/wp-content/uploads/2013/11/Gionee-elife-E5-1-500x500.jpg)\\

В этой теме хочу предложить теоретические материалы по разметке памяти мобильных устройств, инструкции по практике разметки и несколько моих программ, которые могут помочь простому пользователю. Я хочу сразу объяснить, что не придумал никакого НОВОГО метода разметки, т. ОЗУ предназначено для хранения текущих данных стек и кода выполняемых программ, т. ПЗУ предназначено для хранения настроек работы процессора, множителя частоты тактового генератора и т. Бывает информация, которая должна храниться в неизменном виде, но некоторое время, с возможностью ее замены. Для таких данных как наши контакты, картинки, фильмы, файлы и т. Есть еще одна память, которая часто используется - внешняя. Она может быть организована по-разному, например, в виде SD-карты или USB-накопителя. От этого она не перестает быть ППЗУ, т. За точное название видов я не ручаюсь, т. Я здесь описываю лишь принцип работы и назначение этих видов памяти. Если провести аналогию и рассмотреть конкретно мобильное устройство, например, смартфон, то ОЗУ это память для процессора. Как правило, она имеет размер 256Мб - 4Гб. ПЗУ мы с Вами не видим, но на многих моделях можем с ним общаться, например, при прошивке процессора или контроллера тач-скрина. Самый большой по объему вид памяти это ППЗУ. По размеру он может быть от 256Мб, типовой размер 4-64Гб. У настольного компьютера этот вид памяти мы знаем как винчестер. Разметка памяти, описываемая далее, как раз и занимается винчестером для смартов, т. Ее еще называют внутренней картой памяти. Практически все действия с разметкой памяти связаны с потерей данных в связи с изменением ЛОГИЧЕСКИХ адресов их размещения. Поэтому примите совет: перед переразметкой ВСЕГДА производите резервное копирование т. Backup тех разделов, которые в ней участвуют. Файловая система Итак, с памятью разобрались. А как работать с нею? Как прочитать или записать что-нибудь? Если в чистом поле набросать картошки или навтыкать елочек, что получится? Правильно, прорасти то, скорее всего, прорастет, но толку не будет. Такую картошку всю не соберешь, т. Поэтому как поле, так и посадки леса ПЛАНИРУЮТ, ну, хотя бы прикидывают, где будут ряды, а где тропинки. Так и с памятью. Чтобы получить доступ к ЛЮБОЙ точке памяти надо ее РАЗМЕТИТЬ. Что и делает файловая система. Она рисует ряды в памяти размечает ее и вскапывает форматирует. Эти операции разделяют память на небольшие кусочки блоки и заполняют их, как правило, нулями. Хотя можно использовать и другой символ-заполнитель. Для размещения однотипной или родственной информации в памяти создают разделы, объединяя в них несколько блоков. С разделом уже можно работать как с единым куском памяти. Если памяти очень много, то можно пойти дальше и объединить разделы в регионы, назначив, например, один регион в полноправное владение ТОЛЬКО одного пользователя. Тогда разные пользователи не смогут подсмотреть или просто помешать друг другу стереть, например. А чтобы не запутаться, где что находится, информация по разметке памяти сохраняется в специальные системные таблицы. Все эти простые вещи делает для нас файловая система. Кстати, стандартный размер блока - 512 байт. Теперь плавно переходим к рассмотрению таблиц размещения разделов. MBR и прочее Итак, файловая система разметила пространство памяти на блоки размером 512 байт, чтобы облегчить нам процесс общения с файлами. Для разграничения размещения файлов в памяти несколько блоков объединяются в группы, которые называются разделами. Эта таблица сохраняется в первом блоке памяти. Исторически сложилось, что в нее можно записать только 4 записи о разделах. При необходимости увеличения числа разделов их описание параметры размещают в следующей таблице, называемой расширенной Extended Boot Record - EBR Л. Так может продолжаться и дальше, правда, не до бесконечности. Число дополнительных разделов, называемых логическими, может быть не более 63. В результате можно получить следующий набор таблиц описания разделов памяти: MBR, EBR1, EBR2, EBR3,... Есть и другие виды разметки памяти, например, при помощи GPT GUID Partition Table Л. Но не все разделы описываются в файлах MBR+EBR. Есть разделы, в которые ничего загружать не надо, и доступ к ним, наоборот, должен быть ограничен. Например, раздел nvram, являющийся энергонезависимым хранилищем настроек самого железа. Или PMT - раздел, хранящий резервную копию разметки памяти. Поэтому существует еще один файл, хранящий ПЕРЕЧЕНЬ разделов памяти мобильного устройства. Scatter-файл это и есть тот файл, содержащий перечень разделов фрагментов памяти. Фирма MediaTek использует его для перечисления разделов памяти, существующей в мобильном устройстве, работающем на чипах МТК. На сегодняшний день существует две разновидности этих файлов, отличающихся структурой описания разделов памяти. Scatter-файл, что это такое и с чем его едят Scatter-файл 1-й разновидности Назовем его первой версией, содержит информацию только о названии и начальном смещении раздела. Такая форма scatter-файла используется для устройств на чипах МТ6577, МТ6589, МТ6589Т и многими компоновщиками при создании программ под микроконтроллеры, например, Л. Но он абсолютно не приспособлен к работе с регионами. Scatter-файл 2-й разновидности Современные мобильные устройства имеют большой объем внутренней памяти, позволяющий делить ее на части регионы. Это необходимо делать и в целях безопасности при разграничении доступа при многопользовательском доступе. Для этого был разработан scatter-файл второй версии, использующийся для чипов МТ6572, МТ6582, МТ6592, MT67xx. Только добавлю пару слов про некоторые параметры разделов. Регион - это непрерывный участок памяти, который может содержать и не один раздел. Регионы могут быть расположены в любой точке адресного пространства, даже не соприкасаясь друг с другом. Scatter-файл второй версии тоже подразделяется на две версии. Для чипов типа МТ6582 используется версия v1. Внешне они ничем не отличаются. Недавно появилась разновидность scatter-файла второго типа с дополнительным параметром d - type. Его назначение мне пока неизвестно. Номер версии используется программой флешер при работе с разделами. Дело в том, что память чипов МТ6582 не подразделяется на регионы, а представляет собой один сплошной регион участок памяти. Пока это единственное, но очень существенное отличие, про которое нужно помнить при ручной переразметке памяти. Какая еще ручная разметка, спросите Вы. Правильно, и я того же мнения. Тогда перейдем к программе-редактору файлов разметки памяти. Редактор разметки памяти Редактор был создан для АВТОМАТИЗАЦИИ ручного труда. Никакого ДРУГОГО способа или метода разметки я не придумывал. Редактор выполняет только, то, что и Вы бы делали, но... Это как счеты и калькулятор, делают одно и тоже, но выполнены по-разному. А для работы каждый использует то средство, какое ему по душе. Итак, что же делает редактор. Как и Вы читает и просматривает scatter-файл из указанной папки. Если видит, что используются и другие файлы разметки, то дополнительно читает и их. Собирает ВСЮ полезную информацию в одну таблицу, которую и выводит на экран в область просмотра редактора. Большая часть информации берется из scatter-файла. Из файлов MBR+EBR берется только тип раздела и название файла, в котором находится его описание. После того, как Вы, проанализировав информацию, принимаете решение и откорректируете данные таблицы, производится создание заново и запись НОВЫХ файлов разметки в ДРУГУЮ, выбранную Вами папку. Это делается для того, чтобы оставить старые файлы для возможности отката разметки. Все файлы разметки создаются в том же виде, как и исходные. В scatter-файл запишутся описания всех оставшихся после редактирования разделов. Таким образом, после обработки файлов разметки редактором Вы получите такие же файлы, но с новыми параметрами. Если их залить вместе со старыми образами разделов в мобильное устройство, то Вы получите ту же прошивку, но размещенную в новых разделах. Примечание: Единственное, что не делает редактор за Вас, так это НЕ ДУМАЕТ. Эту маленькую обязанность я оставил за пользователем. Поэтому, прежде чем изменять размеры разделов или их количество, продумайте свои действия. Архив с программой можно скачать из первого поста. Внутри сам редактор и языковый пакет в отдельной папке. Устанавливать все вместе в любую папку. При этом формируется и скаттер. Сам редактор можно взять в первом посте в виде архива. Там же есть подробная инструкция пользователя в виде. Перед началом манипуляций с телефоном, советую сделать Дамп важных разделов устройства функцией Read Back программы SP FlashTool! Вот по этой ссылке есть неплохая инструкция. Не делайте слишком длинные пути к файлам, с которыми будете работать, а имена папок задавайте латинскими буквами. Как обычно делаю я. В корне любого диска создаю папку с названием телефона и в нее добавляю соотв. Не изменяйте смещения и размеры разделов памяти устройства, назначение которых Вы не знаете! Приведу несколько примеров переводов чисел из одной системы счисления в другую с использованием стандартного калькулятора Windows. Примеры переводов чисел и 2. После этого, переводим калькулятор в 10 режим работы, отметив поле « Dec», и получаем 10485760. Это и есть искомое число в байтах, но в привычной нам десятичной системе счисления: Вы его можете уже перевести в Кб или в Мб: Посмотреть размеры разделов телефона можно, например, через программку Для этого подключите тел. Появляется новое окошко, в котором и смотрим размеры разделов телефона. Предлагаю вашему вниманию поэтапную инструкцию по работе с программой ScatterEditor, на примере увеличения раздела USRDATA. Изменение размеров остальных разделов производиться аналогично. Предлагаю вашему вниманию подробную и поэтапную инструкцию по созданию образов необходимой длины. Предлагаю вашему вниманию подробную и поэтапную инструкцию по переразметке памяти для устройств на базе чипов mt6577, mt6589 mt6589t. Предлагаю вашему вниманию подробную и поэтапную инструкцию по переразметке памяти для устройств на базе чипов mt6572, mt6582, mt6592. Предлагаю вашему вниманию подробную и поэтапную инструкцию по переразметке памяти для устройств из режима Recovery Проверить успешность процесса переразмеки, можно только одним способом: посмотреть каким стал размер того раздела, манипуляции с которым Вы проводили в программе ScatterEditor. Практическая инструкция по работе с программой ScatterEditor! Запускаем программу ScatterEditor, и сразу же указываем объем ПЗУ вашего устройства в поле « Memory size» в моем случае 32Гб : Можно установить от 1Гб до 128Гб. В программе откроется полный список разделов вашего устройства. Вот какая информация отображается для ZP990, у вас она может отличаться: Поле « Partition Name» содержит название разделов. В поле « Offset» выводится смещение каждого раздела от начала памяти в байтах, отображенное в 16-ричной системе счисления. В полях « Size, hex» « Size» выводится размер раздела в 16-ой и 10-ой системе счисления соответственно. Поле « Type» отображает тип раздела, а в « File Name» указано имя файла, в котором параметры этого раздела находятся. Место, где можно что-то редактировать, оставлено светлым. А поля, запись в которые запрещена, окрашены в серый цвет Теперь переходим к непосредственному изменению размеров разделов. Изменять размеры разделов можно как в 10-ричной системе счисления, так и в 16-ричной системе счисления, поэтому рассмотрим оба варианта. По умолчанию его размер 0x60000000 или 1,5Гб. При этом произойдёт автоматический перерасчет размера раздела FAT, который уменьшится ровно на столько, на сколько был увеличен раздел USRDATA: ПРИМЕЧАНИЕ. Без проблем можно изменять размер сразу нескольких разделов, например, ANDROID и USRDATA. В редакторе ScatterEditor есть превосходный режим, позволяющий Вам не ломать голову над переводом чисел из 10-ой в 16-ричную систему счисления и обратно. При этом в редакторе столбец «Size» станет светлым, что позволит проводить операцию ввода размера раздела прямо в десятичных числах. После нажатия клавиши Enter Вы получите следующую картинку. Теперь сохраняем внесенные изменения и при этом получаем готовые к прошивке файлы разметки памяти MBR+ EBR и scatter. Для этого в пункте меню File выбираем команду Save, указываем путь к ранее созданной папке Custom и нажимаем на кнопку ОК. Переходим в папку Custom и убеждаемся, что в ней присутствуют файлы MBR, EBR1, EBR2 и scatter. В связи с выходом новых версий программы ScatterEditor, в которых будут появляться новые возможности, я буду добавлять небольшие инструкции по этим возможностям. И так, первая из них появилась в ScatterEditor v1. Мною были сделаны новые файлы разметки и скаттер файл при помощи программы Scatter2Editor... Мне оставалось только переразметить разделы в устройстве при помощи SP FlashTool с последующим форматированием переразмеченных разделов; но, почитав сообщение в теме по переразметке, я пришел к выводу, что у большинства пользователей возникают проблемы с форматированием переразмеченных разделов. Поэтому предлагаю вашему вниманию, способ как уйти от повторного форматирования - это прошивка через SP FlashTool образа в моем случае system. Linux Я пользуюсь Kubuntu 14. Набор утилит архив Repack-img. Необходимый образ из стоковой прошивки, длину которого хотим изменить. Действия пунктов 1-3 проделываются один раз!!! Запускаем программу ScatterEditor, и сразу же указываем объем ПЗУ вашего устройства в поле « Memory size» в моем случае 32Гб : Можно установить от 1Гб до 128Гб. В программе откроется полный список разделов вашего устройства. Вот какая информация отображается для ZP990, у вас она может отличаться: Поле « Partition Name» содержит название разделов. В поле « Offset» выводится смещение каждого раздела от начала памяти в байтах, отображенное в 16-ричной системе счисления. В полях « Size, hex» « Size» выводится размер раздела в 16-ой и 10-ой системе счисления соответственно. Поле « Type» отображает тип раздела, а в « File Name» указано имя файла, в котором параметры этого раздела находятся. Место, где можно что-то редактировать, оставлено светлым. А поля, запись в которые запрещена, окрашены в серый цвет Теперь переходим непосредственно к удалению разделов. Для примера расширим раздел USRDATA за счет раздела FAT. Для этого удалим раздел FAT полностью. Если у вас будет в файле EBR2 указан еще какой-нибудь раздел или несколько , то в этом случае раздел EBR2 удалять нельзя если вы конечно не удалите все разделы указанные в нем , а в файле EBR2 останутся все остальные разделы кроме удаленного. Также отмечу, что пользуясь программой, можно легко определить какие разделы указаны в МBR разделы подчеркнуты синим , в EBR1 разделы подчеркнуты зеленым , в EBR2 разделы подчеркнуты красным. Итак, для удаления раздела FAT, нам необходимо выделить данный раздел, кликнув одни раз левой кнопкой мыши по данному разделу. Затем держа указатель мыши на выделенном разделе кликнуть правой кнопкой мыши, чтобы появилось контекстное меню, и выполнить команду « Remove Partition». Появится окно подтверждения вносимых изменений, нажимаем «Да» Таким же образом удаляем раздел EBR2. При этом произойдет пересчет длины раздела USRDATA, который станет последним. И его длина увеличится на весь размер удаленных разделов. В итоге получаем следующую картину: Теперь сохраняем внесенные изменения и при этом получаем готовые к прошивке файлы разметки памяти MBR+ EBR и scatter. Для этого в пункте меню File выбираем команду Save, указываем путь к ранее созданной папке Custom и нажимаем на кнопку ОК. Процесс переразметки памяти для устройств на базе mt6577,mt6589 mt6589t Файлы разметки получите, используя инструкцию «Практическая инструкция по работе с программой ScatterEditor». После того, как у Вас появились все необходимые файлы scatter. Внимание: для устройств на MT6577 файл EBR будет один: EBR1. Копируем scatter-файл от стоковой прошивки для Вашего устройства в папку, в которой расположена программа « SP Flash Tool». Запускаем флешер « SP Flash Tool» от имени администратора. Для этого справа от поля « Scatter-loading file» нажимаем кнопку « Scatter-loading». Нажимаем на кнопку « Format». Сразу же появится новая форма — в ней отмечаем « Manual Format»: 5. Для устройств на MT6589 MT6589t : Если в стоковом скаттер-файле прописано так... Для устройств на MT6577 Если в стоковом скаттер-файле прописано так... Для всех чипов отмечаем галочкой поле « Validation» 6. Выключаем телефон, передергиваем аккумулятор на 5 сек. Нажимаем кнопку « ОК» в форме « Format Option» рис. Все, ждем окончания процесса форматирования до появления зеленого кружочка : 9. Закрываем это окно с зеленым кружочком и выходим из программы « SP Flash Tool», закрываем ее. Отключаем телефон от ПК, передергиваем аккумулятор на 5 сек. Процесс форматирования осуществляется аналогично форматированию раздела PMT, только с той разницей, что в поля « Begin Address Hex » и « Format Length Hex » нужно вводить другие цифры. Данные, которые нужно вводить в них, зависят от того, размеры каких разделов вы увеличивали, пользуясь редактором ScatterEditor. Все возможные варианты я описать не смогу, но пользуясь разработанным мною правилом, я его назвал « Правило SevenMaxs», Вы легко проведете все необходимые расчеты. Не менее важным является форматирование той части памяти, в пределах которой происходит передвижение разделов памяти устройства. Запускаем если не запущен « SP Flash Tool» от имени администратора. Справа от поля « Scatter-loading file» нажимаем кнопку « Scatter-loading». Идем в папку, в которой расположены файлы MBR, EBR1, EBR2 для устройств на MT6577 этого файла не будет и scatter. Отключаем телефон от ПК если подключен , передергиваем аккумулятор на 5 сек. Нажимаем кнопку « Download» в окне « SP Flash Tool», появляется окошко предупреждения, в котором жмем кнопку « ДА»: И сразу же подключаем выключенный телефон к ПК через USB - ждем окончания процесса прошивки до появления зеленого кружочка. Закрываем появившейся зеленый кружочек и выходим закрываем из программы « SP Flash Tool» ВСЁ, ПРЕРАЗМЕТКА ПРОЙДЕНА! После переразметки памяти, в дальнейшем при манипуляциях с телефоном через Flash Tool» необходимо использовать файлы: MBR, EBR1, EBR2 и scatter. Все что вы делаете — делаете на свой страх и риск! Автор не несет за это никакой ответственности. IMG положить и scatter. Форматирование раздела PMT удаляет внутреннюю базу данных по разметке разделов памяти. Ее необходимо выполнять при ЛЮБЫХ изменениях смещений разделов. Переразметка памяти устройств из режима Recovery Наконец-то появилось несколько свободных минут, которые я и vin2809 с удовольствием потратим на изложение своих мыслей о практическом применении файла PMT и создании патчей для установки файлов переразметки, используя recovery. Данный материал будет полезен владельцам устройств на базе чипов mt6577 и mt6589, т. Этот раздел содержит копию разметки памяти Вашего устройства, что очень мешает при прошивке измененных разделов через FlashTool. Прошиваем НОВЫЕ файлы разметки pmt, mbr, ebr1, ebr2. Сразу хочу отметить, что в режиме recovery в отличие от прошивки через флешер нельзя отформатировать все разделы памяти, а только System, Cache, Date, Fat Emmc. Для прошивки файлов разметки можно использовать не только флешер, но и режим recovery. Для этого используются патчи, содержащие файлы разметки и специальные файлы для их переноса в память устройства. Желательно также установливать патчи переразметки со съемной SD карты, чтобы можно было форматировать внутреннюю SD карту телефона если она у Вас есть. Начмем мы с того, что у Вас уже есть все необходимые файлы, полученые программой ScatterEditor версии не ниже 1. Просто начиная с этой версии программа научилась создавать файл PMT. Желательно, конечно, иметь хотя бы начальный уровень знаний по написанию update-script и созданию update. Также стоит подчеркнуть, что совсем не обязательно шить все файлы переразметки. Если содержимое файла не изменилось, то зачем его прошивать? Например, для большинства устройств на базе mt6589 разделы System, Cache, Date прописаны в файле ebr1, а раздел Fat в ebr2, и поэтому совсем необязательно включать в патч переразметки файл mbr. Как посмотреть какие разделы расположены в каждом из файлов разметки? Да очень просто - в редакторе ScatterEditor и с этим проблем не должно возникнуть, т. Итак, создадим несколько патчей переразметки под моим руководством. Увеличим программой ScatterEditor размер раздела Datа за счет раздела Fat на устройстве на базе mt6577. Запускаем редактор и открываем scatter-файл. Значит для патча нам понадобится только ebr1 и pmt. Теперь перейдем к написанию update-script. Отключаем отмонтируем необходимые для изменения разделы. Подмонтированные разделы находятся под защитой операционной системы и у Вас не получится их отформатировать, а некоторые и прошить. Форматируем разделы по СТАРОЙ разметке. Копируем PMT в раздел PMT. Форматируем разделы по НОВОЙ разметке. В корень архива update. Полученный архив подписываем и в последствии инсталируем через любое мод. Нам понадобится только ebr1, ebr2 и pmt. Отформатировать необходимо разделы, поменявшие свои параметры. Согласно scatter'а или редактора ScatterEditor видно, что это разделы от System до Emmc. Теперь перейдем к написанию update-script. Отключаем отмонтируем необходимые для изменения разделы. Подмонтированные разделы находятся под защитой операционной системы и у Вас не получится их отформатировать, а некоторые и прошить. Форматируем разделы по СТАРОЙ разметке. Копируем EBR2 и PMT в соответствующие разделы PMT. Форматируем разделы по НОВОЙ разметке. Теперь собираем наш патч переразметки. В корень архива update. Полученный архив подписываем и в последствии инсталируем через любое мод. Патчи переразметки описанные в примерах: 1. Введение GPT это другой формат таблицы размещения разделов памяти типа GUID GUID Partition Table. Он является частью EFI Extensible Firmware Interface - стандарта, используемого вместо BIOS для загрузки разделов памяти. Переход на другой формат таблицы разделов позволил устранить самый существенный недостаток старого формата MBR - число разделов. Если в MBR помещалось только 4 записи с ограничением на длину раздела и его смещение из-за того, что эти параметры описывались 32-разрядными числами, то в GPT можно разместить 128 записей о разделах. Причем их параметры уже описываются 64-разрядными числами. Структура GPT GPT состоит из MBR, заголовка и самой таблицы разделов. Для совместимости со старым стандартом загрузки BIOS и с целью защиты самой таблицы разделов GPT тоже начинается с MBR, которая описывает всего один раздел. Смещение указывает на начало заголовка таблицы разделов GPT, а размер раздела устанавливается равным длине всей памяти устройства. Более подробно я опишу это далее. Тип раздела имеет значение 0хEF GPT-раздел. Сразу за MBR, т. При расчете CRC32 в это поле заносится 0 20 0x14 4 bytes резерв; должен быть 0 24 0x18 8 bytes текущий LBA сектор размещение первичной копии заголовка 32 0x20 8 bytes резервный LBA сектор размещение резервной копии заголовка 40 0x28 8 bytes первый разрешенный для использования LBA сектор т. Каждая запись размером 128 байт имеет следующую структуру: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Смещение Длина Значение -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0 0x00 16 bytes GUID типа раздела. Определяет файловую систему, используемую для хранения данных в этом разделе. Является уникальным идентификатором раздела, поэтому создаётся каждый раз, когда создаётся раздел. Стандарт UEFI определяет следующие GUID типов разделов. Но в таблице разделов GUID записывается в другом порядке. Например, GUID системного раздела EFI имеет следующий вид: C12A7328-F81F-11D2-BA4B-00A0C93EC93B. Порядок записи байтов в написаниях GUID является little-endian, причем задом наперед пишутся байты только в первых трех блоках. Для приведенного выше GUID запись в таблице разделов будет иметь такой вид: 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B. Биты с 0 по 47 48 шт. Вот небольшое описание этих битов: -------------------------------------------------------------------------------- Бит Значение -------------------------------------------------------------------------------- 0 системный раздел 1 EFI игнорирует содержимое этого раздела и даже не пытается читать его 2 - 47 Зарезервировано для нужд UEFI ; должны быть равны нулю --- 60 Read - only только для чтения 62 Hidden скрытый 63 автоматически не монтируется -------------------------------------------------------------------------------- 1. Введение Для работы операционной системы ОС необходимо создать таблицу размещения ее частей. Эта таблица находится в загрузочной записи Boot Record , точнее в главной загрузочной записи или Master Boot Record MBR , которая физически располагается в первом секторе памяти. MBR содержит саму таблицу размещения разделов, сигнатуру файла т. Исторически так сложилось, что в MBR можно поместить только 4 записи о разделах. Если требуется большее количество разделов, то используется дополнительная загрузочная запись Extended Boot Record EBR. В этом случае в MBR вместо записи об одном из разделов помещается запись о дополнительном extended разделе, содержащем только EBR. Сама EBR имеет точно такое же строение и размер, как и MBR, и использовать ее нужно точно также. При этом все файлы, содержащие EBR, должны называться последовательно: EBR1, EBR2,... Структура MBR и EBR файлов MBR и EBR записи имеют размер 512 байт, т. ОС все равно прочитает только саму загрузочную запись. Структура этих записей несколько различается в зависимости от ОС. Так, если раздел не содержит информации, т. Если разделов больше 4 и в одну таблицу MBR они не помещаются, то для дополнительной таблицы устанавливается код 0х05. Коды часто используемых разделов приведены в таблице. В файлы, содержащие таблицы MBR и EBR, вносятся изменения после корректировки scatter-файла. Зная первоначальные размер и смещение раздела, его можно найти в таблице BR. Затем новые значения этих параметров переводятся из байт в сектора, разделив их на 512 0х200 , и вписываются в соответствующие поля таблицы. Рассмотрим примеры типичных действий над MBR+EBR. Получение данных о разделах. Для облегчения чтения данных я немного разрядил их, внеся пробелы между параметрами разделов. Примеры приведены по файлам разметки памяти для чипов МТ6589. Например, первый раздел, параметры которого описаны в MBR, имеет следующий вид: ------------------------------------------------------------------------- 0 1 2 3 4 5 6 7 8 9 A B C D E F ------------------------------------------------------------------------- 000 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---: 1B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1C0 : 00 00 05 00 00 00 00 04 00 00 FF FF FF FF ------------------------------------------------------------------------- Из таблицы видно, что тип раздела, расположенный по адресу 1C2, 0х05. Это код расширенного раздела, который говорит, что эта запись описывает РАЗДЕЛ, содержащий следующую таблицу разделов, которую называют расширенной - Extended Boot Record EBR. Весь фокус в том, что все смещения и размеры записаны в обратном порядке, т. А это, как мы уже знаем, раздел, содержащий ТОЛЬКО таблицу описания разделов, которая занимает всего 512 байт полезного места в памяти. Описание следующего раздела расположено по адресу 1CE-1DD: 0 1 2 3 4 5 6 7 8 9 A B C D E F -------------------------------------------------------- 000 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---: 1B0 : 1C0 : 00 00 05 00 00 00 00 04 00 00 FF FF FF FF 00 00 1D0 : 00 00 83 00 00 00 00 68 00 00 00 50 00 00 -------------------------------------------------------- Тип раздела расположен по адресу 1D2 и имеет значение 83. Это раздел, который будет работать под Linux а для нас это может быть Android, cache, Userdata. Соответствие между записью в загрузочной таблице и разделом нужно искать в scatter-файле по известному смещению. Внесение изменений в параметры разделов. Допустим, мы хотим расширить раздел USRDATA до 3Гб, описание которого расположено в файле EBR1. Раздел расположен по смещению 0х34F80000 и в исходном состоянии имеет размер 0х60000000 1. Эту информацию я взял из описания раздела, расположенного в файле scatter. Следующий раздел, за счет которого будет проводиться расширение USRDATA, это FAT - последний раздел памяти, где располагаются все пользовательские данные: фильмы, книги, фотографии и т. Вот выписка из файла EBR1, содержащего запись о разделе USRDATA: 0 1 2 3 4 5 6 7 8 9 A B C D E F ----------------------------------------------------------------- 000 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---: 1B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1C0 : 00 00 83 00 00 00 00 08 02 00 00 50 14 00 00 00 1D0 : 00 00 83 00 00 00 00 58 16 00 00 F0 03 00 00 00 1E0 : 00 00 83 00 00 00 00 48 1A 00 00 00 30 00 00 00 1F0 : 00 00 05 00 00 00 00 B4 01 00 FF FF FF FF 55 AA ----------------------------------------------------------------- Наша запись расположена предпоследней по адресам 1DE-1ED и имеет тип раздела 83, т. Запишем байты в обратном порядке 00 00 60 00. Это и есть наш размер, который нужно прописать в EBR1-файле по адресу 1EA-1ED. При увеличении размера этого раздела сместится начало следующего раздела. Теперь изменим смещение раздела FAT, т. А где найти его параметры? Если пересчитать смещения ВСЕХ записей о разделах, расположенных в файле EBR1, и сравнить их со scatter'ом, то мы найдем только запись об Android, CACHE, USRDATA и EBR2. А где же FAT? Проверим тогда, что находится в EBR2. Сделать это проще простого: пересчитаем смещение разделов, расположенных в EBR2, из секторов в байты и поищем соответствие в scatter-файле. Вот выписка из EBR2: ------------------------------------------------------------------------ 0 1 2 3 4 5 6 7 8 9 A B C D E F ------------------------------------------------------------------------ 000 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---: 1B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1C0 : 00 00 83 00 00 00 00 94 48 00 FF B7 B5 FF 00 00 1D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA ------------------------------------------------------------------------ Видно, что здесь находится одна запись. Значит работы будет меньше. Итак, смещение 00 94 48 00 это 0х00489400. Судя по scatter'у, это и есть раздел FAT. Внесем в его запись изменения. Проще расчет вести прямо в секторах, так меньше возни с переводом значений. Или в обратном порядке 00 94 78 00. Результат: В EBR1 предпоследняя запись примет следующий вид: 0 1 2 3 4 5 6 7 8 9 A B C D E F -------------------------------------------------------- 000 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---: 1D0 : 00 00 1E0 : 00 00 83 00 00 00 00 48 1A 00 00 00 60 00 00 00 1F0 : 00 00 05 00 00 00 00 B4 01 00 FF FF FF FF 55 AA -------------------------------------------------------- А единственная запись EBR2 станет такой: ------------------------------------------------------------------------ 0 1 2 3 4 5 6 7 8 9 A B C D E F ------------------------------------------------------------------------ 000 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---: 1B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1C0 : 00 00 83 00 00 00 00 94 78 00 FF B7 B5 FF 00 00 1D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA ------------------------------------------------------------------------ P. Все описанные Выше операции свободно выполняют редакторы файлов разметки ScatterEditor и Scatter2Editor. Введение Разметка памяти, т. Он используется программами-прошивальщиками, т. Структура scatter file содержит описание ВСЕХ существующих разделов памяти, независимо от того, что они будут содержать в работающем устройстве. Описание первой версии scatter-файла Существует две версии структуры scatter-файла. Первая используется, например, для чипов MT6577, МТ6589. А вторая - для МТ6572, МТ6592. Рассмотрим первую версию, используемую в большинстве мобильных устройств. Квадратные скобки в записи означают необязательный параметр, который может быть пропущен. Для примера приведу типичный scatter-file для МТ6589. Указывает на содержимое раздела. Любой флешер использует scatter file только для ПОЛНОЙ разметки памяти. Он считывает значение смещения для раздела физический адрес и копирует, т. Для этого необходимо изменить значения смещений необходимых разделов. Например, в разделе USRDATA располагаются данные программ пользователя: логи работы и ошибок, данные о рекордах игр и т. Увеличим его, например, на 256Мб 268435456. Тогда смещение следующего раздела передвинется на эту же величину: было - 0 х 74f80000 стало - 0 х 84f80000 Если сделать так со смещениями ВСЕХ последующих разделов, то они ВСЕ передвинутся и на эту величину увеличится ОБЩИЙ размер памяти, занимаемой прошивкой. А это недопустимо, т. Поэтому нужно уменьшить размер какого-либо последующего раздела. У нас это раздел пользователя FAT. Изменить его размер мы не можем, т. Он просто автоматически укоротится. Они связаны только тем, что большой образ НЕВОЗМОЖНО прошить в маленький раздел - он просто не поместится. Введение Раздел PMT содержит таблицу размещения разделов, так сказать, карту или слепок разметки памяти. Этот раздел используется загрузчиком и флешерами, например, SP Flash Tool, для заливки прошивки образов разделов. Но не надо пугаться, это не сообщение об ошибке, как думают многие, а информационное сообщение, предупреждающее Вас о НЕСОВПАДЕНИИ параметров разделов. Удалять это сообщение или как-то обходить - неправильный путь, т. Другое дело, когда Вы ОСОЗНАННО выполняете действия по изменению разметки памяти. Именно для этого и необходимо внести изменения не только в scatter, но и в образ раздела PMT. Структура раздела PMT Образ раздела PMT содержит базовую таблицу размещения разделов. Сразу за ней располагается таблица реального размещения разделов. Вот пример PMT-файла: Рис. Пример начала файла PMT. На приведенном рисунке красным цветом отмечена сигнатура начала таблицы размещения разделов, расположенная по смещению 0х0000. Пример окончания базовой таблицы размещения разделов. Пример окончания базовой таблицы размещения разделов красным цветом выделена сигнатура окончания базовой таблицы размещения разделов, расположенная по смещению 0х07F8. Видно, что следом за ней расположена сигнатура начала реальной таблицы размещения разделов. Она расположена по смещению 0х0800 и равна « 1TPM» Соответственно, начало и конец реальной таблицы размещения разделов приведены ниже: Рис. Начало реальной таблицы размещения разделов. Структура таблицы размещения разделов Таблица размещения разделов состоит из записей, содержащих информацию о каждом разделе памяти. Все записи располагаются последовательно и непрерывно, строго следуя одна за одной: Рис. Пример окончания базовой таблицы размещения разделов и Рис. Структура записи таблицы размещения разделов. Структура записи для большинства мобильных устройств, т. Структура записи таблицы размещения разделов Смещение Длина поля, байт Значение 0х0000 64 0х40 Имя раздела 0х0040 8 0х08 Длина раздела 0х0048 8 0х08 Смещение раздела 0х0050 8 0х08 Флаги раздела На рис. Развитие техники внесло свои изменения и в структуру записи о разделах. К ним относятся, например, устройства на основе МТ6572, МТ6589. Раздел PMT был описан в scatter'е, что и позволяло вносить изменения в разметку, изменив параллельно файлы разметки и содержимое PMT. Начиная с МТ6592, этот раздел исчез из scatter'а и его расположение мне неизвестно. Предположительно, он находится в свободном пространстве где-то за userdata. Просмотр параметров разделов памяти. Давайте пройдемся по реальному файлу, содержащему GPT-таблицу. Он содержит главную загрузочную запись MBR и таблицу разделов GPT. Вот как выглядит первый сектор файла. Согласно теории, эти первые 512 байт, т. Вид начала файла, открытого в Hex-редакторе. Видно, что по адресу 0х1С2 расположен код раздела 0хЕЕ — код раздела GUID Partition Table. Далее по адресам 0х1С6-0х1С9 расположено поле « Смещение», содержащее значение « 01 00 00 00». Учитывая обратный порядок записи, получим смещение раздела — 0х00000001. GPT располагается в секторе со смещением 1. А это следующий за MBR сектор, что и видно на рисунке 1, т. Заголовок GPT Рассмотрим hex-код файла далее: Рис. Заголовок GPT Я немного «разукрасил» заголовок, чтобы выделить его поля. В самом верху справа красным цветом выделен «остаток» предыдущего сектора — сигнатура MBR. Мы видим сплошные нули. Вот тебе и теория! Именно с этого сектора и будет размещаться первый раздел мобильного устройства, а все место до него зарезервировано под GPT. Оно имеет значение «02» и выделено красным цветом. Таблица описания раздела памяти. Каждый раздел имеет свою запись в таблице разделов. Одна запись занимает размер в 128 байт, который указан в поле заголовка по адресу 0х254 и имеет следующий вид: Рис. Запись параметров раздела в таблице GPT. Каждый символ занимает два байта, т. С адреса 0х480 располагается запись о следующем разделе. После описания всех разделов оставшееся место заполняется нулем до конца таблицы разделов, т. Изменение параметров разделов памяти. Эксперименты по изменению таблицы разделов начнем с описания расчета контрольных сумм, расположенных в заголовке. А уж затем попробуем передвигать разделы, изменяя их длину, или просто удалять их. При всех экспериментах с разделами нужно помнить, что они расположены в памяти НЕПРЕРЫВНО и БЕЗ РАЗРЫВОВ между ними, т. Чтобы не производить все эти расчеты фирма Lenovo разработала особый механизм, позволяющий все делать автоматически. Об этом и файле, содержащем перечень ВСЕХ разделов памяти, поговорим в самом конце. Подсчет контрольных сумм заголовка. Поэтому первой рассчитывается контрольная сумма таблицы разделов. Для расчета CRC32 всей таблицы разделов нужно взять всю таблицу с первой записи и по последнюю включительно БЕЗ ЗАГОЛОВКА. Следовательно, для расчета берем содержимое по адресам с 0х400 по 0х1000. Данные для расчета CRC32 таблицы разделов. Полученный результат вставляем в поле заголовка по адресу 0х258 Рисунок 2. Переходим к расчету контрольной суммы всего заголовка. Для расчета CRC32 заголовка берутся все 92 байта заголовка, только само поле CRC32 заголовка предварительно заполняется нулями: Рис. Данные для расчета CRC 32 заголовка GPT А вот и результат, сравните со значением в заголовке: Рис. Первоначальное значение из файла по адресу 0х210. Вся разница только в обратном способе записи… Итак, с контрольными суммами разобрались. Можно попытаться поменять параметры самих разделов, например, размер. Изменение размеров разделов памяти. Допустим, что необходимо расширить раздел « system» на 100 Мб за счет предыдущего раздела « cache». Это приводит к перемещению нижней границы раздела « system» в сторону начала памяти. Результаты сдвига нижней границы раздела System. До изменений записи о разделах выглядели так: Рис. Разделы после перемещения границы вверх. А теперь можно попробовать и совсем удалить раздел. «Разрушать» или удалять всегда легче. Считать ничего не требуется. Нужно только решить какому разделу будет отдано освободившееся место. При удалении раздела верхняя граница предыдущего раздела просто перемещается на место верхней границы удаляемого. Или наоборот, нижняя граница последующего перемещается на место нижней границы удаляемого. У меня нет под рукой хорошего примера прошивки, у которой можно удалить что-то «лишнее», поэтому используем предыдущий пример и, чисто теоретически конечно, представим, что нужно удалить раздел « system». Вот как выглядела таблица разделов до вмешательства: Рис. Вид таблицы разделов до проведения «экзекуций». При удалении раздела « system» и расширении « cache» это будет означать, что значение из поля « последний LBA сектор размещения раздела» « cache» примет значение из поля « последний LBA сектор размещения раздела» « system», а запись о разделе « system» будет полностью удалена из таблицы разделов: Рис. Вот как выглядит таблица разделов после удаления System и расширения Cache Видно, что данные о разделе « system» полностью исчезли из таблицы, поле « последний LBA сектор размещения раздела» предыдущего раздела « cache» получило новое значение, а параметры последующего раздела « userdata» остались без изменений. Этот раздел ОСТАЛСЯ без изменений Если за счет удаления « system» расширить « userdata», то тогда значение поля « первый LBA сектор размещения раздела»« userdata» примет значение из поля « первый LBA сектор размещения раздела» удаляемого « system»: Рис. Вот как выглядит таблица разделов после удаления раздела System Видно, что на этот раз изменилось только поле « первый LBA сектор размещения раздела» последующего раздела « userdata». Этот раздел УВЕЛИЧИЛСЯ на размер удаленного раздела. Но прошу дополнительно осветить вопрос возможности замены раздела с фаловой системой FAT на EXT4. Не хочется иметь, во-первых, SD-CARD с размером блока более 4К. А во-вторых хочется иметь возможность делать на SD-ешке жесткие и символические ссылки. Верно ли что возможность применения того или иного типа файловой системы mbr, gpt обусловлена моделью используемого устройства? То есть, на Lenovo K910 можно делать разбивку используя gpt, а, например, на Lenovo S750 только mbr+embr? Если Вы не меняетепараметры каких-либо разделов размер, смещение , то этот вопрос не имеет отношения к разметке. Меняется только тип раздела в mbr или GUID в gpt. А вот как заменить тип файловой системы это вопрос к ромоделам. Если вкратце, то смотрите тему по замене внутренней памяти на внешнюю или наоборот. По второму Вашему вопросу могу сказать, что это заблуждение.. От модели используемого устройства зависит только наличие поддержки данной разметки в ядре Вашего аппарата. По Lenovo у меня статистики еще нет, а по МТК могу сказать, что аппараты, созданные на одном и том же процессоре могут иметь РАЗНЫЕ типы разметки, как MBR+EBR, так и GPT.
