Разметка памяти мобильных устройств | [Теория и практика]



Реп: (571)
Разметка памяти мобильных устройств. Теория и практика

В этой теме будут затронуты следующие вопросы:
  • строение файлов разметки памяти, таких как scatter, MBR, EBR, GPT, EFI, parameter и др.;
  • предложены средства (приложения) для изменения разметки памяти;
  • даны практические рекомендации по осуществлению операций по переразбивке (переразметке) памяти мобильных устройств.
Для начала стоит начать с материала под спойлером "Полезная информация", а затем, наполнившись знаниями, приступить и к практике, используя приложения, представленные ниже:
Полезная информация
Редактор файлов разметки памяти для МТК
  • ScatterEditor - редактор разметки памяти для чипов MT6577. МТ6589. МТ6589Т (файлы scatter,MBR+EBR)
    Требования:
    • операционная система Windows 7 или выше;
    • установленный пакет .NET 4.0.
    Возможности:
    • позволяет изменять размер ЛЮБОГО раздела памяти с автоматическим пересчетом параметров всех разделов;
    • позволяет удалять любой раздел полностью;
    • восстанавливать PMT-файл по имеющемуся scatter-файлу;
    • восстанавливать scatter-файл по имеющемуся PMT-файлу;
    • автоматически формирует файлы разметки памяти (scatter, MBR+EBR);
    • устанавливает верхнюю границу памяти 3 способами;
    • размеры памяти привязаны к размеру блока, размер которого можно выбрать;
    • работает с нестандартными scatter-файлами;
    • мультиязычность. Поддерживается два языка: русский и английский.
    Свежая версия
    Архив содержит папку с ресурсами русского языка, распаковать ВСЮ структуру вместе.
    Прикрепленный файлScatterEditor_v1.06.zip ( 43.32 КБ )

    Предыдущие версии.

    Инструкция
    Прикрепленный файлИнструкция пользователя ScatterEditor_v1.06.zip ( 1.36 МБ )

  • Scatter2Editor - редактор разметки памяти для чипов MT6572. МТ6582. МТ6592. МТ8127 (файлы scatter,MBR+EBR)
    Требования:
    • операционная система Windows 7 или выше;
    • установленный пакет .NET 4.0.
    Возможности:
    • поддерживает файлы новой структуры;
    • позволяет изменять размер ЛЮБОГО раздела памяти с автоматическим пересчетом параметров всех разделов;
    • позволяет удалять разделы;
    • автоматически формирует файлы разметки памяти (scatter, MBR+EBR);
    • правильно устанавливает верхнюю границу памяти, которая просматривается через свойства аппарата;
    • мультиязычность. Поддерживается два языка: русский и английский.
    Свежая версия
    Архив содержит папку с ресурсами русского языка, распаковать ВСЮ структуру вместе.
    Прикрепленный файлScatter2Editor_v207.7z ( 34.77 КБ )

    Предыдущие версии

    Инструкция в pdf формате
    Прикрепленный файлИнструкция пользователя Scatter2Editor_v2.03.zip ( 1011.1 КБ )

    Что делать, если сохраняется только scatter?

  • МТК Repartition Tool 65xx
  • Переразметка памяти МТК 67хх (установка через TWRP)
  • MasterC0de’s MTK Partition Editor
Редактор разметки памяти для чипов RKxx
  • RK_ParamEd - редактор разметки памяти для чипов RKxx (файл Parameter)
    Требования
    • операционная система Windows 7 или выше;
    • установленный пакет .NET 4.0.
    Возможности
    • позволяет редактировать размер и флаг ЛЮБОГО раздела;
    • позволяет изменять параметры командной строки запуска;
    • мультиязычная версия;
    Свежая версия
    Прикрепленный файлRK_ParamEd_v1.01.rar ( 20.43 КБ )

    Инструкция пользователя
    Прикрепленный файлRK_ParamEd_1.01. Users manual.rar ( 990.79 КБ )

Редактор разметки памяти для чипов Allwinner
Редактор файлов разметки MBR и GUID
Приложение для обработки файлов разметки схем DOS (MBR+EBR, partition.bin и т.п.) и GUID (файл GPT, EFI и т.п.).
Требования
  • операционная система Windows 7 или выше;
  • установленный пакет .NET 4.0.

Свежая версия
Прикрепленный файлPartitionsEditor_1.02.rar ( 122.15 КБ )

Инструкция пользователя
Скоро будет.
Инструкция по переразметке MTK с GUID
Переразметка памяти на телефонах с процессором Spreadtrum sc7731
Переразметка памяти на устройствах с процессором Qualcomm MSM
Редактирование GPT разметки при помощи gdisk через TWRP (Для всех процессоров)



В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку Изображение под сообщениями, на которые необходимо добавить ссылки.
Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).


Сообщение отредактировал prz13 - 07.10.22, 15:04
Причина редактирования: Обновление: static gdisk



Реп: (53)
Назрел еще один вопросик.
Перепрошил телефон использую кастомный скейтер и ЕБРы. Внутренняя память изменилась так, как я и хотел. Теперь есть вопрос, как поставить флеш карту основной памятью для кэша и прочего. Пробовал менять в boot.img файлы fstab. Результата не дало, возможно что то не так сделал. Хотя может все таки нужен ЕБР2 чтобы флеш карта встала памятью?

P.S. MT6582, Kitkat 4.4.2
_________________________

Думаю немножко словчится и оставить раздел EBR2 с пару мб чтобы был. А после уже заменить fstab файлы и потестить.

Сообщение отредактировал dEVIATE - 15.09.14, 16:04



Реп: (1171)
Создание образов необходимой длины!

В данном посте представлен процесс перепаковки образов прошивки под новый размер блока памяти в устройстве после переразметки.
Итак, как-то захотелось мне на своем Zopo ZP990+ увеличить размер раздела /system с 800 мб (размер раздела можно глянуть в скаттер файле стоковой прошивки) до 1ГБ.
Мною были сделаны новые файлы разметки и скаттер файл при помощи программы Scatter2Editor... Мне оставалось только переразметить разделы в устройстве при помощи SP FlashTool с последующим форматированием переразмеченных разделов; но, почитав сообщение в теме по переразметке, я пришел к выводу, что у большинства пользователей возникают проблемы с форматированием переразмеченных разделов. Поэтому предлагаю вашему вниманию, способ как уйти от повторного форматирования - это прошивка через SP FlashTool образа в моем случае system.img, длина которого равна размеру переразмеченного блока.
Нам понадобятся:
1. Linux (Я пользуюсь Kubuntu 14.04 х64), можно и на виртуалке.
2. Набор утилит (архив Repack-img.tar.gz)
3. Необходимый образ из стоковой прошивки, длину которого хотим изменить.


Поехали!
Дествия пунктов 1-3 проделываются один раз!!!
1. Извлекавем папку Repack-img из архива Repack-img.tar.gz в домашнюю папку.
Прикрепленное изображение
2. Запускаем консоль и переходим в папку Repack-img
В консоли вводим
cd ~/Repack-img
Прикрепленное изображение
3. Делаем файлы в папке ~/Repack-img/bin исполняемыми
В консоли вводим и подтвержаем паролем
sudo chmod a+x ./bin/simg2img ./bin/img2simg ./bin/make_ext4fs ./bin/ext4fixup ./bin/simg_dump.py
Прикрепленное изображение
4. Непосредственно изменение длины образа system.img
Примечания: 1G = 1024M = 1073741824 byte
4.1 В папку Repack-img кладем образ system.img
Прикрепленное изображение
4.2 Создаем папку system для последующего монитрования в нее образа
В консоли вводим
mkdir system
Прикрепленное изображение
4.3 Конвертируем образ system.img
В консоли вводим
./bin/simg2img system.img system.raw
Прикрепленное изображение
4.4 Монтируем образ system.raw в папку system
В консоли вводим
sudo mount -t ext4 -o loop system.raw system/
Прикрепленное изображение

В папке system у вас будет содержимое образа system.img (при желании его можно изменить).
4.5 Создаем новый образ system.img необходимой длины
Так как я увеличивал раздел с 800Мб до 1Гб, то в консоли ввожу (вы вводите вместо 1024M свое число с учетом причечания).
После этого получем образ system_new.img длиной в 1Гб
sudo ./bin/make_ext4fs -s -l 1024M -a system system_new.img system/
Прикрепленное изображение
4.6 Отмонтируем образ system.raw и удаляем его вместе с папкой system
В консоли вводим
sudo umount system && rm -fr system.raw system
Прикрепленное изображение

Дабы избежать лишних вопросов, приведу еще пару примеров:
По аналогии меняем длину образа userdata.img
Примечания: 1G = 1024M = 1073741824 byte
1 В папку Repack-img кладем образ userdata.img
Прикрепленное изображение
2 Создаем папку data для последующего монитрования в нее образа
В консоли вводим
mkdir data
Прикрепленное изображение
3 Конвертируем образ userdata.img
В консоли вводим
./bin/simg2img userdata.img userdata.raw
Прикрепленное изображение
4 Монтируем образ userdata.raw в папку data
В консоли вводим
sudo mount -t ext4 -o loop userdata.raw data/
Прикрепленное изображение
5 Создаем новый образ userdata_new.img необходимой длины
Так как я хочу уменьшить длину образа с 4Гб до 2Гб, то в консоли ввожу (вы вводите вместо 2G свое число с учетом причечания).
После этого получем образ userdata_new.img длиной в 2Гб
sudo ./bin/make_ext4fs -s -l 2G -a data userdata_new.img data/
Прикрепленное изображение
6 Отмонтируем образ userdata.raw и удаляем его вместе с папкой data
В консоли вводим
sudo umount data && rm -fr userdata.raw data
Прикрепленное изображение
Команды для создания образа cache.img длиной 128Мб
mkdir cache
./bin/simg2img cache.img cache.raw
sudo mount -t ext4 -o loop cache.raw cache/
sudo ./bin/make_ext4fs -s -l 128M -a cache cache_new.img cache/
sudo umount cache && rm -fr cache.raw cache

Прикрепленный файлRepack-img.tar.gz ( 617.93 КБ )
MD5: 07FC399A18E58716674C7ADDFFA30010

Сообщение отредактировал vin2809 - 16.09.14, 08:28
Причина редактирования: Добавил MD5



Реп: (53)
* SevenMaxs,
Не подскажете, почему при изменении раздела FAT на объем пару мегабайт флештул отказывается прошивать девайс? Выходит табличка о том, что якобы нет места. Но ведь этот раздел абсолютно не затрагивается при прошивки девайса. В чем может быть проблема? Без этого раздела шьется все отлично, но вот после этого немного не понятно как сделать флеш карту основной памятью телефона. Надеюсь подскажете как легче переназначить память



Реп: (1171)
dEVIATE @ 15.09.2014, 17:55 *
Без этого раздела шьется все отлично...

Ну так и шейте без него!
А причина может быть в том, что у вас под блок Fat осталось меньше места чем оно прописано в образе fat.img
dEVIATE @ 15.09.2014, 17:55 *
Но вот после этого немного не понятно как сделать флеш карту основной памятью телефона.

По этому поводу уже 1000 раз писали, что все что сязано с монтированием это не относится к теме переразметки..
Это уже связано с работой Android OS, копайте точки монтирования в fstab. :yes2:

Сообщение отредактировал vin2809 - 16.09.14, 08:54



Реп: (1171)
daradan @ 14.09.2014, 09:03 *
пробовал монтировать через CWM и на ББ форматировать встроенную память, но все равно общий объем 1.02

CWM такой кострат особенно для устройств на базе mt6589 :D



Реп: (1432)
SevenMaxs @ 15.09.2014, 20:23 *
CWM такой кострат особенно для устройств на базе mt6589
это в ходе эксперимента понял :)
Думал как в вашей инструкции по простому, но походу мне еще рано...
Главное получилось через SPFlashTool...Теперь у меня system 1gb :yahoo:
Всем спасибо за помощь



Реп: (256)
SevenMaxs @ 15.09.2014, 19:23 *
make_ext4fs
а почему просто resize2fs не сделать?
особенно это касается system

PS кстати, а зачем менять размер system?



Реп: (1432)
_AI_ @ 16.09.2014, 11:12 *
PS кстати, а зачем менять размер system?
мне нужно было, чтобы не резать прошивки VIBE, ColorOS, от Sony, т.к. они тяжелые и из-за этого приходится перекидывать некоторые apk на /data/app. А после увеличения system от этой проблемы избавился. Как то так...



Реп: (1171)
_AI_ @ 16.09.2014, 09:12 *
а почему просто resize2fs не сделать?

Это дело привычки, предложите ваш вариант - думаю, что возможность выбора методики, только на пользу!



Реп: (1247)
_AI_ @ 11.09.2014, 21:28 *
что "писать" в поле "длина" последнего раздела?

Граница последнего раздела в бут рекорде всегда бесконечность (вернее уходит за терабайты). Дело в том, что реальные размеры носителя нигде не документированы и реально могут сильно различаться от образца к образцу.

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

Реальный размер уточняется при форматировании и заносится в таблицу размещения файлов.
Бесконечный размер удобен еще тем, что можно применять одну и ту же прошивку для носителей разного размера.



Реп: (1247)
Esferoo @ 11.09.2014, 15:09 *
Подскажите, установка заводской прошивки на ранее переразмеченную память, возвращает ее в исходное состояние (размеченную как с завода)?

Если не подбросить в заводскую прошивку исправленные бут рекорды и скаттер, то да.

ЗЫ
Хотя, если в шить через пункт Upgrade, то возможно и останется старая разметка. Ни разу не пробовал, всегда шью через DownLoad с заменой разметочных файлов

Сообщение отредактировал leakim - 16.09.14, 16:33



Реп: (274)
SevenMaxs @ 15.09.2014, 16:23 *
По аналогии меняем длину образа userdata.img ..... Спойлер (+) (Команды для создания образа cache.img длиной 128Мб)

Непонятно, зачем для пустых образов столько лишних действий!?
Если не ошибаюсь, то этот способ создания пустых образов для переразметки в этой теме я уже предлагал. Видимо этот пост стерли (учитывая курирование темы)

Можно ж все сделать гораздо проще:
sudo su
mkdir data
sudo ./make_ext4fs -s -l 7208026112 -a data userdata.img data
И этого достаточно для пустого образа

И обычно ж все действия с системными образами выполняются из под root (т.е. сначала прописывается "sudo su"), хотя на скринах действия без root.



Реп: (1171)
Prince_Saint @ 16.09.2014, 17:44 *
И этого достаточно для пустого образа

Я предложил универсальный способ, часто бывает что userdata.img не пустой... <_<
Prince_Saint @ 16.09.2014, 17:44 *
И обычно ж все действия с системными образами выполняются из под root (т.е. сначала прописывается "sudo su"), хотя на скринах действия без root.

Все учтено, на скрине видно что для userdata_new.img владелец root :D



Реп: (54)
Посмотрите в моей прошивке файл
update/bin/set_partition
может он что напомнит и подскажите как он устроен

Архив с прошивкой
https://yadi.sk/d/VGY6yzWLZE8Rk



Реп: (256)
Prince_Saint @ 16.09.2014, 19:44 *
И обычно ж все действия с системными образами выполняются из под root (т.е. сначала прописывается "sudo su"), хотя на скринах действия без root.
в данном случае вы просто создайте файл, к установленной системе он не имеет никакого отношения.
т.е. права суперпользователя не нужны.

PS ща заметил, что make_ext4fs есть в Busybox на андроиде, т.е. "пустышки" можно делать с помощью телефона.

Сообщение отредактировал _AI_ - 16.09.14, 19:51



Реп: (211)
dEVIATE @ 15.09.2014, 15:59 *
Теперь есть вопрос, как поставить флеш карту основной памятью для кэша и прочего

Вам надо править точки монтирования в ядре (в рам диске точнее) в файле init.rc, а на самой флешке создать разделы в ext2,3,4 , в зависимости от того что у вас в системе.



Реп: (0)
прошил свой телефон miz2, внутр память пишет 0кб, вставляю флешку , он ее видит но пишет 0кб, подключаю телефон к компу он видит и флешку и внутр память телефона 16/5Гб, в чем причина?

Сообщение отредактировал alcatrashell - 16.09.14, 22:38



Реп: (1247)
alcatrashell @ 17.09.2014, 01:27 *
подключаю телефон к компу он видит и флешку и внутр память телефона 16/5Гб, в чем причина?

См Разметка памяти мобильных устройств (Пост #33687775)



Реп: (0)
Пропала внутренняя память!!!???
После попытки установить вот это:
http://androidforums.c…ch-cwm-v6-0-3-0-a.html
Перепрошивка, Хард Ресет не помогает!

Подскажите пожалуйста что делать?

За раннее Благодарю!

Тело - AGM rock v5+ 512 оперативы или TeXeT 3204r

Сообщение отредактировал ArsMaxim - 17.09.14, 12:18



Реп: (4)
Друзья - подскажите..

вот пытаюсь переразметить мое устройство.. на базе МТК6572 - 512Мб РАМ-4ГБ РОМ
Flash tool на вкладке Download после загрузки кастомного скатера (предварительно отредактированного и сохраненного в SCATER2Editor) и файлов MBR и EBR1 и нажатия кнопки Download при выключенном, подключенном и передернутом мобильнике выдает сообщение:

PTM changed for the ROM; it must be downloaded

Что это значит? Как мне переразметить? У меня в стоковом скатере нету раздела PTM

Я хочу уменьшить размер раздела CACHE до 293 601 280 байт
В сообщении прикреплю оригинальный стоковый скаттер для моего МТК6572 (см. в прикреплении)

все делал по инструкции из этого поста для устройств МТК6572 Разметка памяти мобильных устройств (Пост #29121216)

мне удалось отформатировать.
В поле старт адрес я вводил смещение linear_start_addr: 0x2C9C0000 из стокового скаттера
В поле Длина я вводил linear_start_addr: 0x96DC0000 (FAT) из стокового скаттера - linear_start_addr: 0x2C9C0000 (CACHE) из стокового скаттера = получилось 6A400000 верно же? Смущает то, что SCATTER2Editor использует смещение из поля physical_start_addr: и делает перерасчеты по этому полю.. а в интрукции указано делать перерасчеты по полю linear_start_addr: Так какое поле мне использовать?

И после завершения форматирования... мне удалось загрузить телефон только после wipe Factory reset из консоли рекавери.. по другому - он не загружался.. играла только музыка и бут анимация, а после вайпа из рекавери - загрузилась и система.. почему вот так??


В общем.. после этого я еще хочу изменить размеры разделов ANDROID и USERDATA
чтобы было так.. ANDROID - 749 731 840 байт и USERDATA - 838 860 800 байт

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

Помогите верно переразметить телефон..

Прикрепленные файлы

Прикрепленный файлMT6572_Android_scatter.txt ( 7.12 КБ )


Сообщение отредактировал Interestingyy - 17.09.14, 18:56


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 29.03.24, 01:02